
AIガイドによるCTF - トレーナーとしてClaude Codeを使いながら実際のサーバーに侵入する
AIを使ってフラッグを取る、CTF。
ペンテストの経験がなくても大丈夫。Claude Code があなた専属のトレーナーとして、環境構築からツールの使い方、攻撃手法まで一歩ずつガイドします。コマンドを打つのは、全部あなた自身の手です。
SNet は、実際に本番稼働していたサーバーをもとに作成した脆弱な仮想マシンです。教科書的な演習ではなく、現実のサーバー管理者が残したカオス — 設定ファイル、放置されたスクリプト、忘れられた認証情報、杜撰な判断の積み重ね — がそのまま再現されています。
攻略ルートは 全10通り。周回するたびに違うルートを選び、ヒントも減っていきます。全ルートを制覇する頃には、攻撃者と管理者、両方の目を持つようになっているはずです。
ターミナルが開ければ、誰でも遊べます。
git clone https://github.com/hrmtz/SNet.git
cd SNet
vagrant up
全VM(AIトレーナー、Kali、ターゲット)、ネットワーク、ポートフォワード — コマンド1つ。
WSL2ユーザー: VagrantはWindows版ではなく、WSL内にLinux版をインストールしてください。以下の環境変数を設定してください(
~/.bashrcまたは~/.zshrcに追加):export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1" export PATH="$PATH:/mnt/c/Program Files/Oracle/VirtualBox"
注意:
vagrant up中にターゲットVMのSSH認証がタイムアウトしますが、これは正常です。ターゲットはCTFマシンのためVagrant SSHを受け付けません。vagrant statusでrunningと表示されていれば問題ありません。
| VM | コマンド | 備考 |
|---|---|---|
| AIトレーナー |
初回ログイン時、Claude Codeが自動起動し認証方法を選択する:
「SNetのセットアップをお願いします」— あとはトレーナーが全部やる。
偵察 → 攻撃 → フラグ奪取
↑ ↓
← 管理者として修正 ←
(× 10 周)
このリポジトリは複数のCTFシナリオに対応しています。デフォルトでは vagrant up で SNet1(初級)が起動します。
| シナリオ | コマンド | 説明 |
|---|---|---|
| SNet1 | vagrant up | 鍵のかかっていない家への侵入(初級) |
| SNet2 | SNET=2 vagrant up | 監視の目をかいくぐれ(中級) |
SNet2ではZabbix監視サーバーが追加され、常時監視下での作戦行動が求められます。詳細は SNet2 README を参照。
VMが既に起動中の場合、特定のシナリオを追加するには:
SNET=2 vagrant up snet2-target snet2-zabbix # SNet2のVMを追加起動
SNET=2 vagrant provision claude # トレーナーをSNet2用に設定
Kali VMには rlwrap と tmux がプリインストールされており、リバースシェルの操作が快適になります。
推奨ワークフロー:
# 1. tmuxセッションを起動
tmux new-session -s attack
# 2. rlwrap経由でncを起動(行編集・履歴が使える)
rlwrap nc -lvnp 4444
# 3. tmuxでスクロール: Ctrl+B → [
# スクロール終了: q
なぜ? 素のリバースシェルでは矢印キー、Tab補完、スクロールバックが効きません。rlwrap はreadlineサポート(履歴・編集)を、tmux はスクロールバックとウィンドウ管理を提供します。
新しいシナリオはプロビジョニング時に自動取得されます。最新版を取得するには:
vagrant provision claude
VM全体を再ダウンロードせず、シナリオだけ更新されます。
本プロジェクトは教育目的でのみ提供されています。責任ある使用をお願いします。
vagrant ssh claude または ssh -p 2222 snet@localhost |
| Kali | vagrant ssh kali |
| ターゲット | ホストからSSH不可 — Kaliから攻撃(10.0.10.20) |