モダンなサイバーレンジで、Web、API、クラウド、AI、ブルーチームのセキュリティトラックにわたる50のハンズオンチャレンジを提供。ガイド付き攻撃チェーン、透明なAIシミュレーター、GRC証拠レポート機能を備え、ペネトレーションテスティングと防御技術の学習を支援します。
ハンズオンな攻撃チェーンを通じてWeb、API、クラウド、 AI、そしてブルーチームセキュリティを学ぶための、モダンな脆弱性アプリケーション&サイバーレンジです。
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ モダンサイバーレンジ · 53チャレンジ · 8トラック ║
╚═══════════════════════════════════════════════════════════════╝
★ このリポジトリが役に立ったならスターを付けてください - 無料で、他の人が無料のセキュリティ教育を見つける助けになります。
PENTEST-LABは、単一の脆弱性を持つボックスではありません。攻撃者と防御者の視点をGRCスタイルの証拠出力と組み合わせた本格的なサイバーレンジです。
[SYSTEM][USER][RETRIEVED][HISTORY] コンテキスト、生成された出力、検出されたインジェクション手法、各緩和策のトグルを確認できます。127.0.0.1 にバインドし、0.0.0.0 では大きな警告を表示。すべてのシークレットは偽物で明確にマークされ、SSRFターゲットはローカルのプロセス内モック(実際の外部通信なし)、外部ターゲットなし。make verify-registry はチャレンジレジストリを検証し(一意のID/フラグ、必須フィールド、リソース、ヒント数)、カタログの一貫性を維持します。# 1. ワンライナー(依存関係のインストール、DBシード、サーバー起動)
python start_lab.py
# または: make start
ブラウザで http://localhost:3000 を開きます。
# バックエンドのみ
cd backend && npm install && npm start
# Docker(127.0.0.1 のみに公開)
docker compose up --build
# 取得したフラグ / イベント / チェーン進行状況をリセット
make reset
# デモシードデータを再生成
make seed
# コアルートのスモークテスト(先にラボを起動)
make test
# チャレンジレジストリの検証(一意のID/フラグ、フィールド、リソース)
make verify-registry
# 安全なローカルのみのエクスプロイトデモ(5チャレンジ)
python demo_exploit.py
| トラック | 学べること | # |
|---|---|---|
| ◆ Webアプリペンテスト | SQLi、IDOR、ファイルアップロード、パストラバーサル、WAFバイパス | 14 |
| ◆ APIセキュリティ | BOLA、マスアサインメント、レート制限バイパス、Webhook、GraphQL、CORSリフレクション、NoSQLインジェクション | 7 |
| ◆ 認証 & セッション | JWT kid/alg混乱、リフレッシュトークン再利用、リセットトークン、フィクセーション、MFA、ホストヘッダーリセットポイズニング | 9 |
| ◆ クラウド / DevOps | .env漏えい、SSRFメタデータ、Dockerデバッグ、公開ストレージ、CI/CDトークン | 5 |
| ◆ AIセキュリティ | プロンプトインジェクション、間接インジェクション、RAG漏えい/ポイズニング、ツール呼び出し、マルチターン脱獄、出力フィルターバイパス、3レベルの監査ドリル | 10 |
| ◆ ビジネスロジック | クーポン積み重ね、マイナス数量、レースコンディション、決済バイパス | 5 |
| ◆ 攻撃チェーン | ガイド付きエンドツーエンドパス + レガシー全チェーンRCE、証拠付き | 2 |
| ◆ ブルーチーム証拠 | 攻撃の検出とGRCレポートの生成 | 1 |
| 53 |
各チャレンジには以下が含まれます: ID、タイトル、トラック、カテゴリ、難易度、目的、 脆弱なエンドポイント、悪用コンセプト、3段階のプログレッシブヒント(曖昧 → 具体的 → 回答)、フラグ、是正措置、検出/証拠ノート、マッピングされたコントロールドメイン、解く前に学ぶリソースリスト。
任意のチャレンジカードをクリックしてモーダルを開きます。以下が表示されます:
6つの検出ステップからなる、現実的で完全にローカルなチェーン:
偵察 → 情報漏えい → 資格情報/トークン悪用 →
権限昇格 → 機密データアクセス → 証拠レポート
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. デバッグエンドポイントがルートを公開
curl -s $B/api/attack-chain/leak # 2. 漏えいした偽のJWTシークレット(weak123)
# 3. 管理者トークンを偽造 -> 4. 権限昇格 -> 5. 偽の顧客レコードを読む -> 6. レポート
curl -s $B/api/attack-chain/progress
攻撃チェーンタブで進行状況をライブで確認できます。
ディフェンダータブには、攻撃者が実行したのと同じアクティビティが表示されます: 最近のイベント、失敗したログイン、不審なAPIアクセス、ファイルアップロード、SSRF 試行、権限昇格の試行、取得されたフラグ、攻撃チェーンの進行状況 - 各イベントは重大度で色分けされ、フラグ取得は🚩でマークされます。
curl -s http://localhost:3000/api/blue-team/dashboard
取得したフラグからレポートを生成し、各フラグを重大度、影響を受けるエンドポイント、証拠、ビジネス影響、是正措置、コントロールドメイン、検出機会を持つ発見事項にマッピングします。
# Markdown(デフォルト)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON または CSV
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"csv"}'
# マッピングされるコントロールドメイン: アクセス制御、ログ記録と監視、
# セキュア開発、シークレット管理、変更管理、
# 構成管理、データ保護、インシデント対応。
⚠️ これは検出/GRC学習のための広範なコントロールドメインマッピングです。いかなる 標準への準拠を主張するものではありません。
このリポジトリにはスクリーンショットや録画されたGIFは含まれていません。ローカルのデモアセットを作成する場合は、docs/screenshots/ の下に配置し、キャプチャプロセスをそれらと一緒に文書化してください。プレゼンテーション対応の
docs/DEMO_WALKTHROUGH.md がメンテナンスされたデモスクリプトです。
このラボは意図的に脆弱です。隔離された環境でのみ実行し、インターネットに公開しないでください。
127.0.0.1 にバインドします(backend/.env の HOST=127.0.0.1)。HOST=0.0.0.0 に設定すると大きな警告が表示され、UIに危険バナーが表示されます。├── start_lab.py # ワンコマンドランチャー(依存関係 + シード + 実行)
├── demo_exploit.py # 安全なローカルのみのエクスプロイトデモ(5チャレンジ)
├── docker-compose.yml # localhostのみに公開
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # 完全なチャレンジカタログ
├── frontend/ # ダッシュボードUI(トラック、チェーン、ディフェンダー、証拠)
├── backend/
│ ├── server.js # Expressアプリ、localhostバインド、ルート配線
│ ├── challenges/registry.js # 中央チャレンジレジストリ(53チャレンジ)
│ ├── ai/ # 透過的なAIシミュレーター + RAGストア(外部LLMなし)
│ ├── utils/events.js # 中央イベントストア + ブルーチームフィード
│ ├── routes/ # 脆弱なルート + モードルート(api、cloud、ai、shop、...)
│ ├── scripts/ # init-db、seed、reset、test_routes
│ └── middleware/ # auth(安全)、auth.vulnerable、waf、security
├── solutions/ # Pythonエクスプロイトライトアップ
└── docs/ # セットアップ、ツール、デモ、攻撃チェーンガイド
バグを見つけた、またはチャレンジを追加したいですか?PRを歓迎します。
backend/challenges/registry.js に追加(単一の真実源)。events.captureFlag({ flag, req }) を介してフラグを発行。make test と make verify-registry を実行。教育目的のみ。LICENSE が存在する場合は参照してください。所有している、または明示的にテストを許可されたシステムに対してのみ使用してください - ここでは、このローカルラボを意味します。
このラボが何か新しいことを学ぶのに役立ったなら: