
モダンなサイバーレンジで、Web、API、クラウド、AI、ブルーチームのセキュリティトラックにわたる50のハンズオンチャレンジを提供。ガイド付き攻撃チェーン、透明なAIシミュレーター、GRC証拠レポート機能を備え、ペネトレーションテスティングと防御技術の学習を支援します。
現代的な脆弱性アプリケーション&サイバーレンジで、実践的な攻撃チェーンを通じて Web、API、クラウド、AI、ブルーチームセキュリティ を学べます。
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ MODERN CYBER RANGE · 50 CHALLENGES · 8 TRACKS ║
╚═══════════════════════════════════════════════════════════════╝
★ このリポジトリが役に立ったらスターを付けてください。無料で、他の人が無料のセキュリティ教育を見つけるのに役立ちます。
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
各チャレンジには以下が含まれます: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 -d '{"format":"csv"}'
# マッピングされる管理ドメイン:アクセス制御、ログ記録と監視、
# セキュア開発、シークレット管理、変更管理、
# 構成管理、データ保護、インシデント対応。
⚠️ これは検出/GRC学習のための広義の管理ドメインマッピングです。いかなる標準への準拠を主張するものではありません。
| トラックダッシュボード | アタックチェーン |
| 防御者ビュー | 証拠レポート |
🎬 デモGIF: docs/demo.gif - 約6分のプレゼンテーションスクリプトについては docs/DEMO_WALKTHROUGH.md を参照。(独自のキャプチャを docs/screenshots/ と docs/demo.gif に配置してプレースホルダーを置き換えてください。)
このラボは意図的に脆弱です。隔離された環境でのみ実行し、インターネットに公開しないでください。
127.0.0.1 にバインド(backend/.env の HOST=127.0.0.1)。HOST=0.0.0.0 に設定すると大きな警告が表示され、UIに危険バナーが表示されます。├── start_lab.py # one-command launcher (deps + seed + run)
├── demo_exploit.py # safe local-only exploit demo (5 challenges)
├── docker-compose.yml # localhost-only publish
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # full challenge catalog
├── frontend/ # dashboard UI (tracks, chain, defender, evidence)
├── backend/
│ ├── server.js # Express app, localhost bind, route wiring
│ ├── challenges/registry.js # CENTRAL challenge registry (50 challenges)
│ ├── ai/ # TRANSPARENT AI simulator + RAG store (no external LLM)
│ ├── utils/events.js # CENTRAL event store + Blue Team feed
│ ├── routes/ # vulnerable + mode routes (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (safe), auth.vulnerable, waf, security
├── solutions/ # Python exploit writeups
└── docs/ # SECURITY_REPORT, SETUP, DEMO_WALKTHROUGH
バグを発見した場合やチャレンジを追加したい場合は、PRを歓迎します。
backend/challenges/registry.js(単一の情報源)に追加します。events.captureFlag({ flag, req }) を使用してフラグを発行します。make test と make verify-registry を実行します。教育目的のみ。LICENSE が存在する場合はそれを参照してください。自分が所有する、または明示的にテストを許可されたシステムに対してのみ使用してください。ここでは、このローカルラボが該当します。
このラボで何か新しいことを学べたなら:
| トラック | 学べること | # |
|---|
| ◆ Web App Pentest | SQLi、IDOR、ファイルアップロード、パストラバーサル、WAFバイパス | 14 |
| ◆ API Security | BOLA、マスアサインメント、レート制限バイパス、Webhook、GraphQL、CORSリフレクション、NoSQLインジェクション | 7 |
| ◆ Auth & Session | JWT kid/alg混乱、リフレッシュトークン再利用、リセットトークン、固定化、MFA、ホストヘッダーリセットポイズニング | 9 |
| ◆ Cloud / DevOps | .env漏洩、SSRFメタデータ、dockerデバッグ、公開ストレージ、CI/CDトークン | 5 |
| ◆ AI Security | プロンプトインジェクション、間接インジェクション、RAG漏洩/ポイズニング、ツール呼び出し、マルチターン脱獄、出力フィルターバイパス | 7 |
| ◆ Business Logic | クーポンスタッキング、負の数量、レースコンディション、支払いバイパス | 5 |
| ◆ Attack Chain | ガイド付きエンドツーエンドパス + レガシー全チェーンRCE、証拠付き | 2 |
| ◆ Blue Team Evidence | 攻撃の検出とGRCレポートの生成 | 1 |
| 50 |