Upgrade to Pro — share decks privately, control downloads, hide ads and more …

P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをや...

P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをやってみよう」資料

2026年3月7日に開催されたP3NFEST 2026 Springにて提供させていただいたハンズオン教育の資料です
CTF要素とグループワークを取り入れたコミュニケーション重視の演習としました。

Avatar for Nomizo Nomizo

Nomizo Nomizo

March 06, 2026
Tweet

More Decks by Nomizo Nomizo

Other Decks in Education

Transcript

  1. ハンズオンのスケジュール 5 時間(だいたい) 内容 12:30~12:45 オープニング (前フリ・自己紹介・リーダー決め・ポータル登録) 12:45~13:15 ハンズオンタイム (解説を聞きながらみんなで手を動かそう)

    13:15~14:15 チャレンジタイム (CTFチャレンジ/チーム戦) 14:15~14:30 クロージング (表彰・軽く解説←状況によってはなくなるかも) ※トイレ休憩などは各自で自由にどうぞ
  2. WiFiについて WiFiは2種類あります 7 HackingLoveのWiFiは インターネットがない表示になります(正常) 会場WiFi … インターネットあり HackingLove-5G /

    HackingLove-2.4G … ローカルのみ すいませんが必要な場合は切り替えてください 基本的には必要なことは資料に書いているので切り替えなくても解けるようになってるはずです
  3. 合法のハッキング(?)の流れ 18 ←NIST(アメリカ国立標準技術 研究所)が発行したセキュリ ティ監査に関する資料 NIST SP 800-115より 情報収集と攻撃実行をぐるぐる する。レポートも書く。

    情報収集(RECON)地味だけ どすごく大事 むしろハッキングは列挙が9割 (諸説あり) ペネトレーションテストの流れ https://www.nist.gov/privacy-framework/nist-sp-800-115
  4. (参考)接続方法のちがい 21 ホストOS (Windowsなど) ゲストOS (Kaliなど) 仮想マシンを利用している場合は、接続方式が大きく分けて 2種類あります。 デフォルト(NAT接続)だとできないこともあったりします。 今日のところは大丈夫だけど覚えておくと良いです。

    ブリッジ接続 NAT接続 ゲストOSにDHCPのIPアドレスがふられる ホストOSにDHCPのIPアドレスがふられる Kaliから外に出る時はホストOS経由で出ていく構成 大抵の場合デフォルト設定はこっち
  5. もうちょっとくわしく偵察してみる 26 # サービス/OSのバージョン特定とデフォルトのスクリプトを実行する nmap -A 192.168.0.89 # 脆弱性を検出するためのスクリプトを実行する nmap

    --script vuln 192.168.0.89 # 特定のポートに絞って脆弱性の調査をする nmap -p 21 --script ftp 192.169.0.89 わりと誤検知/過検知も多いので、結果には誤差が生じる可能性もあります (そういうこともあります)
  6. FTP(ポート21) 30 # アノニマス(名無し)でつないでみよう ftp 192.168.0.89 anonymous (←パスワードを聞かれても何も入力せずにエンター) ls get

    <ファイル名> # 接続を切る exit ※昔は自分のメールアドレスを入力しろと言われてたらしい ※ftpコマンドを実行したディレクトリにファイルが落ちてきます。そのディレクトリに書き込み権限がないとエラーになります
  7. 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」って入力します
  8. SMB(ポート139と445) 33 # 共有の列挙 smbclient -L 192.168.0.89 (←パスワード聞かれるけど何も入力せずにエンター) # 接続する

    smbclient ¥¥¥¥192.168.0.89¥¥共有名 (←何も入力せずにエンター) ls get ファイル名 # 接続を切る exit
  9. WordPress(デフォルト設定) なんとなくお約束的なものとして知っておくと役立つことがあります 39 # インストールディレクトリ /var/www/html (/var/www など場合もあるかも?) # 重要なファイルやディレクトリ

    /wp-admin 管理者ログイン画面(wp-login.phpにリダイレクト) /wp-content/uploads アップロードしたデータの保存領域 /wp-config.php DBとかの設定情報が書かれているファイル
  10. 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」って入力します
  11. ヒントについて補足 49 問題にはヒントがついています。 Unlock Hint for 0 points…ペナルティな しでヒントを閲覧することができる (見る見ないは自由です)

    Unlock Hint for 5 points…閲覧するため にはこれまで獲得したポイントから5ポイン トが消費される (開く前に確認があるのでうっかり押しても 大丈夫です) (10ポイントの場合もあります) 正解によって獲得できるポイント
  12. MetasploitFlameworkの使い方 54 # 起動 msfconsole # 検索 search <キーワード> #

    設定が必要な項目を表示 show options 世の中のExploitコードを楽に使うためのツール(語弊がある)
  13. ファイルの解析 56 ## fileコマンドでなんのファイルかを確認する file <file> ## バイナリファイルの中から読める文字列だけを抜き出す strings <file>

    ## 画像ファイルの時はEXIFを確認する exiftool <file> 謎のファイルがあったらとりあえずやるやつ
  14. John the ripperの使い方 57 # shadowファイルを辞書攻撃で解析する場合 ## 解析用ファイルをつくる echo ʻハッシュʼ

    > hash.txt ## そのファイルに対して解析をする john --format=sha512crypt --wordlist=<辞書ファイル> hash.txt 人気のあるパスワード解析ツール(やや語弊がある)
  15. John the ripperの使い方 58 # 暗号化されたzipファイルのパスワードを総当たりで解析する場合 ## 解析用ファイルをつくる zip2john <解析対象ファイル>.zip

    > hash.txt ## そのファイルに対して解析をする(桁数が短ければイケる) john --incremental=ASCII hash.txt
  16. John the ripperの使い方 59 ## 過去に解析した結果をもう一度見たいとき john --show hash.txt ##

    結果が見づらいとき john --show hash.txt | awk -F: 'NF>1{print $2}' 人気のあるパスワード解析ツール(やや語弊がある)
  17. データベースのコマンド集 60 # mysqlに接続する mysql -u <ユーザー名> -p (パスワードを入力する) #

    データベースを見る SHOW DATABASES; # お目当てのデータベースを選択する USE <データベース名>; # テーブルを見る SHOW TABLES; # テーブルの中身を見る SELECT * FROM <テーブル名>;
  18. 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というファイルができる