
pentest-ai v1.2.0
すべての発見を実証するオープンソースのAIペンテスター。機械オラクルが各エクスプロイトを再実行し、検証済みのバグには、自分で再現できる証明カプセルが同梱されます。
pentest-ai
発見結果を証明するペンテストツール。オラクルなし、バッジなし。
ウェブサイト · インストール · 検証の理由 · ドキュメント · ベンチマーク · エージェント · Discord
⚠️ 攻撃用ツールです。許可を受けたテストのみに使用してください。 インストールすることで、AUP と 利用規約 に同意したものとみなされます。全文は 責任ある使用 ↓ を参照してください。
ptai は、すべてのエクスプロイトを再実行して確認する AI 駆動のペンテストツールです。偵察を実行し、ログインし、発見結果を多段階の攻撃経路につなげますが、結果を信頼するよう求めることはありません。TruffleHog が漏洩したシークレットをそれを使ってログインすることで確認するのと同様に、ptai はエクスプロイトを再実行することで Web 上の発見結果を確認します。発見結果は、マシンオラクルが N 回中 N 回再現するまで候補に留まり、初めて VERIFIED バッジを獲得します。サードパーティのスキャナ出力(nuclei、nikto、zap)も、オラクルが再検証するまで保留されます。スキャナのノイズこそが、チームがツールを無視するようになる原因です。そのため、レポートには ptai が証明できたものだけが載り、各 VERIFIED 発見結果には、自分で再生できるポータブルな証明カプセルが添付されます。
現在、14 の脆弱性クラスがオラクル検証済みです。意図的に脆弱性を持たせたテスト用ハニーポットでは、これらクラスにわたって 23 件の発見が 100% の適合率、誤検知ゼロで検証されます。標準の OWASP Juice Shop では、1 回のスキャンで 12 件が検証されます。あなたのラップトップで動作します。クラウド不要、テレメトリなし。
動作を見る
標準の OWASP Juice Shop をスキャン中: 1 回のスキャンで 12 件の発見がオラクル検証されます。発見結果は実際のものです。タイミングは見やすさのために調整されています。
2 分で中核となるアイデアを自分で再現できます。対象の用意は不要です:```bash pip install ptai && ptai demo
`ptai demo` は同梱の脆弱なアプリをスキャンして `4 findings, 4 oracle-VERIFIED` を報告し、証明カプセルから1件をライブでリプレイし(`replay 3/3`)、その後、同じルートを堅牢化した状態で実行し、`0 findings` を報告します。2回の実行で変わったのは修正だけなので、発見項目はツールが沈黙したからではなく、脆弱性の存在に応じて現れたり消えたりします。2分で完了し、APIキーも独自のターゲットも不要です。どのカプセルも `ptai replay` で自分で再証明できます。
> **正直な数字。** ハニーポット実行(14クラスで23件検証、精度100%、誤検知ゼロ)とJuice Shop実行(1回のスキャンで12件検証)は、個別の再現可能なベンチマークであり、実環境の誤検知率ではありません。オラクルゲートがもたらすのは精度であり、検出率ではありません。誤検知を取り除くだけで、検出を引き上げるわけではありません。Juice Shopはインターネット上で最も研究されている脆弱なアプリなので、生の件数は網羅性として、検証済み件数は精度のストーリーとして読んでください。自分たちで書いたバグを使うハニーポットこそが誠実なシグナルです。ハニーポットハーネス(`tests/honeypot/`)とクリーンアプリのゼロ誤検知ゲート(`tests/cleanapp/`)はリポジトリに同梱されているため、これらの主張はスクリーンショットではなく再現可能です。
## 1.1.0の新機能
検証カバレッジはほぼ倍増し、スキャン中にダウンさせたターゲットに対してゼロ件と報告することはなくなりました。すべてのVERIFIED発見項目は名前付きのマシンオラクルに由来し、LLMの主張ではありません。これはコードで強制されており、オラクルを名指しできない判定は拒否されます。このリリースの追加内容は次のとおりです:
- **10種類の新しいオラクルクラス(合計14種類)。** トラステッドヘッダーバイパス、JWT `alg:none`、ホストヘッダーポイズニング、XXE、型混乱、ストアドXSS、順次IDOR、マスアサインメント、非ブラインドSSRF、SQLiログインバイパスに加え、SQLi(ブール/ブラインド)、BOLA/IDOR、反射型XSS、オープンリダイレクト、パストラバーサルが加わります。各オラクルには安全なターゲットで失敗しなければならないコントロールがあり、脆弱でないアプリはバッジを獲得する代わりに棄権します。
- **検証の回復力。** 以前は、積極的なスイープが脆弱なシングルコンテナのターゲットをダウンさせると、その後、検証フェーズがすべてのオラクルに失敗し、有効でリプレイ可能なレシピがあるにもかかわらず0件と報告していました。現在は再証明の前にターゲットが再び応答するのを待つため、OWASP Juice Shopのスキャンが0件から12件のオラクル検証に改善しました。
- **スコープの安全性。** アクティブツール(sqlmap、dalfox)はエンゲージメントターゲットにホストロックされます。スキャンがページのコンテンツからスクレイピングしたサードパーティのURLを攻撃ツールに流すことはなくなりました。
- **ポータブルな証明カプセル** は、画面上で判定をVERIFIEDに切り替えるライブTUIである `ptai replay` と、証明された発見項目でのみビルドを失敗させるCIゲート(`--fail-on verified`)を備えています。
## 実際のターゲット: OWASP Juice Shop
標準のOWASP Juice Shopを対象にすると、ptai は**1回のスキャンで12件の発見項目をオラクル検証**します。保護されたエンドポイントで受け入れられるJWT `alg:none`、BOLAによるクロスユーザー読み取り、順次IDOR、型混乱のそれぞれが、主張ではなくマシンオラクルによって再証明されます。検証する以上に検出します(`/rest/user/login` でのSQLi認証バイパス、`/rest/products/search` でのUNION SQLi、`/etc/passwd` を開示するXXE、マスアサインメント、パスワードリセットバイパス)。レポートに到達するのは検証済みのサブセットだけです。APIキーなしでMCP経由のClaude Codeから操作するか、スタンドアロンで実行できます。
> **正直さの注記。** Juice Shopはインターネット上で最も文書化された脆弱なアプリなので、LLMとプローブ作成者の両方に有利なスタートがあります。新しいターゲットに対しては、検出率はキュレーションされたプローブライブラリがカバーする範囲(現在60+のウェブプローブ、各リリースで増加)にすぎません。LLMは結果を調整し推論しますが、プローブを置き換えるものではありません。`tests/honeypot/` にあるプライベートなハニーポットハーネスは、自分たちで書いたバグに対するカバレッジを測定し、CIで検証されます(`tests/honeypot/test_mcp_honeypot_e2e.py`)。その数字はJuice Shopよりも低く、それが重要なのです。私たちは両方を公開しています。完全な[Juice Shopベンチマーク vs ZAP / Nuclei / HexStrike](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md)を参照してください。
## インストール```bash
pip install ptai
方法 1: Claude Code から動かす(APIキー不要)
すでに Claude Pro / Max / Team を契約しているなら、そのサブスクリプションがそのまま LLM です。ptai を MCP サーバーとして組み込んでください:```bash claude mcp add pentest-ai -- ptai mcp
Claude Code を再起動し、次のように尋ねてください:
> *"staging.acme.com に対して認証付きペネトレーションテストを実行してください。ログインは /login にあり、パスワードは $APP_PASS にあります。"*
> **ネットワークに送信される内容**: ptai のツールとプローブはターゲットに対してローカルで実行されます。あなたのプロンプトと Claude Code が読み取るツール出力は、通常の Claude Code セッションと同様に Anthropic の API を経由します。エアギャップ経路が必要な場合は、Path 3 (Ollama / on-prem LLM) を参照してください。
Claude Code は以下の MCP ツール(現在47個)を介して ptai を操作します:
- `list_tools` / `run_tool`: 200以上のラップされたセキュリティツールを一覧表示・呼び出します
- `plan_tools` / `ensure_tools_installed`: エンゲージメントに必要な正規のツールリストを取得し、バッチインストールします
- `list_probes` / `run_probe`: OWASP Top 10 のバグクラスに対応した60のSPA対応プローブ
- `http_request`: 新しい攻撃チェーンのための厳格なスコープガード下での生のHTTP
- `start_engagement` / `get_findings` / `get_attack_chains`: エンゲージメントの記録
- さらに `test_web_app`、`test_active_directory`、`test_cloud`、`test_api_security` など
### Path 2: その他のMCPクライアント (Cursor, VS Code Copilot, Codex, Claude Desktop)```bash
ptai setup --mcp
Auto-detects every MCP-compatible client you have installed and writes their config files. Restart the client and the same 47 tools are there.
Path 3: Standalone CLI when you DON'T have an MCP client
If you're using Claude Code, Cursor, Codex, or Claude Desktop, use Path 1 or 2 above and skip this section. No API key needed there.
Path 3 is for CI/CD pipelines, scheduled cron jobs, air-gapped terminals, and users without an MCP client. The standalone CLI has no LLM of its own, so you bring one via env var:```bash export ANTHROPIC_API_KEY=sk-ant-... # Claude (best results)
or
export OPENAI_API_KEY=sk-... # OpenAI
or, fully local, no cloud
export PENTEST_AI_LLM_PROVIDER=ollama # Ollama (default localhost:11434)
or, any of 300+ models via LiteLLM (OpenRouter, Azure, DeepSeek, Groq, Mistral, ...)
pip install litellm
ptai start https://your-target.com
OpenAI互換エンドポイント(DeepSeek cloud、Groq、Together AI、vLLMなど)を利用していますか? `OPENAI_BASE_URL` と `PENTEST_AI_MODEL` を設定し、openaiプロバイダーを使用してください。すべてのプロバイダーの完全なレシピ(カスタムモデル名、トラブルシューティング、LiteLLM-300以上のリストを含む)は [`docs/llm-providers.md`](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/llm-providers.md) にあります。
#### 支出上限(Path 3のみ)
スタンドアロンエージェントループは独自のLLMを駆動するため、暴走ループは実際にお金がかかります。ptaiはエンゲージメントごとの支出をデフォルトで**10米ドル**に制限しています。通常のSonnet 4.6 Webアプリスイープはプロンプトキャッシングによりその額を十分下回って終了しますが、Opus 4.7のディープランではそれを超える可能性があります。
環境変数で変更します(CLIフラグはありません。環境変数が唯一の調整手段です):```bash
export PTAI_PRICE_LIMIT=25 # raise to $25
export PTAI_PRICE_LIMIT=0 # unlimited (logs a warning)
unset PTAI_PRICE_LIMIT # back to the $10 default
キャップが実行途中で発動した場合、その実行は aborted_cost_limit としてマークされ、チェックポイントは保持されます。キャップを引き上げて、停止した場所から再開してください:```bash
export PTAI_PRICE_LIMIT=25
ptai resume <engagement_id>
Paths 1 and 2 (MCP) don't use this cap - your AI client (Claude Code, Cursor, etc.) handles its own LLM billing.
パス1と2(MCP)はこの上限の対象外です。AIクライアント(Claude Code、Cursorなど)が自身のLLM課金を処理します。
### Installing security tools
### セキュリティツールのインストール
ptai wraps 200+ external tools. Three ways to get them on the box:
ptai は200以上の外部ツールをラップしています。これらをマシンに導入する方法は3つあります:```bash
# 1. Zero-config (recommended). At engagement start, the planner predicts
# which tools the LLM will need and asks ONCE to install the missing
# ones. Decline once and the answer persists in
# ~/.pentest-ai/install-preferences.json.
ptai start https://target.example.com
# 2. Batch install upfront. Skips the engagement-time prompt entirely.
ptai setup --tier core # ~6 essentials, ~30s
ptai setup --tier recommended # + fuzzers, crawlers, password tools, ~5m
ptai setup --tier full # everything, ~30m
# 3. Install specific tools by name.
ptai setup --per-tool wpscan,dalfox,paramspider
ptai setup --wizard # interactive picker
In non-interactive contexts (PTAI_NON_INTERACTIVE=1 または TTY なし)では、ptai は PATH 上のものを使用し、不足しているものについては(プロンプトではなく)ログに記録します。
その他のパス: REST API、MCP 構成、HITL テレオペレーション、クラウドワークスペース、公開ベンチマーク
HTTP REST API(ダッシュボードと統合向け)```bash
pip install ptai[api] ptai serve --port 8888
エンドポイント: `/health`、`/version`、`/agents`、`/tools`、`/engagements`(一覧、詳細、検出結果、攻撃チェーン、検出ルール、SARIFエクスポート)。書き込みエンドポイント(`POST /engagements`、`POST /engagements/{id}/abort`)には `Authorization: Bearer $PENTEST_AI_API_TOKEN` が必要です。ライブイベントストリームは `WS /engagements/{id}/stream` で提供されます。
### 他のMCPサーバーをツールソースとして読み込む
hexstrike や他の MCP 互換のセキュリティサーバーと組み合わせて使用できます。`~/.pentest-ai/mcp_servers.json` を編集します:```json
{
"servers": [
{"name": "hexstrike", "command": "python3 hexstrike_mcp.py", "transport": "stdio"}
]
}
実行中に引き継ぐ(HITL遠隔操作)
エンゲージメントの実行中に、600ms以内にCtrl+Cを2回押すと、オーケストレーターが一時停止してREPLに入ります:step、inspect findings、inject <instruction>、skip、resume、abort。現在のLLMは完全に自律的ではありません。重要な場面での判断はオペレーターが下します。
パブリックベンチマーク
再現可能な解決率の測定結果は benchmarks/ にあります:```bash
./benchmarks/scripts/run_all.sh # writes JSON per run + RESULTS.md
仕様、ハーネス、結果はすべてgitにあります。ZAP / Nuclei / HexStrike との完全なJuice Shop比較は [`docs/benchmarks/juice-shop.md`](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md) にあります。監査できない"98.7%の検出率"という主張はありません。
### クラウドワークスペース (Pro / Team / Enterprise)
CLIは永久に無料で、すべてをローカルに保存します。エンゲージメント履歴、ブランド化されたクライアント向けPDFレポート、チームコラボレーションが必要な場合は、CLIを [app.pentestai.xyz](https://app.pentestai.xyz) ワークスペースにリンクしてください:```bash
# Sign up, then Dashboard -> API Keys -> Generate -> copy ptai_...
ptai auth login # paste the key (hidden prompt)
ptai auth status # confirm link
# or use an env var for CI:
export PENTESTAI_API_KEY=ptai_...
ptai start は、認証されると検出結果をクラウドワークスペースに自動同期します。クラウドなし = 呼び出しなし。ログインしない限り、統合は黙ってオフのままです。
LLMをまったく使用しない(対話型ランチャー)```bash
ptai menu
数値カテゴリナビゲーション、検索(`/term`)、タグフィルタリング(`t web`)、キーワードベースのレコメンデーション。実際のエンゲージメントは、引き続き `ptai start` で完全なスコープ確認を行ってから実行されます。
</details>
## 他とは違う理由
| | |
|---|---|
| 🤖 **LLMが調整役、LLM依存ではない** | 17のエージェントが、リコン、Web、API、AD、クラウド、モバイル、ワイヤレス、ブラウザ、資格情報、権限昇格、脆弱性スキャン、チェーニング、PoC、検知、レポート、ソーシャルエンジニアリング、LLMレッドチームをカバーします。LLMはフェーズループを実行し、結果を推論します。バグ検出は厳選された決定論的プローブライブラリが担います。APIキーを設定しなくても、同じプローブは実行されます。LLMは調整を行うだけで、スキャンはしません。 |
| 🔓 **MCPパスではAPIキー不要** | Claude Code / Cursor / Codexユーザーは、既存のサブスクリプションを使ってMCP経由でptaiを利用します。200以上のツールラッパーと60のプローブは、AnthropicキーなしでLLMから呼び出し可能です。APIキーが重要になるのはスタンドアロンCLI(`ptai start --agent-mode`)です。これはMCPなしのCodex、CI、エアギャップ環境向けのパスです。 |
| 🔐 **ログインできる** | ほとんどのスキャナはログインページで止まってしまいます。これはセッションを保持し、資格情報の有効期限が切れたら更新し、後続のすべてのツールがクッキーを引き継ぎます。認証プロファイルは*参照*(環境変数、`op://`、Vaultパス、AWS Secrets Manager ARN)を保存し、値そのものは保存しません。 |
| 🧪 **すべての検出結果が実証済み** | 対象に対して非破壊的な概念実証(PoC)が実行されます。ノイズの多いスキャナから40件の不確かな候補をトリアージする必要はもうありません。 |
| ⚡ **CIネイティブ** | GitHub Action、深刻度ゲート、SARIF出力、PRコメント。ワークフローファイルに追加するだけで、次のPRで実行されます。 |
| 💾 **ラップトップで動作** | MITライセンス、クラウド呼び出しなし。Ollamaでオフライン実行可能。検出結果は自分のディスクに残ります。 |
## 仕組み```
┌─────────────────────────────────────────────────────────────┐
│ ptai start <target> │
└─────────────────────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌─────────┐
│ recon │ -> │ auth │ -> │ web │
└────────┘ └────────┘ └─────────┘
│
┌────────────────────────────────────┤
▼ ▼
┌────────┐ ┌─────────┐
│ ad │ ┌──────────────────┐ │ cloud │
└────────┘ │ Findings DB │ └─────────┘
│ │ (sqlite + evidence)│ │
└───────▶│ scope-guarded │◀──────┘
│ deduplicated │
└──────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────┐ ┌─────────┐ ┌──────────┐
│chain │ │validate │ │ detect │
└──────┘ └─────────┘ └──────────┘
│
▼
┌──────────┐
│ report │ md · html · pdf · SARIF · JUnit
└──────────┘
Each agent runs with an LLM when you've set a key, or as a deterministic tool loop when you haven't. Either way the phase order is the same.
エージェント
| エージェント | フェーズ | 説明 |
|---|---|---|
recon | 1 | ポートスキャン、DNS/サブドメイン列挙、サービスフィンガープリンティング |
web | 2 | 認証付きOWASPテストガイドv4パス |
api_security | 2 | OpenAPI/GraphQL/RESTサーフェス分析、OWASP API Top 10 |
browser | 2 | Playwright駆動のDOM分析、XHRキャプチャ、セキュリティヘッダー評価 |
ad | 3 | AD列挙、Kerberoasting、BloodHound経路探索、委任の悪用 |
cloud | 4 | AWS、Azure、GCP IAM、設定ミス、K8s RBAC、サーバーレス |
credential_tester | 4 | パスワードスプレー、クレデンシャルスタッフィング、MFAバイパスチェック |
privesc | 5 | 収集したコンテキストからのローカルおよび横方向の権限昇格アドバイス |
vuln_scanner | 5 | 発見事項DBに対する横断的な脆弱性集約 |
exploit_chain | 6 | 発見事項を多段階の攻撃経路に関連付けます |
poc_validator | 7 | 発見ごとの非破壊的な概念実証 |
detection | 8 | ブルーチーム向けのSigma、SPL、KQLルール |
report | 9 | Markdown、HTML、PDF、SARIF、JUnit、コンプライアンスマップ |
llm_redteam | opt | OWASP LLM Top 10プローブ |
social_engineer | opt | フィッシングコーパスとプリテキスト生成 |
mobile | opt | Android/iOSの静的+動的チェック |
wireless | opt | ワイヤレス偵察とハンドシェイクキャプチャ |
プレイブック
ファイルとしてのあなたの方法論。gitにチェックイン。チームで共有。```yaml name: internal-ad-pentest inputs: domain: { required: true, prompt: "AD domain" } dc_ip: { required: true, prompt: "DC IP" }
phases:
-
id: recon tools: [nmap, masscan]
-
id: ad-enum depends_on: [recon] condition: "any_finding(type='open_port', port=445)" tools: [enum4linux, ldapsearch, bloodhound-python]
-
id: kerberoast requires_finding: { type: ad_user_enumerated } tools: [impacket-getuserspns] llm_decide: true # let the LLM skip if context says useless
(no content provided)```bash
ptai playbook list # show installed playbooks
ptai playbook show web-app-quick # preview before running
ptai playbook run ./my-ad.yaml # execute
5つのプレイブックが標準で同梱されています。コミュニティカタログが近日公開予定です。
CIに組み込む```yaml
.github/workflows/security.yml
name: Security scan on: [pull_request]
jobs:
ptai:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install ptai
- run: |
ptai start ${{ vars.STAGING_URL }}
--ci
--fail-on high
--sarif pentest.sarif
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: pentest.sarif
Findings post as a PR comment, SARIF uploads to GitHub Code Scanning, and the build fails on gated severity. **GitLab CI and Jenkins** templates plus advanced options (auth profiles in CI, cost gates, scope files) -> [docs/ci-cd.md](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/ci-cd.md).
## Benchmarks
ptai の設計は、厳選されたプローブ網を備えたSPAペネトレーションテスト専用に作られています。OWASP Juice Shop では、公開されている [4ツール比較マトリクス](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md) が次の結果を示しました:
| ツール | 検出件数 | Critical+High | OWASP Top 10 カテゴリ | FP率 |
|---|---:|---:|---:|---:|
| **ptai 0.13.0** | **88** | **46** | **5** | **0%** |
| ZAP 2.17.0 | 593 | 0 | 1 | 47% |
| Nuclei 3.8.0 | 1 | 0 | 1 | 0% |
| HexStrike v6.0 | 11 | 0 | 1 | - |
n=1、単一評価者、単一ショット。方法論と生の成果物は [`benchmarks/results/2026-05-12/juice-shop/`](https://github.com/0xsteph/pentest-ai/blob/HEAD/benchmarks/results/2026-05-12/juice-shop/) にあります。正直な評価:ptai は、厳選されたプローブ網を備えたSPA Webペンテストで優れています。HexStrike はより広範(クラウド、バイナリ、CTF)で、WordPress のような従来のクロール可能なサーフェスでは ptai を上回る可能性が高いです。今後のリリースで比較を拡大します。
最近の研究コンテキスト:完全自律型LLMペンテストエージェントはタスクの **21〜31%** しかエンドツーエンドで完了できず、人間支援型のセットアップは **64%** に達します(ARTEMIS、DARPA AICC Atlantis、xOffense)。ptai は人間支援型の体制向けに作られています。LLMが結果を推論し、厳選されたプローブが検出し、Ctrl+C を2回押すとオペレーターが引き継げます。
## 競合ツールとの比較
| | `ptai` | Hexstrike | ZAP | Nuclei | Burp Pro | PentestGPT |
|---|:-:|:-:|:-:|:-:|:-:|:-:|
| MCP経由のLLM駆動(APIキー不要) | ✓ | ✓ | | | | |
| スコープガード下でのLLM合成HTTP | ✓ | 部分的 | | | | |
| MCP経由の認証スキャン | ✓ | 部分的 | 部分的 | raw HTTP | ✓ | |
| エクスプロイトチェーン | ✓ | 部分的 | | | | 部分的 |
| 非破壊的なPoC検証 | ✓ | | | | 部分的 | |
| 保存型インジェクションチェーン(POST -> GET検証) | ✓ | 手動 | 部分的 | | 手動 | |
| 厳選プローブ(専門特化型、テンプレート駆動ではない) | 60 | ツールラッパー駆動 | ルール駆動 | 8000+ テンプレート | 手動 + スキャン | - |
| ラップしたCLIセキュリティツール | 200+ | 150+ | - | - | - | - |
| ツールインストールウィザード | core/recommended/full + ツール単位 | - | 該当なし | 該当なし | 該当なし | - |
| エンゲージメント開始時のスマートインストール | ✓ | | | | | |
| CIネイティブ(SARIF + 重大度ゲート) | ✓ | | 部分的 | 部分的 | 部分的 | |
| LLMレッドチームプローブ | ✓ | | | | | |
| YAMLプレイブック | ✓ | | | テンプレート | | |
| ライセンス | MIT | MIT | Apache-2.0 | MIT | 商用 | MIT |
## 同梱内容
- **17のエージェント**:recon、web、APIセキュリティ、AD、クラウド、モバイル、ワイヤレス、ブラウザ、認証情報テスト、権限昇格、脆弱性スキャン、エクスプロイトチェーン、PoC検証、検出、レポート、LLMレッドチーム、ソーシャルエンジニアリングにわたる
- **60の厳選Webプローブ**:OWASP Top 10 + API Top 10 をカバー
- **200以上のツールラッパー** 自動インストール付き:nmap、masscan、nuclei、ffuf、sqlmap、gobuster、wapiti、nikto、dalfox、xsstrike、wpscan、hydra、hashcat、enum4linux、bloodhound-python、impacketスイート、trufflehog、gitleaks、kube-hunter、trivy、prowler、scout-suite など
- **4000以上のNucleiテンプレート** を統合し、アトミックな脆弱性検出を実現
- **47のMCPツール**:LLM駆動のエンゲージメント対応。`plan_tools` / `ensure_tools_installed` を含み、外部LLMがAnthropic APIキーなしでツールを一括インストールできます
- **300以上のLLMモデル**:LiteLLMプロバイダ経由(Anthropic、OpenAI、Ollama直接;Azure、OpenRouter、DeepSeek、Groq、Mistral、Together AI、Bedrock、Vertex AI、CohereはLiteLLM経由)
- **HTTP REST API + WebSocket** サーフェス(`ptai serve`):非MCP統合に対応
- **ローカルWebダッシュボード**:ライブなエンゲージメントビュー、検出結果テーブル、攻撃チェーン可視化、SARIFエクスポート
- **ブラウザ自動化エージェント**:スクリーンショット取得、DOM解析、ネットワークキャプチャ、セキュリティヘッダー評価(Playwright駆動)
- **人間参加型の遠隔操作**(実行中のエンゲージメントをCtrl+C 2回で引き継ぎ)
- **MCPクライアント** 機能:外部MCPサーバーをツールソースとして読み込み可能
- **公開された再現可能なベンチマークハーネス** を `benchmarks/` に配置。数値、コード、生の成果物、すべてgit管理
- **6つの出力形式**:Markdown、HTML、PDF、SARIF 2.1.0、JUnit XML、コンプライアンスマッピング(OWASP、CWE、CVE、CVSS v3.1)
- **2,400以上のテスト**:Python 3.10、3.11、3.12、3.13 でCI実行
- **MITライセンス**、100%あなたのもの
## 誰が何に使うか
**AppSecチーム。** `ptai` をCIに組み込みましょう。ステージングに対するすべてのPRが認証スキャンを受けます。高重大度の検出結果があるとビルドが失敗します。修正 -> 再テスト -> 確認のループは自動で回ります。
**コンサルタント。** 1週間のエンゲージメントを設定し、`ptai` をターゲットリストに向け、人間が必要な部分(検出結果の分析、デモに使うチェーンの選定、クライアントとの会話)に時間を使いましょう。レポートは自動で作成されます。
**バグバウンティハンター。** 朝食中に実行しておきましょう。戻ってくると、HackerOneに貼り付けられるPoC付きの検証済み検出結果のリストができています。
**レッドチーム。** ADの方法論をYAMLプレイブックとしてコード化しましょう。新しいエンゲージメントはすべてそれを実行します。同じ方法論をチーム全体で共有できます。
**Claude Code / Cursor / Codex ユーザー。** ptai をMCPサーバーとして追加しましょう。アシスタントに平易な英語でスキャンを頼めます。既存のサブスクリプションがLLMの費用を支払い、ptai がツールを提供します。
**AI機能をリリースする開発者。** チャットボットに対して `--enable-llm-redteam` を有効にしましょう。数分でOWASP LLM Top 10レポートが得られます。
## 責任ある使用
`pentest-ai` は攻撃的セキュリティツールです。指定したターゲットに対して実際のネットワークおよびホスト操作を実行します。**すべてのターゲットをテストするための明示的かつ書面による許可を得ていることを確認する責任は、完全にあなたにあります。**
`ptai` をインストールまたは実行することで、[Acceptable Use Policy](https://pentestai.xyz/aup) と [Terms of Service](https://pentestai.xyz/terms) に同意したことになります。書面による許可なく所有していないシステムをテストすると、Computer Fraud and Abuse Act、Computer Misuse Act 1990、GDPR第32条、およびお住まいの地域の同等法令に違反する可能性があります。誤用の責任はすべてあなたにあります。
初回起動時にAUPの同意を確認するプロンプトが表示され、その選択は `~/.pentest-ai/aup-consent.txt` に保存されます。CIでは `PENTEST_AI_AUP_ACCEPTED=1` を設定すると、非対話的にプロンプトをバイパスできます。
起動時に `ptai` はスコープファイルを読み込みます。スコープ外のホストはツール呼び出し時に拒否されます。PoCはデフォルトで非破壊的です。ステルスモードではレート制限が自動的に発動します。そんな人にならないでください。
### 帯域外コールバック(OAST)- プライバシー
`ptai` は、サーバー側で発火すると帯域外コラボレーターに通知するペイロードを送出することで、ブラインド脆弱性クラス(ブラインドSSRF、ブラインドSQLi、ブラインドXXE、ブラインド保存型XSS、SSTI、Log4Shell)を検出します。デフォルトでは、コールバックはProjectDiscoveryの公開 `oast.fun` インフラストラクチャにルーティングされます。
**コラボレーターに届くものと、誰がそれを読めるか。** 各エンゲージメントは、ローカルの `ptai` プロセス内で新しいRSA-2048鍵ペアを生成します。インタラクションペイロード(コラボレーターが受信したraw HTTPリクエスト、DNSクエリ、SMTPエンベロープ)は、サーバー側でAES-CTR-256により暗号化されて保存され、AESキーはエンゲージメントの公開鍵を使ってRSA-OAEP-SHA256でラップされます。**対応する秘密鍵の保持者、つまりローカルの `ptai` プロセスだけがそれらを復号できます。** ProjectDiscovery(またはコラボレーターを運営する者)はインタラクションの内容を読めません。ただし、**メタデータはサーバーから見えます**:インタラクションが発生した事実、呼び出し元ターゲットの送信元IP、タイムスタンプ、プロトコル。
**自己ホストする場合。** PortSwiggerはバグバウンティの実施規則でパブリックBurp Collaboratorの使用を明示的に禁止しており、大規模なエンタープライズプログラム(Meta、Apple、金融)では、コールバックインフラがテスト実施者管理のホスト上で終端することを求めるケースが増えています。有償のエンゲージメントでは、独自のInteractshサーバー(Apache-2.0、単一のGoバイナリ)を実行し、ptai をそこに向けてください:```bash
ptai start http://target --oast-server https://oast.example.com --oast-token <T>
OASTを完全に無効にするには:```bash ptai start http://target --no-oast
OASTがオフの場合、ブラインド脆弱性クラスは検出されません。インバンド検出経路(サイズ差分 / SQLエラーマーカー / メタデータシグネチャ / 時間ベース)は引き続き実行されます。
## エコシステム
| リポジトリ | 説明 |
|---|---|
| [**pentest-ai**](https://github.com/0xSteph/pentest-ai) | このリポジトリ。CLIおよびMCPサーバー。Python製品。 |
| [**pentest-ai-agents**](https://github.com/0xSteph/pentest-ai-agents) | スタンドアロンのClaude CodeサブエージェントMarkdownファイル。オプション。このCLIなしで動作します。 |
共有ワークスペース、ブランド化されたPDFレポート、SSO、または管理されたエンゲージメントが必要ですか?[ウェブサイト](https://pentestai.xyz)にはPro / Team / Enterpriseダッシュボードと、ワンショットのLaunch Engagementオプションがあります。OSSツールは今後もOSSのままで、永久に無料です。
## コミュニティ
- **Discord:** [サーバーに参加](https://discord.gg/6weeTAubJw)。チャット、ヘルプ、発見事項の共有、閲覧ができます。
- **質問、アイデア、フィードバック:** [GitHub Discussions](https://github.com/0xSteph/pentest-ai/discussions)
- **バグ報告:** [GitHub Issues](https://github.com/0xSteph/pentest-ai/issues)
- **Show and tell:** `ptai`があなたに与えた最もとんでもない発見を[Show and tell](https://github.com/0xSteph/pentest-ai/discussions/categories/show-and-tell)に投稿しましょう。
## FAQ
**APIキーは必要ですか?** MCPパスでは不要です。Claude Code、Cursor、Codex、またはClaude Desktopからptaiを操作する場合、既存のサブスクリプションがLLMになります。スタンドアロンCLI(パス3)でのみキーが必要で、そこでもOllamaを使用して完全にローカルで実行できます。[インストール](#install)を参照してください。
**本当に自律的なのでしょうか、それとも監視が必要ですか?** あなたは常に関与し続けます。ptaiはLLMが調整するものであり、自律的ではありません。厳選されたプローブが検出を行い、LLMが結果を推論し、最終判断はあなたが下します。実行中にCtrl+Cを2回押すと引き継げます。完全自律型のLLMエージェントはペンテストタスクの21〜31%をエンドツーエンドで完了します。人間が支援するセットアップでは64%に達し、ptaiは後者の方式向けに作られています。
**本番環境に向けても安全ですか?** 文書による承認があり、かつガードレールが有効な場合のみです:`intensity=safe`は状態を変更するプローブをスキップし、`respect_rate_limits`は429 / Retry-Afterを尊重し、`strict_scope`はホスト外のリクエストを拒否してリダイレクトの追跡を停止します。3つともデフォルトではオフなので、オンにしてください。[責任ある使用](#responsible-use)を参照してください。
**なぜJuice Shopの数値は高く、ハニーポットは低いのですか?** Juice Shopはインターネット上で最も文書化された脆弱なアプリであるため、LLMとプローブの作者の両方が有利なスタートを切っています。プライベートハニーポットは私たち自身が書いたバグを測定するため、その数値は低くなります。そして、その低い数値こそが正直なシグナルです。両方を公開しています。[ベンチマーク](#benchmarks)を参照してください。
**外部に通信しますか?** テレメトリはなく、発見事項はあなたのディスクに残ります。MCPパスでは、あなたのプロンプトとAIクライアントが読み取るツール出力は、通常のセッションと同様にそのクライアントのAPIを経由します。ブラインド脆弱性検出(OAST)は、デフォルトで公開oast.funにコールバックを送信します。コンテンツはローカルのキーペアで暗号化されますが、コールバックが発生した事実と送信元IPおよびタイムスタンプは、コラボレーターを運営する誰にでも見えます。回避するには、Interactshをセルフホストするか、`--no-oast`を指定して実行してください。[責任ある使用](#responsible-use)を参照してください。
**実行するのにいくらかかりますか?** MCPパスでは、独自の請求処理を行うAIサブスクリプション以外には何もかかりません。スタンドアロンCLIでは、ptaiはデフォルトで1エンゲージメントあたりの支出を$10に制限します。`PTAI_PRICE_LIMIT`で変更できます。[インストール](#install)を参照してください。
**単にClaudeやPentestGPTを使うのとどう違うのですか?** 厳選された決定論的プローブライブラリがバグを発見します。LLMはフェーズループを実行し、結果について推論します。スキャンはしません。そのため、発見事項は再現可能で、LLMの推測ではなく動作するPoCが付属します。[なぜ違うのか](#why-its-different)と[他ツールとの比較](#vs-the-field)を参照してください。
## スター履歴
<a href="https://star-history.com/#0xSteph/pentest-ai&Date">
<img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt="スター履歴チャート" width="600">
</a>
## ライセンス
MIT。お好きなようにどうぞ。
<div align="center">
**`ptai`があなたの日曜日を救ってくれたなら、[リポジトリにスターを付けてください](https://github.com/0xSteph/pentest-ai)。それが私が求める唯一の報酬です。**
</div>