Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをや...
Search
Nomizo Nomizo
March 06, 2026
Education
0
110
P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをやってみよう」資料
2026年3月7日に開催されたP3NFEST 2026 Springにて提供させていただいたハンズオン教育の資料です
CTF要素とグループワークを取り入れたコミュニケーション重視の演習としました。
Nomizo Nomizo
March 06, 2026
Tweet
Share
More Decks by Nomizo Nomizo
See All by Nomizo Nomizo
OSINT入門-CTF for GIRLS_SECCON14電脳会議
nomizone
1
1.1k
タイムマシンのつくりかた
nomizone
3
1.1k
栃木県警サイバーセキュリティ研修会2026
nomizone
0
320
特別捜査官等研修会
nomizone
0
720
高度サイバー人材育成専科資料(前半)
nomizone
0
980
高度サイバー人材育成専科(後半)
nomizone
0
950
攻撃者目線で考える狙われやすい企業の特徴とは
nomizone
0
31
TryHackMeのはじめかた
nomizone
0
1.3k
沖ハック~のみぞうさんとハッキングチャレンジ☆~
nomizone
1
600
Other Decks in Education
See All in Education
国際卓越研究大学計画|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
48k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
【ベテランCTOからのメッセージ】AIとか組織とかキャリアとか気になることはあるけどさ、個人の技術力から目を背けないでやっていきましょうよ
netmarkjp
2
3.8k
2025年の本当に大事なAI動向まとめ
frievea
1
190
1216
cbtlibrary
0
160
くまのココロンともぐらのロジ
frievea
0
190
TinyGoをWebブラウザで動かすための方法+アルファ_20260201
masakiokuda
2
280
Padlet opetuksessa
matleenalaakso
11
15k
Information Architectures - Lecture 2 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
1.8k
Avoin jakaminen ja Creative Commons -lisenssit
matleenalaakso
0
2.1k
Railsチュートリアル × 反転学習の事例紹介
yasslab
PRO
3
170k
東大1年生にJulia教えてみた
matsui_528
7
12k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
180
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
30 Presentation Tips
portentint
PRO
1
250
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
890
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
We Are The Robots
honzajavorek
0
190
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
460
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Transcript
席は自由です。 お好きな場所におかけください 2026年3月7日 P3NFEST 2026 Spring
解答用紙とペンもってますか? WiFiつながった? はじめに
講師の自己紹介 3 • 犬と謎解きとセキュリティ(特にオフェンシブ方 面)が好きです • OffSecLab Japan,CTF4G, ひよこまめ教習所 …コミュニティ活動をよくやってます
• 最近のお気に入り:チーズみたいなスーツケース (メルカリで買った) 野溝のみぞう @nomizooone
サポートスタッフをご紹介 てきとうさん 4 お世話になります!! @tkito
ハンズオンのスケジュール 5 時間(だいたい) 内容 12:30~12:45 オープニング (前フリ・自己紹介・リーダー決め・ポータル登録) 12:45~13:15 ハンズオンタイム (解説を聞きながらみんなで手を動かそう)
13:15~14:15 チャレンジタイム (CTFチャレンジ/チーム戦) 14:15~14:30 クロージング (表彰・軽く解説←状況によってはなくなるかも) ※トイレ休憩などは各自で自由にどうぞ
本日のハッシュタグ 6 #P3NFEST 写真撮影OK ※人物が映り込んだ場合は要配慮
WiFiについて WiFiは2種類あります 7 HackingLoveのWiFiは インターネットがない表示になります(正常) 会場WiFi … インターネットあり HackingLove-5G /
HackingLove-2.4G … ローカルのみ すいませんが必要な場合は切り替えてください 基本的には必要なことは資料に書いているので切り替えなくても解けるようになってるはずです
資料について 資料はポータルサイトのトップページからダウンロードできます 安全ではないとか言われても無視で大丈夫です 8 後で役立つと思うのでダウンロードしておいていただくことを推奨します インターネットへの公開はお控えください
先に謝っておきます ハンズオンでやったことだけで チャレンジタイムは全部解けません 全て解説するのとか無理 9 チームで協力して乗り切ろう!
①自己紹介しよう ②話し合ってリーダーを決めてください というわけで頼れるチームメンバーと向き合うぜ リーダーの役割は主に タイムキープとコミュニケーション(盛り上げ)です! 技術的につよつよである必要はありません もし、どーしても決まらなかったら… 今日いちばん早く起きた人がリーダーです
ポータル(CTFd)の登録について(1/2) 11 右上の「登録」からユーザー登録 メアドは適当にダミーのをいれてください (
[email protected]
とかそういうの) ユーザー名とパスワードは忘れないように
ポータル(CTFd)の登録について(2/2) 12 左側のチームに参加をクリック すでに作成済のチームに参加する形です(Max4人) チーム名、チームパスワードは共通 チーム番号を入力します ←たとえばチーム1の場合はこう team1 team1
そもそもCTFってなんなの 13 CTF(Capture The Flag)とは、情報セキュリティ技術を 競うハッキングコンテストのことで、参加者はコンピュータ に関する知識や技術、発想力を駆使して、問題の答えとなる 「FLAG(フラグ)」と呼ばれる文字列を探し出します。 AIによる説明(だいたいあってる) フラグの例
:FLAG{ペンフェスト}
大切な注意事項 14 ハッキングは日本国内においては法律に抵触する可能性があります •不正アクセス禁止法(通称)違反 •ウイルス作成罪(通称) •電子計算機損壊等業務妨害罪 などなど
15 以外には絶対やってはいけません 特別に許可を得た対象 自分が全責任を持って管理している対象 ・ ・ 大切な注意事項
ちょっと脱線 2024年サイバー警察局便りvol.13より 16 2023年に不正アクセス禁止法違 反でつかまった人の約7割は10代 ~20代 引用:https://www.npa.go.jp/bureau/cyber/pdf/R6_Vol.13cpal.pdf
ハンズオンタイム 13:15まで (いけるとこまで)
合法のハッキング(?)の流れ 18 ←NIST(アメリカ国立標準技術 研究所)が発行したセキュリ ティ監査に関する資料 NIST SP 800-115より 情報収集と攻撃実行をぐるぐる する。レポートも書く。
情報収集(RECON)地味だけ どすごく大事 むしろハッキングは列挙が9割 (諸説あり) ペネトレーションテストの流れ https://www.nist.gov/privacy-framework/nist-sp-800-115
今回の設定(前提条件) • ネットワーク側の侵入は終わっている • ターゲットマシンのあるWiFiに入ることができたのでいよい よマシンに攻撃するぜ~みたいな感じ(リアリティは求めないで下さい) 19 ターゲットサーバたち 何台あるかは不明 脆弱なWiFi
SSID:HackingLove DHCPでIPアドレス付与
まずは自分の位置を確認 とりま自分のIPアドレスを確認してみる 今回はDHCPでアドレスが振られているはず~ これで自分が今いるネットワークの範囲を把握してあたりをつける 20 #自分のIPアドレスを確認する(Linux) ip a #自分のIPアドレスを確認する(Windows) ipconfig
#自分のIPアドレスを確認する(Mac) ifconfig
(参考)接続方法のちがい 21 ホストOS (Windowsなど) ゲストOS (Kaliなど) 仮想マシンを利用している場合は、接続方式が大きく分けて 2種類あります。 デフォルト(NAT接続)だとできないこともあったりします。 今日のところは大丈夫だけど覚えておくと良いです。
ブリッジ接続 NAT接続 ゲストOSにDHCPのIPアドレスがふられる ホストOSにDHCPのIPアドレスがふられる Kaliから外に出る時はホストOS経由で出ていく構成 大抵の場合デフォルト設定はこっち
(参考)確認の方法 22 VirtualBoxの場合 設定>ネットワーク VMware WorkStation Proの場合 設定>ネットワークアダプタ
ターゲットはどこに? 23 192.168.0.2 ~ 192.168.0.99 今回は特別に ターゲットサーバのIPアドレス範囲を開示します(運営の都合) 192.168.0.1はルータ 192.168.0.100以降は クライアント
ターゲットはどこに?(偵察) 24 # この範囲にどんなサーバがあるか確認する nmap 192.168.0.2-99 # masscanで素早く確認する(80番ポートのみ) sudo masscan
‒p80 192.168.0.2-192.168.0.99
わかったこと 25 # どんなサーバがあるか確認する 結果をシェアしてみよう 192.168.0.10 ←ポータル 192.168.0.55 ←??? 192.168.0.89
←ハック!今は一旦こっちをターゲットに
もうちょっとくわしく偵察してみる 26 # サービス/OSのバージョン特定とデフォルトのスクリプトを実行する nmap -A 192.168.0.89 # 脆弱性を検出するためのスクリプトを実行する nmap
--script vuln 192.168.0.89 # 特定のポートに絞って脆弱性の調査をする nmap -p 21 --script ftp 192.169.0.89 わりと誤検知/過検知も多いので、結果には誤差が生じる可能性もあります (そういうこともあります)
かるくサイトを見てみよう 27 # ブラウザを開いてアクセス http://192.168.0.89 サンタ大学 季節感ゼロですいません…
快適に楽しむためのコツ 28 ブラウザなどの操作をするときはホストOSの方を使った方が動作が軽くて 快適に楽しめる可能性があります(仮想マシンが重い人はお試しあれ) ※もちろんすべて仮想マシン内で完結しても良いですが、こっちの方が動作が軽い人が多いよって話です ホストOSで 普段使ってるブラウザを起動する ターゲットマシンのIPアドレスや ポータルのIPアドレス 仮想マシンは
コマンド入力専用にすると ストレスが減ります HackingLove-5G または HackingLove-2.4Gに接続
ポート別探索
FTP(ポート21) 30 # アノニマス(名無し)でつないでみよう ftp 192.168.0.89 anonymous (←パスワードを聞かれても何も入力せずにエンター) ls get
<ファイル名> # 接続を切る exit ※昔は自分のメールアドレスを入力しろと言われてたらしい ※ftpコマンドを実行したディレクトリにファイルが落ちてきます。そのディレクトリに書き込み権限がないとエラーになります
31 FTP(ポート21) # ファイルを開く cat <ファイル名> ちなみに、IDとパスワードが同じアカウントのことを 「ジョーアカウント」と呼びます
SSH(ポート22) 32 # sshを使ってリモートでログインする ←今日はこっち ssh <ユーザー名>@192.168.0.89 # sshを使って証明書でログインする ssh
<ユーザー名>@192.168.0.89 -i <証明書ファイルのパス> # ログイン後ディレクトリを確認する ls -la # 接続を切る exit Are you sure you want to continue connecting (yes/no/[fingerprint])? って聞かれたら「yes」って入力します
SMB(ポート139と445) 33 # 共有の列挙 smbclient -L 192.168.0.89 (←パスワード聞かれるけど何も入力せずにエンター) # 接続する
smbclient ¥¥¥¥192.168.0.89¥¥共有名 (←何も入力せずにエンター) ls get ファイル名 # 接続を切る exit
34 #lessコマンドで長いファイルを見る less <ファイル名> ↑↓キーで移動 終わりたいときは「q」 SMB(ポート139と445)
http(ポート80) 35 #ディレクトリの探索 dirb http://192.168.0.89 <好きな辞書ファイル> ※時間かかるので今日は非推奨です ※DirBusterやGoBusterという同種のツールもありますので 入ってる人は使ってもよさそう(GUIだったり早かったり)
Webを少しくわしく
WordPress • 全ウェブサイトの40%以上で使われ ているらしい • 古いバージョン/古いプラグイン • 脆弱なテーマ • 使う人のリテラシが低いことがあっ
たりする ⇒ターゲットとして大変美味しい 37
サンタ大学のサイトを見てみよう 38
WordPress(デフォルト設定) なんとなくお約束的なものとして知っておくと役立つことがあります 39 # インストールディレクトリ /var/www/html (/var/www など場合もあるかも?) # 重要なファイルやディレクトリ
/wp-admin 管理者ログイン画面(wp-login.phpにリダイレクト) /wp-content/uploads アップロードしたデータの保存領域 /wp-config.php DBとかの設定情報が書かれているファイル
WordPressの管理者画面をみる 40 ユーザー名とパスワードがわかればログインできる http://192.168.0.89/wp-admin ←後ろにwp-adminをつける
辞書攻撃の話 41 辞書の選び方がすごく重要 むしろ辞書が10割。 リスト型攻撃と混同しがちだけとそこはわり とどうでもいい気もする(諸説あり) パスワードクラックのイメージ 7日間でハッキングをはじめる本 P77より引用
WordPressの診断ツールwpscan 42 # ユーザー探索 wpscan --url http://192.168.0.89 --enumerate u #
パスワードを辞書攻撃 wpscan --url http://192.168.0.89 ‒U <ユーザー名> -P <辞書ファイル> [?] Do you want to update now? [Y]es [N]o, default: [N] って聞かれたら「N」って入力します
他にもあるパスワードの破り方 43 ハッシュ値になっていても 解析可能なことがある。 レインボーテーブル HUMINT(スパイ活動) ソーシャルエンジニアリング。人をだまして聞き出すとかそういうのもかなり有効 トラッシング(ゴミ箱あさりのかっこいい言い方)なども? 7日間でハッキングをはじめる本 P112より引用
Webshell(ウェブシェル)ってなあに? 44 Web経由でサーバのコマンドを実行す ることを可能にするバックドアの一種。 PHPやPythonなどで作られていて一 度サーバ内に侵入・設置されると外か ら任意のコマンドが実行可能になる。
ハンズオンおわり
チャレンジタイム
今更ですが今日のコンテンツの紹介 47 ポータル(http://192.168.0.10)にアクセスしてください。 ハッキング・ラブ 皆さんはスパイという設定で HacKING株式会社に 潜入調査していただきます。 まあ詳しいことはこのCTFについ てページを読んでください。
チャレンジタイムの最終目的 48 チーム全員で協力してフラグを集めて手元の解答用紙を埋め 暗証番号を手に入れ、手元の袋の鍵を開けること 袋は数字を合わせて右のボタンを押すと開きます (総当たりは禁止です) 押す 問題に対応するアルファベットの欄に、 フラグの中のカタカナ部分のみ記入 例)FLAG{ペンフェスト}
ヒントについて補足 49 問題にはヒントがついています。 Unlock Hint for 0 points…ペナルティな しでヒントを閲覧することができる (見る見ないは自由です)
Unlock Hint for 5 points…閲覧するため にはこれまで獲得したポイントから5ポイン トが消費される (開く前に確認があるのでうっかり押しても 大丈夫です) (10ポイントの場合もあります) 正解によって獲得できるポイント
ハッカーの心構え 50 Try Harder! 「もっとがんばれ!」と煽るときのことば 1人だとしんどいかもしれないですが 今日はチーム戦なので楽しくやっていきましょう
今日いちばん大事なこと 51 • 困ったときは1人で悩まず相談しよう • 解けた問題の答えや解法はチームに共有しておくといいことがあるかも • 紙とペンは自由に使ってください 協力と情報共有
その他もしかして 役立つかもしれない TIPS
あれ?つながらないな?と思ったら 53 WiFiが正しいか確認しよう 会場のWiFiからチャレンジタイムの環境 (192.168.0.XX)はつながりませんので注意 SSID名 SSID名 SSID名 SSID名 チャレンジタイムのWiFiは
インターネットがない表示になります(正常) インターネットに 出られるときの表示
MetasploitFlameworkの使い方 54 # 起動 msfconsole # 検索 search <キーワード> #
設定が必要な項目を表示 show options 世の中のExploitコードを楽に使うためのツール(語弊がある)
辞書ってどこにある? kaliであればデフォルトでけっこう良い辞書があります 55 # ディレクトリ探索辞書 /usr/share/dirb/wordlists/***** など # 有名なパスワードリストのrockyouを使う sudo
gzip -d /usr/share/wordlists/rockyou.txt.gz ※圧縮されてるので使うときは展開する
ファイルの解析 56 ## fileコマンドでなんのファイルかを確認する file <file> ## バイナリファイルの中から読める文字列だけを抜き出す strings <file>
## 画像ファイルの時はEXIFを確認する exiftool <file> 謎のファイルがあったらとりあえずやるやつ
John the ripperの使い方 57 # shadowファイルを辞書攻撃で解析する場合 ## 解析用ファイルをつくる echo ʻハッシュʼ
> hash.txt ## そのファイルに対して解析をする john --format=sha512crypt --wordlist=<辞書ファイル> hash.txt 人気のあるパスワード解析ツール(やや語弊がある)
John the ripperの使い方 58 # 暗号化されたzipファイルのパスワードを総当たりで解析する場合 ## 解析用ファイルをつくる zip2john <解析対象ファイル>.zip
> hash.txt ## そのファイルに対して解析をする(桁数が短ければイケる) john --incremental=ASCII hash.txt
John the ripperの使い方 59 ## 過去に解析した結果をもう一度見たいとき john --show hash.txt ##
結果が見づらいとき john --show hash.txt | awk -F: 'NF>1{print $2}' 人気のあるパスワード解析ツール(やや語弊がある)
データベースのコマンド集 60 # mysqlに接続する mysql -u <ユーザー名> -p (パスワードを入力する) #
データベースを見る SHOW DATABASES; # お目当てのデータベースを選択する USE <データベース名>; # テーブルを見る SHOW TABLES; # テーブルの中身を見る SELECT * FROM <テーブル名>;
WordPressのDBバックアップ 61 # バックアップの取り方(SSHログイン後にとるとき) mysqldump -u <ユーザー名> -p<パスワード> <DB名> >
wordpress_bkup.sql ※-pの後にパスワードを直接記述するときは、スペースを空けずに記述する ※パスワードをコマンドラインに直接記述することは推奨されてない(historyに残ることがある) # バックアップの取り方(リモートからとるとき) mysqldump -h 192.168.0.XX -u <ユーザー名> -p --all-databases --ssl=0 > dump.sql ※dump.sqlというファイルができる
チャレンジタイム 14:15まで