Agentic Pentesting MCPサーバー - ウェブアプリケーションの脆弱性を発見、悪用、報告する。
Webアプリケーションペネトレーションテストを自動化するエージェント型ペンテストMCPサーバーです。OWASP Web Security Testing Guideの全テストとPortSwigger Web Security Academyのテクニックリファレンスを活用します。
対象を指定すると、アプリケーションをクロールし、すべてのエンドポイントをマッピングした後、役割特化型エージェント(Scout、Analyzer、Exploiter、Reporter)を起動して、XSS、SQLi、SSRF、SSTI、IDORなどをテストします。誤検知は一切ありません。すべての検出結果は、実際の再現可能な証拠に基づいており、品質ゲートがすべてのフェーズで証拠を強制します。31のPortSwiggerテクニックガイド、12ベンダー向けの適応型WAF回避、クロスフェーズの脆弱性連鎖、リスク加重エンドポイント優先順位付けを備えています。Claude Code、API、またはOllamaモデルを使用した完全オフラインで実行できます。
イメージとしては: シニアペンテスターの方法論をMCPサーバーにエンコードしたもの——109のOWASPテスト、31のPortSwigger攻撃テクニックガイド、68以上のMCPツール、27のセキュリティツール、4つの専門エージェントロール、7つの構造化フェーズ、自動品質保証、そしてゼロコンテキストの最終レビュー。
手動ペネトレーションテストは徹底していますが、時間がかかります。自動スキャナーは高速ですが、浅いです。AutoPentestはそのギャップを埋めます:
| 機能 | 手動ペンテスト | 自動スキャナー | AutoPentest |
|---|---|---|---|
| 完全なOWASP WSTGカバレッジ | テスターによる | 部分的 | 109テスト |
| ビジネスロジックテスト | はい | いいえ | はい |
| 複数ステップの悪用 | はい | 限定的 | はい |
| 脆弱性の連鎖 | はい | いいえ | はい |
| 証拠に基づく検出 | はい | テンプレート出力 | 再現可能なcurlコマンド |
| 一貫した品質 | 変動あり | はい | フェーズゲート+最終判定 |
| 速度 | 数日 | 数分 | 数時間 |
| クロスドメイン認証(SSO/OIDC) | 手動セットアップ | 通常失敗 | 自動処理 |
┌─────────────────────────────────────────────────────────────┐ │ LLM Orchestrator (Claude) │ │ │ │ Reads CLAUDE.md workflow, manages phases, │ │ spawns role-specialized subagents │ └──────────┬──────────┬──────────┬──────────┬─────────────────┘ │ │ │ │ ┌─────▼────┐ ┌───▼─────┐ ┌──▼───────┐ ┌▼─────────┐ │ Scout │ │Analyzer │ │Exploiter │ │ Reporter │ │ (recon) │ │ (vuln │ │ (proof) │ │ (QA / │ │ │ │ disc.) │ │ │ │ judge) │ └──────────┘ └─────────┘ └──────────┘ └──────────┘ │ │ │ │ │ MCP │ │ MCP │ ▼ ▼ ▼ ▼ ┌──────────────────────────┐ ┌──────────────────────┐ │ WSTG MCP Server │ │ Playwright MCP │ │ (68+ tools) │ │ (Browser Testing) │ │ │ │ │ │ ◦ 109 WSTG tests │ │ ◦ DOM XSS proof │ │ ◦ 31 technique guides │ │ ◦ Clickjacking │ │ ◦ Task tree │ │ ◦ JS-rendered auth │ │ ◦ Knowledge graph │ └──────────────────────┘ │ ◦ WAF evasion │ │ ◦ Tool output parser │ │ ◦ Results verification │ docker exec │ ◦ Context compression │ │ │ ◦ Endpoint priority │ ▼ │ ◦ Quality gates │ ┌──────────────────────┐ │ ◦ Report generation │ │ autopentest-tools │ └──────────────────────────┘ │ (Docker Container) │ │ │ │ 27 security tools: │ │ nuclei, sqlmap, │ │ dalfox, katana, │ │ ffuf, nmap ... │ │ │ │ Burp proxy │ │ passthrough │ └──────────────────────┘
**動作の仕組み:**
1. **Claude Code**が`CLAUDE.md`から完全なペネトレーションテスト手法を読み取り、7フェーズのワークフローを調整します
2. **ロール特化型サブエージェント**(Scout、Analyzer、Exploiter、Reporter)が、専用のプロンプトテンプレート、ツールガイダンス、アンチパターンを用いて焦点を絞ったタスクを実行します
3. **WSTG MCP Server**(68以上のツール)が、OWASPテスト手順、31のPortSwiggerテクニックガイド、階層型タスクツリー、ナレッジグラフ、WAF回避、エンドポイント優先順位付け、結果検証、コンテキスト圧縮、品質ゲート、レポート生成を提供します
4. **Dockerコンテナ**が27のセキュリティツールすべてを実行します。トラフィックは、パッシブモニタリングのためにBurp Suiteを経由するオプションがあります
5. **Playwright MCP**がブラウザベースのテスト(DOM XSS、クリックジャッキング、JSレンダリングされたログインページ)を担当します
---
## 特徴
### 包括的なOWASPカバレッジ
- **12カテゴリにわたる109のWSTGテストケース** — 情報収集からAPIテストまで
- 各テストには、ステップバイステップのCLI手順、コンテキスト固有のペイロード、検出基準、重大度ルーブリックが含まれます
- テストは優先順位付け(MUST/SHOULD)され、条件付きトリガーにより、関連するものがスキップされないようにします
### 31のPortSwigger攻撃テクニックガイド
- [PortSwigger Web Security Academy](https://portswigger.net/web-security)から取得 — 検出方法、悪用手法、ペイロード、チートシート、WAFバイパスパターン
- 脆弱性クラス(SQLi、XSS、SSRF、JWT、OAuthなど)ごとに整理されており、テスト中に直接使用できます
- すべてのテストフェーズに統合されています。各脆弱性クラスのテスト前に、エージェントが自動的に関連するテクニックガイドを読み込みます
- データベース/プラットフォーム固有のペイロードテーブル(SQLi用のOracle vs MySQL vs PostgreSQL vs MSSQL、SSTI用のJinja2 vs Twig vs Freemarkerなど)
- WAFバイパスパターンはバイパスレベル(基本→中級→上級)で整理されています
### 27の事前設定済みセキュリティツール
- すべてのツールが単一のDockerイメージにプリインストールされています — `make setup`ですぐに使用可能
- ツールはフェーズ別に整理:発見、インジェクションテスト、認証、暗号、APIテスト
- パッシブトラフィック監視のための自動Burp Suiteプロキシ統合
### 構造化された7フェーズのワークフロー
- **フェーズ0:** アプリケーション発見とマッピング
- **フェーズ1:** 情報収集と偵察
- **フェーズ2:** 構成と展開のテスト
- **フェーズ3:** ID、認証、認可、セッション管理
- **フェーズ4:** 入力検証テスト(パイプライン化されたXSS/SQLi/SSRFパイプライン)
- **フェーズ5:** エラーハンドリング、暗号、ビジネスロジック、クライアントサイド、APIテスト
- **フェーズ6:** カバレッジ検証とレポート作成
- **フェーズ7:** 最終審査と是正
### 品質保証システム
- **自動化されたフェーズゲート** — 各フェーズは進行前に品質チェックに合格する必要があります
- **品質レビュー担当者**サブエージェントがフェーズ切り替えごとにギャップを特定し、改善を提案します
- **最終審査** — ゼロコンテキストエージェントが外部QAレビュアーのように、エンゲージメント全体をコールドレビューします
- **網羅性ゲート** — 「脆弱性なし」と判断するには、十分なテスト努力(最小限の手法とバイパス試行)の証明が必要です
### 証拠に基づく発見事項
- すべての発見事項には、再現可能なcurlコマンドと完全なリクエスト/レスポンスの証拠が必要です
- **3段階分類:** EXPLOITED(実証された影響)、POTENTIAL(制御によってブロック)、FALSE_POSITIVE(制御が有効)
- **反幻覚フレームワーク** — 「エクスプロイトなし=発見なし」がすべてのレベルで強制されます
- 各脆弱性クラスに固有の証拠チェックリストが、発見が記録される前に検証されます
### ロール特化型サブエージェント
- **4つの専用ロール**とフォーカスされたプロンプトテンプレート、ツールガイダンス、アンチパターン:
- **Scout** — 偵察のみ。ペイロードを送信せずに攻撃対象領域をマッピング(フェーズ0-1)
- **Analyzer** — カナリア/ウィットネスペイロードを使用して潜在的なシンクを特定し、悪用キューを構築(フェーズ2-5の分析)
- **Exploiter** — Analyzerの出力を消費し、証拠を用いて悪用を証明し、確認された発見事項を記録(フェーズ4の悪用)
- **Reporter** — 品質レビューと最終審査。リクエストを送信せずにデータをレビュー(QA + レポート後)
- 分析と悪用の間の検証チェックポイントにより、無駄な努力を防止
- 各ロールには明示的な許可/制限ツールリストと入出力契約があります
### パイプライン化された悪用(フェーズ4)
- **3つの独立した2段階パイプライン**が並行して実行:XSS、インジェクション(SQLi/CMDi)、SSRF/SSTI
- 各パイプライン:Analyzer(発見→分析→キューイング)→ 検証チェックポイント → Exploiter(悪用→記録)
- 各パイプラインは、検出方法、チートシート、WAFバイパスパターンについてPortSwiggerテクニックガイドを読み込みます
- WAFインテリジェンスはすべてのパイプラインで共有されます
- 13のシンクタイプに対するコンテキスト認識型ウィットネスペイロード
### 適応型WAF回避
- **応答ヘッダー、本文、ステータスコードからの自動WAFフィンガープリンティング** — 12のWAFベンダーを識別(Cloudflare、AWS WAF、Akamai、Imperva、ModSecurity、F5、FortiWeb、Sucuri、Barracuda、Wordfence、NAXSI、Citrix)
- **ベンダー固有のバイパスペイロード**は複雑度レベル(基本→中級→上級)で整理
- WAFインテリジェンスはデリバラブルシステムを介してすべてのエージェントで共有
- 最初のブロック応答時にエージェントが自動的にWAFを識別し、調整されたバイパスペイロードに切り替え
### クロスフェーズナレッジグラフ
- **エンティティ関係グラフ**がエンドポイント、パラメータ、テクノロジー、発見事項、クッキー、ドメイン、ユーザーロールを追跡
- **BFSパス検索による自動脆弱性連鎖**と7つの事前定義連鎖パターン:
- XSS + CSPの欠如、XSS + 弱いクッキー(HttpOnlyなし)、オープンリダイレクト + OAuthコールバック
- IDOR + 管理者ロール、SSRF + クラウドメタデータ、ロックアウトなし + MFAなし、CORS + 機密エンドポイント
- 連鎖によって影響が実質的に増大する場合、重大度をアップグレード
- テスト中にデータが蓄積され、フェーズ4後に連鎖発見のためにクエリ実行
### 階層型タスクツリー
- 永続的なツリー構造(フェーズをブランチ、テストをリーフ)が、LLMの深さ優先バイアスとコンテキスト損失を防止
- メインエージェントは戦略的なマクロビューを維持し、サブエージェントは割り当てられたリーフノードのみを更新
- 自動伝搬:すべての子が完了すると、親が自動完了
- フェーズレベルの完了率で情報に基づいた意思決定をサポート
### エンドポイントリスク優先順位付け
- 優先順位付けテストのためにエンドポイントをリスクでスコアリングおよびソート — 最もリスクの高いものを最初にテスト
- スコアリング要素:パラメータ数、テクノロジーリスク指標、汚染連鎖信頼度、ツール収束、認証要件、インジェクション可能なパラメータ名
- フェーズ0のエンドポイントマップ生成に統合
### ツール出力解析
- **13の組み込みパーサー**(nmap、nuclei、sqlmap、ffuf、httpx、whatweb、testssl、nikto、dalfox、katana、gau、wapiti、commix)
- 生のツール出力を主要な発見事項、エンドポイント、エラーを保持しつつ3〜5倍に凝縮
- 設定可能な冗長性:サマリー(約15行)、詳細(約50行)、完全(解析済み出力全体)
### CLIツール結果検証
- CLIツール出力品質の自動検証 — 空の出力、プロキシエラー、権限の問題、疑わしい結果を検出
- **10のツール別バリデーター**(nmap、nuclei、sqlmap、ffuf、feroxbuster、testssl、dalfox、wapiti、katana、httpx)と修正コマンドの提案
- ツールが空または疑わしい出力を生成した場合、バリデーターが修正を提案(例:nmapに`-Pn`を追加、プロキシ環境変数を削除、別のフラグを試す)
- ツール実行ワークフローに統合 — エージェントはCLIツール実行後毎に`verify_tool_result()`を呼び出します
### プログレッシブコンテキスト圧縮
- **フェーズサマリー**(約500〜800ワード)がフェーズゲート通過時に自動生成 — 発見事項、カバレッジ、ツール結果、攻撃対象領域を圧縮形式でキャプチャ
- 長期実行エンゲージメントでのコンテキスト劣化を防止するため、生の履歴データを構造化サマリーに置き換え
- `get_engagement_summary()`が全フェーズのサマリーを1つの概要に結合し、新しいサブエージェントプロンプトに注入
- サマリーはデリバラブルとして保存 — 完全なエンゲージメント履歴を必要とせず、下流のエージェントがアクセス可能
### 反事実分析(2回目の発見)
- Analyzerが脆弱性を発見して完了した後、**2番目の Analyzer**が「それらの脆弱性は修正されたと仮定する」という指示で起動
- 反事実 Analyzerは**追加の**脆弱性を検索:異なるエンドポイント、異なるパラメータ、異なるインジェクションコンテキスト、ロジックの欠陥
- 結果は既存の悪用キューに追加(エンドポイント+パラメータによる重複排除と自動インクリメントIDによる自動マージ)
- PenHealアブレーション研究に基づき、反事実プロンプティングで+71%の脆弱性カバレッジ向上を実証
### マルチドメインサポート
- 自動SSO/OAuth/OIDC/SAML検出と処理
- ドメインごとのスコープ登録、クローリング、テスト
- クロスドメインセッション永続化のためのクッキージャー管理
- 6レベルの認証失敗エスカレーション(代替許可 → PKCE → ヘッドレスブラウザ → トークン抽出 → ユーザープロビジョニング → 未認証)
### クラッシュセーフなエンゲージメント管理
- 追記専用の`findings.md`と`progress.log`がクラッシュからデータを保護
- ロールバック機能付きGitワークスペースチェックポイント
- **中断時の自動再開** — `resume-prompt.md`がすべてのチェックポイントで自動生成され、完全なコンテキスト(ターゲット、認証情報、現在のフェーズ、残りのテスト、スコープ)を含む。新しいセッションに貼り付けて、中断したところから正確に続行可能
- フェーズ内チェックポイントの粒度 — フェーズ内のどのテストが完了したかを追跡(フェーズレベルの状態だけでなく)
- すべてのMCPツール呼び出しの完全な監査証跡とタイムスタンプ
### プロフェッショナルなレポート
- Markdownレポート(エグゼクティブサマリー、重大度別発見事項、テストカバレッジマトリックス、ツールカバレッジ)
- カテゴリ別カバレッジ率とギャップ分析
- 脆弱性連鎖分析を文書化
- 最終審査の所見と品質メモを含む
---
## エージェントロールシステム
AutoPentestは、汎用サブエージェントの代わりに4つの専門エージェントロールを使用します。各ロールには、フォーカスされたツールガイダンス、入出力契約、アンチパターンを持つ専用のプロンプトテンプレートがあります。
| ロール | テンプレート | 目的 | フェーズ |
|--------|------------|------|---------|
| **Scout** | `templates/agent-roles/scout.md` | 偵察と攻撃対象領域のマッピング | フェーズ0-1、ソースコード発見 |
| **Analyzer** | `templates/agent-roles/analyzer.md` | カナリア/ウィットネスペイロードによる脆弱性発見 | フェーズ2-5分析 |
| **Exploiter** | `templates/agent-roles/exploiter.md` | 証拠による悪用の証明 | フェーズ4悪用 |
| **Reporter** | `templates/agent-roles/reporter.md` | 品質レビューと最終審査 | フェーズ遷移、レポート後 |
### パイプラインの動作方法
フェーズ4(最も影響の大きいテスト)は、脆弱性クラスごとに2段階のパイプラインを使用します:```
┌──────────────────────────────────────────────────────────────┐
│ Pipeline 1: XSS │
│ │
│ Analyzer (75 turns) Exploiter (75 turns) │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Discover endpoints │ │ Load Analyzer queue │ │
│ │ Send canary payloads│─────▶│ Attempt exploitation│ │
│ │ Build exploit queue │ gate │ Prove impact │ │
│ │ Save deliverable │ │ Log findings │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ ▲ │
│ validate_exploitation_queue() │
└──────────────────────────────────────────────────────────────┘
3つのパイプライン(XSS、インジェクション、SSRF/SSTI)が並行して実行されます。AnalyzerとExploiterの間にある検証チェックポイントにより、適切に形成された悪用キューだけが進行します。
各ロールには、プロンプトを通じて明示的なツール制限が適用されます。
log_finding() を呼び出したり、攻撃ペイロードを送信したりできませんCTFチャレンジや小さなアプリ(3つ未満の入力エンドポイント)の場合、フォールバックとしてレガシーモノリシックパイプラインが利用可能です。
git clone https://github.com/bhavsec/autopentest-ai.git cd autopentest-ai
cd server && uv sync && cd ..
make setup
以上です。27個のセキュリティツールがすべてDockerコンテナ内にインストールされ、使用可能になりました。
### インストールの確認```bash
# Check all tools are installed
make verify-tools
# Expected output:
# [+] nuclei: installed
# [+] httpx: installed
# [+] katana: installed
# ... (27 tools total)
claude
次に、Claudeにテスト内容を伝えてください:```
Run a full WSTG assessment against https://target.example.com
Claude Codeを起動し、ターゲットを指定します:``` Run a full pentest against https://app.example.com
Credentials: admin / P@ssw0rd123
Claudeは不足情報(認証情報など)を尋ね、7フェーズのワークフローを開始します。
### Option B: 構成駆動モード (Recommended)
反復可能で一貫性のある評価のためにYAML設定ファイルを作成します:```yaml
# configs/my-target.yaml
target:
url: https://app.example.com
scope:
- app.example.com
- api.example.com
exclude:
- cdn.example.com
authentication:
login_type: form
login_url: https://app.example.com/login
credentials:
username: [email protected]
password: secret123
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Sign In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "Do not test logout"
type: path
url_path: "/logout"
focus:
- description: "Prioritize API endpoints"
type: path
url_path: "/api"
reporting:
tester_name: "Security Team"
次にClaude Codeで:``` Load the config from configs/my-target.yaml and run the pentest
### Option C: ターゲットテスト
特定のエンドポイントに対して特定のWSTGテストを実行します:```
Run WSTG-INPV-05 (SQL Injection) against https://app.example.com/search?q=
```` Test https://app.example.com for CORS misconfiguration (WSTG-CONF-13)
## 使用方法
[](https://asciinema.org/a/90SDp2Xk8SSFM5VQkI0nTU5HU)```
Run all authentication tests (WSTG-ATHN) against https://app.example.com
Resume engagement pentest-2026-02-11-myapp
---
## テストフェーズ
### フェーズ0: アプリケーションの発見とマッピング
重要な基盤フェーズです。Claudeは自律的に次のことを行います:
1. **プリフライトチェック** — ターゲットの到達可能性を確認し、リダイレクトとクロスドメイン認証を検出
2. **10以上のバックグラウンドツールを並行起動** (katana, ffuf, nuclei, whatweb, gau, nmap, feroxbuster, wapiti, httpx)
3. **再帰的クローリング** — リンクを深さ2-3まで追跡し、HTML/JSを解析してエンドポイントを抽出
4. **ディレクトリブルートフォース** — 共通パス + テクノロジ固有のワードリスト
5. **ツール結果の取り込み** — すべてのバックグラウンドツールの出力を読み込み、統合エンドポイントマップにマージ
6. **構造化されたエンドポイントインベントリを構築** — パラメータ、認証要件、優先順位を含む
**出力:** ドメインごとに整理された完全なエンドポイントマップ。系統的なテストの準備が整いました。
### フェーズ1-2: 偵察と構成
- サーバーフィンガープリンティング、テクノロジ検出、メタデータレビュー
- セキュリティヘッダー分析 (HSTS, CSP, CORS, X-Frame-Options)
- TLS構成テスト、管理インターフェースの発見
- HTTPメソッドテスト、ファイル拡張子の処理
### フェーズ3: 認証、認可、セッション管理
- **ロール/権限ラティス**をテスト前に構築 (ガード、ミドルウェア、バイパステストをマッピング)
- エンドポイントごとに複数の代替IDを使用したIDORテスト
- すべての状態変更エンドポイントに対するCSRFテスト
- セッション固定化、ハイジャック、トークン分析
- JWT脆弱性テスト (該当する場合)
- OAuth/OIDC脆弱性テスト (該当する場合)
### フェーズ4: 入力検証 (最も影響が大きい)
3つの独立した2段階パイプラインが並行して実行され、それぞれがAnalyzer→Exploiterの役割分割を使用します:
| パイプライン | 脆弱性クラス | ツール | テクニックガイド |
|----------|----------------------|-------|-----------------|
| XSSパイプライン | リフレクトXSS、ストアドXSS、DOM XSS | dalfox, Playwright | XSS, DOM |
| インジェクションパイプライン | SQLインジェクション、コマンドインジェクション、NoSQLインジェクション | sqlmap, commix, nosqli | SQLI, CMDI, NOSQLI |
| SSRF/SSTIパイプライン | SSRF、SSTI、パストラバーサル | sstimap, ssrfmap | SSRF, SSTI, PTRAV |
各パイプライン: **Analyzer** (発見→分析→悪用キュー構築) → 検証チェックポイント → **Exploiter** (悪用試行→影響証明→発見の記録)。WAF回避インテリジェンスはすべてのパイプラインで共有されます。
### フェーズ5: エラーハンドリング、暗号、ビジネスロジック、クライアントサイド、API
- スタックトレースとエラーメッセージの開示
- testssl.sh を使用したTLS/SSLテスト
- ビジネスロジックバイパス (ワークフロー回避、リクエスト伪造)
- クライアントサイドテスト (クリックジャッキング、オープンリダイレクト、DOM操作)
- GraphQLおよびREST APIテスト
- すべての発見にわたる脆弱性連鎖分析
### フェーズ6: 報告
- カバレッジ検証 (テストカバレッジ + ツールカバレッジ)
- 発見の重複排除と深刻度の調整
- エグゼクティブサマリー、発見、カバレッジマトリックスを含むMarkdownレポートの生成
### フェーズ7: 最終審査
ゼロコンテキストのエージェントがエンゲージメント全体をコールドレビューします — テストの判断や困難についての知識はありません。検証内容は以下の通りです:
- **カバレッジの整合性** — 形だけのテスト、欠落しているエンドポイント
- **N/Aカスケード検出** — 「該当なし」のマークが過剰なカテゴリ
- **発見の品質** — エビデンスの完全性、深刻度の一貫性、連鎖の機会
- **ツールの活用** — 実行されたが出力がレビューされていないツール、怠惰なスキップ理由
- **見逃された攻撃対象領域** — テストされていないエンドポイント、パラメータ、ドメイン
評決 (PASS/CONDITIONAL_PASS/FAIL) は、レポートが配信される前に特定の是正措置をトリガーします。
---
## セキュリティツール
### 発見と偵察 (フェーズ0)
| ツール | 目的 | 主要フラグ |
|------|---------|-----------|
| **katana** | JSレンダリング対応のWebクローラ | `-jc` (JavaScriptクローリング用) |
| **httpx** | HTTPプロービング、テクノロジ検出 | `-tech-detect -status-code -title` |
| **ffuf** | ディレクトリ/パラメータファジング | `-w wordlist -mc all -fc 404` |
| **feroxbuster** | 再帰的ディレクトリ列挙 | `--smart --auto-tune` |
| **nuclei** | テンプレートベースの脆弱性スキャナ | `-t cves/ -t misconfigurations/` |
| **nikto** | Webサーバーの設定ミス | `-Tuning 1234567890` |
| **whatweb** | テクノロジフィンガープリント | `--aggression 3` |
| **nmap** | ポートおよびサービススキャン | `-sV -sC --top-ports 1000` |
| **gau** | 過去のURL発見 | `--blacklist png,jpg,gif` |
| **subfinder** | サブドメイン列挙 | `-silent -all` |
### インジェクションテスト (フェーズ4)
| ツール | 目的 | 主要フラグ |
|------|---------|-----------|
| **sqlmap** | SQLインジェクション (全技術) | `--batch --risk 3 --level 5` |
| **dalfox** | XSSスキャンと悪用 | `--skip-bav --deep-domxss` |
| **commix** | コマンドインジェクション | `--batch --all` |
| **sstimap** | サーバーサイドテンプレートインジェクション | `-u <url>` |
| **ssrfmap** | SSRF悪用 | `-r request.txt` |
| **nosqli** | NoSQLインジェクション | `-u <url>` |
| **crlfuzz** | CRLFインジェクション / HTTPスプリッティング | `-u <url>` |
| **smuggler** | HTTPリクエストスマグリング | `-u <url>` |
### 認証とセッション (フェーズ3)
| ツール | 目的 | 主要フラグ |
|------|---------|-----------|
| **hydra** | 認証情報のブルートフォース | `-L users.txt -P pass.txt` |
| **jwt_tool** | JWTトークンの分析と悪用 | `-t <token> -M at` |
### 暗号とAPI (フェーズ5)
| ツール | 目的 | 主要フラグ |
|------|---------|-----------|
| **testssl.sh** | TLS/SSL構成テスト | `--severity HIGH --sneaky` |
| **graphql-cop** | GraphQLセキュリティテスト | `-t <url>` |
| **websocat** | WebSocketテスト | `ws://<url>` |
### インフラストラクチャ (フェーズ2)
| ツール | 目的 |
|------|---------|
| **corscanner** | CORS設定ミススキャン |
| **dnsreaper** | サブドメインテイクオーバー検出 |
### ブラウザ自動化
| ツール | 目的 |
|------|---------|
| **Playwright** | DOM XSSの証明、クリックジャッキング、JSレンダリングログイン、クライアントサイドストレージ検査 |
---
## WSTGナレッジベース
12のOWASPカテゴリにわたる109のテストケース。各テストケースにはCLI固有の手順が含まれています:
| コード | カテゴリ | テスト数 | 例 |
|------|----------|:-----:|---------|
| **INFO** | 情報収集 | 10 | 検索エンジン発見、サーバーフィンガープリンティング、メタデータレビュー |
| **CONF** | 構成とデプロイ | 14 | セキュリティヘッダー、CORS、CSP、HSTS、管理インターフェース |
| **IDNT** | アイデンティティ管理 | 5 | ロール定義、登録、アカウント列挙 |
| **ATHN** | 認証 | 11 | デフォルト認証情報、ロックアウト、認証バイパス、MFA、パスワードポリシー |
| **ATHZ** | 認可 | 5 | ディレクトリトラバーサル、認証バイパス、権限昇格、IDOR |
| **SESS** | セッション管理 | 11 | Cookie属性、CSRF、セッション固定化/ハイジャック、JWT |
| **INPV** | 入力検証 | 20 | XSS、SQLi、CMDi、SSTI、SSRF、パストラバーサル、XXE、LDAP |
| **ERRH** | エラーハンドリング | 2 | エラーメッセージ、スタックトレース |
| **CRYP** | 暗号 | 4 | TLS設定、パディングオラクル、弱い暗号化 |
| **BUSL** | ビジネスロジック | 10 | ワークフローバイパス、リクエスト伪造、ファイルアップロード、レート制限 |
| **CLNT** | クライアントサイド | 14 | DOM XSS、クリックジャッキング、オープンリダイレクト、WebSocket、ストレージ |
| **APIT** | APIテスト | 3 | GraphQL、REST、SOAP |
各テストファイルには以下が含まれます:
- ステップバイステップのCLI手順 (curlコマンド、ツール呼び出し)
- バイパスレベル別に整理されたペイロード (基本、中級、上級)
- 深刻度評価ルーブリック付き検出基準
- 参考文献付きの是正ガイダンス
---
## PortSwiggerテクニックガイド
31の攻撃テクニックリファレンスガイド。出典は [PortSwigger Web Security Academy](https://portswigger.net/web-security)。実際のペネトレーションテスト中に直接使用できるよう、脆弱性クラスごとに整理されています。
### 含まれるもの
| コード | カテゴリ | WSTGマッピング | 主な内容 |
|------|----------|-------------|-------------|
| **SQLI** | SQLインジェクション | INPV-05 | UNION/ブラインド/エラー/時間ベース/OOB手法、データベース固有のチートシート (Oracle, MySQL, PostgreSQL, MSSQL)、WAFバイパス |
| **XSS** | クロスサイトスクリプティング | INPV-01, INPV-02, CLNT-01 | リフレクト/ストアド/DOMコンテキスト、タグおよびイベントハンドラペイロード、CSPバイパス、フィルター回避 |
| **CMDI** | OSコマンドインジェクション | INPV-12 | 区切り文字、ブラインド手法 (時間遅延、OOB)、OS固有のペイロード |
| **SSTI** | サーバーサイドテンプレートインジェクション | INPV-18 | Jinja2/Twig/Freemarker/Velocity/ERBの検出と悪用、サンドボックスエスケープ |
| **SSRF** | サーバーサイドリクエストフォージェリ | INPV-19 | URLスキームのトリック、IP難読化、DNSリバインディング、クラウドメタデータ、フィルターバイパス |
| **PTRAV** | パストラバーサル | INPV-04 | エンコーディングのバリエーション、ヌルバイトインジェクション、ラッパーバイパス |
| **XXE** | XML外部エンティティ | INPV-07 | ファイル取得、XXE経由のSSRF、OOB付きブラインドXXE、パラメータエンティティ |
| **AUTHN** | 認証 | ATHN-01 から ATHN-07 | ブルートフォース、2FAバイパス、パスワードリセットポイズニング、クレデンシャルスタッフィング |
| **AUTHZ** | アクセス制御 | ATHZ-01 から ATHZ-04 | IDOR、権限昇格、水平/垂直バイパス、Refererベースの制御 |
| **JWT** | JSON Webトークン | SESS-10 | アルゴリズム混乱 (none/HS256→RS256)、kidインジェクション、JWK/JKU悪用 |
| **OAUTH** | OAuth 2.0 | ATHZ-05 | 認可コード窃取、オープンリダイレクト、スコープアップグレード、OAuthフロー上のCSRF |
| **CSRF** | クロスサイトリクエストフォージェリ | SESS-05 | トークンバイパス、SameSiteバイパス、リファラ検証バイパス |
| **SMUGGLE** | HTTPリクエストスマグリング | INPV-15 | CL.TE、TE.CL、TE.TE、HTTP/2ダウングレード、リクエストトンネリング |
| **DOM** | DOMベースの脆弱性 | CLNT-01 | ソース/シンク、DOMクロバリング、プロトタイプ汚染ガジェット |
| **CORS** | クロスオリジンリソース共有 | CONF-13, CLNT-07 | オリジンリフレクション、nullオリジン、サブドメイン信頼の悪用 |
| **NOSQLI** | NoSQLインジェクション | INPV-05 | MongoDB演算子インジェクション、JavaScriptインジェクション、ブラインド抽出 |
| **GRAPHQL** | GraphQL | APIT-01 | イントロスペクション、フィールドサジェスト、バッチ攻撃、認可バイパス |
| **RACE** | 競合状態 | BUSL-04 | 制限超過、TOCTOU、単一エンドポイント競合、最終フレーム同期 |
| **UPLOAD** | ファイルアップロード | BUSL-08, BUSL-09 | 拡張子バイパス、Content-Type操作、ウェブシェル、ポリグロットファイル |
| **HOST** | ホストヘッダーインジェクション | INPV-17 | パスワードリセットポイズニング、キャッシュポイズニング、ルーティングベースのSSRF |
さらに11件: CLICK, WS, CACHEPOIS, CACHEDEC, DESER, INFO, BUSL, PROTO, API, LLM, SKILLS.
### 使用方法
テクニックガイドは、`get_technique_guide()` MCPツールを介してすべてのテストフェーズに統合されています:```
Phase 2 → CORS guide for CONF-13 testing
Phase 3 → AUTHN, AUTHZ, CSRF, JWT, OAUTH guides for auth/session testing
Phase 4 → SQLI, XSS, CMDI, SSTI, SSRF, PTRAV, XXE guides for input validation
Phase 5 → DOM, CLICK, GRAPHQL, RACE, UPLOAD guides for client-side & business logic
各並列テストエージェントは、テスト実行前に自動的に関連するテクニックガイドを読み込み、以下を提供します:
ナレッジベースに新しいテクニックガイドを追加する手順については、docs/adding-knowledge-base-resources.mdを参照してください。
AutoPentestは、浅いテストを防ぐ多層QAシステムを備えています:
各フェーズ後、phase_gate_check() が以下を検証します:
ブロックされたフェーズは、すべての問題が解決されるまで進行できません。
各フェーズ遷移時に生成されるサブエージェントで、以下を行います:
完了した業務を新たな視点でレビューするゼロコンテキストエージェント:
脆弱性を「悪用不可」とマークするには、努力の証明が必要:
| 脆弱性クラス | 最小手法数 | 最小バイパス試行回数 |
|---|---|---|
| XSS | 3 | 5 |
| SQL Injection | 3 | 5 |
| Command Injection | 3 | 5 |
| SSTI | 2 | 3 |
| SSRF | 3 | 5 |
| Path Traversal | 3 | 5 |
所見を記録する前に、証拠要件が検証されます:
すべてのMCPツール呼び出しは、完全な引数、結果、実行時間とともに自動的に engagements/<eid>/logs.txt に記録されます。別のターミナルで tail -f logs.txt を実行すると、すべてのエージェントアクティビティをリアルタイムで監視できます。自動ツールラッパーによる100%カバレッジ — 手動計装は不要。
フェーズゲートは呼び出し間隔を最低60秒(CTFモードでは15秒)に強制し、早期のフェーズ完了を防止します。ゲート間の作業検証では、連続するゲート間で3未満の作業イベントがある場合に警告します。
AutoPentestには、XBOW Validation Benchmarksとの統合が含まれています — AIペンテストエージェントのベンチマーキングの業界標準として使用される104のCTF形式のDockerチャレンジです。
| エージェント | スコア | 出典 |
|---|---|---|
| Shannon | 96.2% | KeygraphHQ (2024) |
| PentestGPT | 86.5% | USENIX Sec 2024 |
cd benchmarks/xbow && make setup
make solve ID=XBEN-001-24
make solve ID=XBEN-001-24 RAW=1
make solve-tag TAG=sqli
make solve-all
make solve-all RAW=1
make score
make compare
ソルバーには2つのモードがあります:
- **autopentest** (デフォルト): Claude Codeをプロジェクトルートから実行し、`.mcp.json`(68以上のツールを備えたMCPサーバー)と`CLAUDE.md`(ペンテスト手法)を読み込みます。AutoPentestの完全な能力を測定します。
- **raw** (`RAW=1`): MCPサーバーや手法なしでベアのClaude Codeを実行します。AutoPentestが生のLLM能力に追加する価値を測定するためのベースラインです。
各チャレンジはDocker Composeアプリであり、ビルド時にフラグが注入されます。Claudeの出力からのフラグ抽出で合格/不合格が決まります。結果はチャレンジごと、タグごと、難易度レベルごとにスコアリングされます。
### CTFモード
CTFチャレンジや小規模アプリケーションでは、CTFモードを有効にすることで品質ゲートを緩和できます:```yaml
mode: ctf
target:
url: https://target.com
CTFモードはフェーズゲートタイミングを短縮し(60秒から15秒)、QAレビューア要件をスキップし、完了閾値を半分にします。ただし、発見の品質と証拠の基準は維持します。
PortSwiggerのGin & Juice Shop(意図的に脆弱なアプリケーション)に対するペネトレーションテストからの完全なレポート例がリポジトリに含まれています:
このレポートは、実際のターゲットに対するAutoPentestの出力を示しており、すべての重要度レベルにわたる23件の発見があります:
| 重要度 | 件数 | 例 |
|---|---|---|
| 致命的 | 2 | UNIONベースのSQLインジェクションによる完全なデータ抽出、X-Original-URLヘッダーを使用したアクセス制御バイパス |
| 高 | 5 | JS文字列エスケープバイパスによる反射型XSS、注文詳細のIDOR、ローカルファイル読み取りを伴うXXE、プロトタイプ汚染によるDOM XSS |
| 中 | 6 | セキュリティヘッダーの欠如、アカウントロックアウトなし、CSPの欠如、CRLFインジェクション、DOMベースのオープンリダイレクト |
| 低 | 5 | インフラ情報漏洩、サポート終了のAngularJS、安全でないALBクッキー、脆弱なTLS設定 |
| 情報 | 5 | 主要発見の統合重複と二次証拠 |
### サンプル検出結果 (SQLインジェクション)
レポートより — 完全なエクスプロイト証拠を伴う重大なSQLインジェクションの検出結果:```
FINDING-017: SQL Injection in /catalog category parameter — Full Data Extraction
Severity: Critical
WSTG Reference: WSTG-INPV-05
The category parameter is vulnerable to UNION-based SQL injection.
The attacker can:
1. Inject a single quote to cause a 500 error (confirming injection)
2. Use UNION SELECT with 8 columns to extract arbitrary data
3. Enumerate tables: PRODUCTS, TRACKING, USERS
4. Extract credentials from the USERS table
Evidence (reproducible curl command):
curl -sk "https://ginandjuice.shop/catalog?category='+UNION+SELECT+1,USERNAME,PASSWORD,
1,1,USERNAME,1,USERNAME+FROM+USERS+LIMIT+10--"
各発見には、再現可能なcurlコマンド、完全なリクエスト/レスポンスの証拠、そして実行可能な修復ガイダンスが含まれています。
設定駆動のペネトレーションテストは、対話型の質問を省略し、一貫性を確保します:```yaml target: url: https://app.example.com scope: [app.example.com, api.example.com]
authentication: login_type: sso # form | sso | api | manual | none login_url: https://app.example.com/login credentials: username: testuser password: secret123 sso: provider: keycloak # keycloak | auth0 | okta | azure_ad auth_domain: auth.example.com realm: myrealm client_id: my-app
rules: avoid: - { type: path, url_path: "/logout", description: "Skip logout" } - { type: endpoint, method: DELETE, url_path: "/api/admin/*", description: "No destructive admin ops" } focus: - { type: path, url_path: "/api", description: "Prioritize API" }
reporting: tester_name: "Security Team"
### MCPサーバー設定
`.mcp.json`ファイルは2つのMCPサーバーを登録します:```json
{
"mcpServers": {
"wstg-pentest": {
"command": "uv",
"args": ["--directory", "./server", "run", "server.py"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}
Burp Suite Professional を介したパッシブトラフィック監視のため:
0.0.0.0:8080) でプロキシを有効にします。host.docker.internal:8080 を経由してトラフィックをルーティングします。AutoPentest は、複数のドメインを持つアプリケーション(例:SPA フロントエンド + API バックエンド + SSO プロバイダ)をファーストクラスでサポートしています。
Phase 0 では、AutoPentest はログインリダイレクトを追跡することでクロスドメイン認証を検出します。``` app.example.com → redirects to → auth.example.com/login → after login → app.example.com/callback
すべてのドメインは、タイプ(app、auth_provider、api、cdn)と共に自動的にスコープに登録されます。
### ドメインごとのテスト
すべてのWSTGテストは、プライマリだけでなく、ドメインごとに評価されます:
- 探索ツール(katana、ffuf、nuclei)は**すべての**ドメインに対して実行されます
- 入力検証ツール(sqlmap、dalfox)は、サーバーサイド処理を行う**すべての**ドメイン上のエンドポイントを対象とします
- テストは、**どの**ドメインもテスト対象の機能を持たない場合にのみ「該当なし」となります
### クロスドメイン認証
サポートされているSSOプロトコル:
- **OAuth 2.0 / OIDC**(Authorization Code、PKCE、Password Grant、Client Credentials)
- **SAML**(SP-initiated flow)
- **Keycloak**、**Auth0**、**Okta**、**Azure AD**
- **Custom SSO**(リダイレクトチェーン追跡とクッキージャー)
認証昇格手順(6レベル)により、複雑な認証フローでもテストを続行できます。
---
## クラッシュリカバリ
AutoPentestは中断に耐えるように設計されています:
### 自動チェックポイント
- フェーズゲートはPASS時にチェックポイントを自動保存します
- `git_checkpoint()`はエンゲージメントワークスペースのgitスナップショットを作成します
- 追記専用ログ(`findings.md`、`progress.log`)はクラッシュ後も保持されます
### resume-prompt.mdによる自動再開(推奨)
すべてのチェックポイントとフェーズゲートは、`engagements/<eid>/resume-prompt.md`を自動生成します。これは、新しいセッションに必要なすべてを含む、完全で自己完結型のプロンプトです:
- ターゲットURL、認証資格情報、スコープドメイン
- 現在のフェーズと残っている特定のテスト(フェーズ内の精度)
- クッキージャーの状態と再認証手順
- 回避/集中ルールとエンドポイントマップ参照
**中断後に再開するには:**
1. 新しいClaude Codeセッションを開く
2. `engagements/<eid>/resume-prompt.md`の内容を貼り付ける
3. Claudeは中断したところから正確に再開します — 手動でのコンテキスト提供は不要
### チェックポイントからの再開(代替方法)```
Resume engagement pentest-2026-02-11-myapp
これにより復元されます:
いつでも保存できます:``` Save a checkpoint before starting Phase 4 exploitation
### 失敗時のロールバック
フェーズで悪い結果が生じた場合、前のチェックポイントにロールバックします:```
Roll back the engagement to the last checkpoint
autopentest-ai/ ├── CLAUDE.md # Master pentest workflow (drives Claude Code) ├── .mcp.json # MCP server configuration ├── Dockerfile # Multi-stage Docker build (27 tools) ├── docker-compose.yml # Docker Compose alternative ├── Makefile # setup, start, stop, verify-tools, shell │ ├── server/ │ ├── server.py # FastMCP server (68+ MCP tools) │ ├── task_tree.py # Hierarchical task tree (6 MCP tools) │ ├── tool_parsers.py # Tool output parsing (2 MCP tools, 13 parsers) │ ├── endpoint_priority.py # Endpoint risk prioritization (2 MCP tools) │ ├── waf_evasion.py # Adaptive WAF evasion (3 MCP tools, 12 vendors) │ ├── knowledge_graph.py # Cross-phase knowledge graph (5 MCP tools) │ ├── tool_verification.py # CLI tool results verification (1 MCP tool, 10 validators) │ ├── context_compression.py # Progressive context compression (2 MCP tools) │ └── pyproject.toml # Python dependencies │ ├── knowledge-base/ │ ├── web-security-testing-guide/ # OWASP WSTG knowledge base (109 test procedures) │ │ ├── 01-information-gathering/ # 10 tests (WSTG-INFO-01 → 10) │ │ ├── 02-configuration/ # 14 tests (WSTG-CONF-01 → 14) │ │ ├── 03-identity-management/ # 5 tests (WSTG-IDNT-01 → 05) │ │ ├── 04-authentication/ # 11 tests (WSTG-ATHN-01 → 11) │ │ ├── 05-authorization/ # 5 tests (WSTG-ATHZ-01 → 05) │ │ ├── 06-session-management/ # 11 tests (WSTG-SESS-01 → 11) │ │ ├── 07-input-validation/ # 20 tests (WSTG-INPV-01 → 20) │ │ ├── 08-error-handling/ # 2 tests (WSTG-ERRH-01 → 02) │ │ ├── 09-cryptography/ # 4 tests (WSTG-CRYP-01 → 04) │ │ ├── 10-business-logic/ # 10 tests (WSTG-BUSL-01 → 10) │ │ ├── 11-client-side/ # 14 tests (WSTG-CLNT-01 → 14) │ │ └── 12-api-testing/ # 3 tests (WSTG-APIT-01 → 03) │ └── portswigger-academy/ # 31 PortSwigger attack technique guides │ ├── sql-injection.md # UNION, blind, error-based, OOB, WAF bypass │ ├── cross-site-scripting.md # Reflected, stored, DOM, CSP bypass, filter evasion │ ├── ssrf.md # URL schemes, cloud metadata, DNS rebinding │ ├── ssti.md # Jinja2, Twig, Freemarker sandbox escapes │ ├── jwt.md # Algorithm confusion, kid injection, JWK exploitation │ ├── oauth.md # Auth code theft, redirect exploitation, scope upgrade │ └── ... (31 total) # One per vulnerability class │ ├── templates/ # Testing guides and procedures │ ├── input-validation-guide.md # Phase 4 step-by-step procedures │ ├── testing-strategies.md # Test matrices, chaining, parallel strategy │ ├── cli-tools-guide.md # Tool setup and Docker management │ ├── tools.md # Per-tool command reference │ ├── quality-gates.md # Phase quality checklists and anti-patterns │ ├── cross-domain-auth-guide.md # SSO/OIDC/SAML procedures │ ├── source-code-analysis.md # Security-focused code review template │ ├── pipelined-testing.md # Phase 4 pipelined exploitation strategy │ ├── agent-roles/ # Role-specialized subagent templates │ │ ├── README.md # Role index and selection guide │ │ ├── scout.md # Reconnaissance role (Phase 0-1) │ │ ├── analyzer.md # Vulnerability discovery role (Phase 2-5) │ │ ├── exploiter.md # Exploitation proof role (Phase 4) │ │ └── reporter.md # QA review + Final Judge role │ ├── shared/ │ │ ├── honesty-framework.md # Anti-hallucination guardrails │ │ ├── exploit-classification.md # Three-tier finding classification │ │ ├── reproducibility.md # Evidence format requirements │ │ └── scope-rules.md # Avoid/focus rule templates │ └── wordlists/ # Tech-specific fuzzing wordlists │ ├── benchmarks/ │ └── xbow/ # XBOW benchmark suite (104 CTF challenges) │ ├── runner.py # Challenge orchestration │ ├── solver.py # Automated solver (Claude Code CLI) │ ├── Makefile # solve, solve-all, score, compare │ └── results/ # Run reports │ ├── docs/ │ ├── ROADMAP.md # Competitive analysis + improvement roadmap │ └── adding-knowledge-base-resources.md # Guide for adding new technique guides │ ├── configs/ │ ├── example-config.yaml # Example engagement configuration │ └── config-schema.md # YAML schema documentation │ ├── scripts/ │ ├── install-tools.sh # Docker build + container start │ ├── browser-auth.py # Headless Chromium auth (JS-rendered logins) │ ├── pkce-auth.py # OAuth 2.0 PKCE flow automation │ └── status.sh # Engagement status dashboard │ └── engagements/ # Runtime output (git-ignored) └── / ├── logs.txt # Live engagement log (tail -f to watch) ├── findings.md # Append-only findings log ├── progress.log # Timestamped event log ├── resume-prompt.md # Auto-resume prompt (paste into new session) ├── report.md # Final pentest report ├── cookies.txt # Cross-domain cookie jar └── tool-output/ # Raw CLI tool outputs
---
## 必要条件
| 必要条件 | バージョン | 備考 |
|-------------|---------|-------|
| Docker | 20.10+ | macOS/Windows上のDocker Desktop |
| Claude Code | 最新 | `npm install -g @anthropic-ai/claude-code` |
| uv | 0.1+ | `curl -LsSf https://astral.sh/uv/install.sh | sh` |
| Node.js | 18+ | Playwright MCPサーバー用 |
| Python | 3.10+ | uvで管理(手動インストール不要) |
| Burp Suite Pro | 最新 | **オプション** — パッシブトラフィック監視用 |
**対応プラットフォーム:** macOS (Apple Silicon & Intel), Linux (x86_64 & ARM64)
---
## FAQ
**Q: これは人間のペネトレーションテスターを置き換えるものですか?**
いいえ。AutoPentestはペンテストの体系的な方法論に基づく部分を自動化します。カバレッジ(見逃しの防止)と一貫性(すべてのテストが同じ手順に従う)に優れています。しかし、複雑なビジネスロジック、創造的な攻撃チェーン、コンテキストに依存したリスク評価には、依然として人間の専門知識が有益です。力を増幅するツールと考えてください。
**Q: 完全な評価にはどのくらい時間がかかりますか?**
アプリケーションの規模と複雑さによります。一般的な中規模のWebアプリ(50~100エンドポイント)は数時間かかります。SSOを使用するマルチドメインアプリケーションはさらに時間がかかります。パイプライン化されたフェーズ4アーキテクチャにより、最も時間のかかるテストが並列化されます。
**Q: Burp Suiteなしで実行できますか?**
はい。Burp Suiteはオプションで、パッシブトラフィック監視にのみ使用されます。すべてのHTTPリクエストは`docker exec curl`を経由し、すべてのセキュリティツールはDockerコンテナ内で実行されます。BurpがないとBurpのプロキシヒストリでトラフィックを確認できなくなりますが、すべてのテスト機能は動作します。
**Q: PortSwiggerのテクニックガイドとは何ですか?**
検出、悪用手法、ペイロード、チートシート、WAFバイパスパターンを網羅した31の攻撃リファレンスガイドです。PortSwigger Web Security Academyを情報源としています。テスト中、エージェントは関連するガイド(例:SQLインジェクションをテストする際のSQLiガイド)を自動的に読み込み、包括的な手法とペイロードのリファレンスとして活用します。独自のガイドを追加するには[`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/main/docs/adding-knowledge-base-resources.md)を参照してください。
**Q: カスタムワードリストやペイロードを追加するにはどうすればいいですか?**
ワードリストを`templates/wordlists/`に配置すると、ボリュームマウントを介してDockerコンテナ内で利用可能になります。`knowledge-base/`内のWSTGテストファイルにも追加のペイロードをカスタマイズできます。新しい攻撃手法ガイドを追加するには、[`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/main/docs/adding-knowledge-base-resources.md)の手順に従ってください。
**Q: VPN経由のアプリケーションをテストできますか?**
はい。Dockerコンテナはホストのネットワークを継承するか(Linuxでは`--network host`)、または`host.docker.internal`を介してホストに到達します(macOS/Windows)。ホスト上でVPNが実行されている場合、コンテナはVPNで保護されたターゲットに到達できます。
**Q: ペンテストが中断された場合(クラッシュ、使用制限、タイムアウト)はどうなりますか?**
AutoPentestはすべてのチェックポイントで、続行に必要なすべてを含む`resume-prompt.md`ファイルを自動生成します。新しいClaude Codeセッションを開き、`engagements/<eid>/resume-prompt.md`の内容を貼り付けると、テストは中断した箇所から正確に再開されます(中間フェーズの進捗、資格情報、スコープ、残りのテストを含む)。
**Q: レート制限については?**
AutoPentestは3段階のエラー分類(一時的/レート制限/永続的)と自動バックオフを備えています。ターゲットがリクエストをレート制限した場合、ツールは自動的に速度を落とします。設定で回避ルールを設定して、特定のエンドポイントをスキップすることもできます。
**Q: エージェントの役割は何ですか?**
AutoPentestは汎用的なサブエージェントではなく、4つの専門的な役割(Scout、Analyzer、Exploiter、Reporter)を使用します。各役割には、焦点を絞ったツールガイダンス、制限付きツールリスト、アンチパターンを備えた専用のプロンプトテンプレートがあります。これにより、エージェントが偵察、分析、悪用、レポート作成を混同するのを防ぎ、集中力と障害の分離を改善します。完全な役割一覧については[`templates/agent-roles/README.md`](https://github.com/bhavsec/autopentest-ai/blob/main/templates/agent-roles/README.md)を参照してください。
**Q: WAF回避はどのように機能しますか?**
ペイロードがブロックされた場合(403、ブロックページ)、AutoPentestは応答特性から自動的にWAFベンダーを特定し、複雑度レベルごとに整理されたベンダー固有のバイパスペイロードを読み込みます。12のWAFベンダーをサポートしています(Cloudflare、AWS WAF、Akamai、Imperva、ModSecurity、F5など)。WAFインテリジェンスはデリバラブルシステムを介してすべてのエージェント間で共有されます。
**Q: 反事実分析とは何ですか?**
最初の分析パスで脆弱性が見つかった後、AutoPentestは既知のすべての脆弱性が修正されたと仮定する2番目のAnalyzerを起動できます。これにより、エージェントは異なる攻撃ベクトル(異なるエンドポイント、パラメータ、インジェクションコンテキスト、ロジック欠陥)を探すことを強いられます。結果は既存の悪用キューにマージされ、自動的に重複排除されます。この手法は学術研究(PenHealアブレーション研究)に基づいており、脆弱性カバレッジが+71%向上することが示されています。
**Q: 結果の検証はどのように行われますか?**
CLIツール(nmap、nuclei、sqlmapなど)が空または不審な出力を生成した場合、`verify_tool_result()`ツールが一般的な問題(プロキシエラー、許可拒否、誤ったフラグ)を検出し、修正されたコマンドを提案します。これにより、エージェントが壊れたツール実行を「完了」として黙ってカウントするのを防ぎます。これは自動ペンテストにおける一般的な失敗モードです。
**Q: 脆弱性の連鎖はどのように機能しますか?**
知識グラフはテスト中に発見されたエンティティ(エンドポイント、パラメータ、発見事項、クッキー、ドメイン)と関係を追跡します。フェーズ4の後、`find_chains()`はBFSを使用してマルチホップの攻撃経路を発見し、7つの定義済み連鎖パターン(例:XSS + CSP欠如、SSRF + クラウドメタデータ、IDOR + 管理者ロール)をチェックします。影響を増大させる連鎖は、自動的に深刻度を引き上げます。
---
## 免責事項
**このツールは許可されたセキュリティテストのためのみに使用することを意図しています。** AutoPentestは、テストする明示的な許可を得たアプリケーションに対してのみ使用してください。許可なくコンピュータシステムにアクセスすることは違法です。著者は本ツールの誤用について一切の責任を負いません。
常に以下を確認してください:
- アプリケーション所有者からの書面による許可
- テスト可能な範囲と禁止事項が明確に定義されたスコープ
- テスト環境(本番環境とステージング環境)の理解
- 破壊的または機密性の高いエンドポイント向けの適切な回避ルールの設定
---
<p align="center">
<a href="https://modelcontextprotocol.io">Model Context Protocol</a> を使用して構築
</p>