
pentest-ai v1.2.0
すべての発見を実証するオープンソースのAIペンテスター。機械オラクルが各エクスプロイトを再実行し、検証済みのバグには、自分で再現できる証明カプセルが同梱されます。
⚠️ 攻撃用ツールです。認可を受けたテストのみに使用してください。 インストールすることで AUP と 利用規約 に同意したものとみなされます。責任ある使用 ↓ を参照してください。
2分で完了。APIキー不要、自前のターゲットも不要
pip install ptai && ptai demo
ptai demo は同梱の脆弱なアプリをスキャンし、4 findings, 3 oracle-VERIFIED と出力します。
証明カプセルから1件をライブでリプレイし(replay 3/3)、その後同じルートを
堅牢化した状態で実行し、0 findings と出力します。
注目すべき点が2つあります。検出結果は、ツールが沈黙したからではなく、脆弱性の有無に応じて現れたり消えたりします — 2回の実行の間で変わったのは修正のみです。そして4件のうち1件は候補のまま残ります: SQLiログインバイパスは本物ですが、そのルートではどのオラクルも再証明できなかったため、バッジは付与されません。このギャップこそが製品の正常な動作であり、デモのバグではありません。
ここでVERIFIEDが実際に意味すること
ほとんどのスキャナは、あるものが悪用可能かもしれないと伝え、トリアージはあなたに任せます。 ptai は、名前付きの機械オラクルがエクスプロイトを再実行し、N回中N回再現するまで、検出結果を候補として扱います。その時点でのみVERIFIEDを獲得します。
これを単なるスローガン以上のものにしている3つの特性があります:
LLMが判定を下すことは決してありません。 このルールはポリシーではなくコードで強制されます: それを獲得したオラクルを指名できない判定は拒否されます。LLMは実行を調整し、結果について推論します。バグが本物かどうかを決定することは決してありません。
すべてのオラクルには、失敗しなければならないコントロールがあります。 信頼済みヘッダーバイパスは、ヘッダーありで特権コンテンツを返し、なしで拒否を返さなければなりません。漏洩した認証情報のチェックは、本物のシークレットでは受け入れられ、意図的に破損させた双子では拒否されなければなりません。すべてに200を返すエンドポイントは何も獲得できません。これにより、「200が返ってきた」ことが証明と誤認されるのを防ぎます。
サードパーティのスキャナ出力は保留されます。 nuclei、nikto、zap の結果は、それ自体の権限で検出結果になることはありません。ptai 自身のオラクルのいずれかが独立して再証明するまで、未検証のままです。
VERIFIEDされた各検出結果は、ポータブルな証明カプセルとして提供されます — 検出結果、それを再証明するためのレシピ、そしてレシートです。誰でもライブターゲットに対して ptai replay を実行し、オラクルが再確認するのをptai を信頼せずに見ることができます。カプセルは意図的に署名されていません: リプレイこそが信頼メカニズムであり、盲目的に受け入れなければならない署名ではありません。
正直な数字
| 動作するオラクルを持つ脆弱性クラス | 14 |
| ライブラリ内のプローブ数 | 64 |
| VERIFIEDを獲得できるプローブ数 | 30 |
| オラクルの種類 | 24 |
| ツールラッパー数 | 203 |
| …そのうち現在検出結果に出力をパースするもの | 18 |
| MCPツール数 | 52 |
| 専門エージェント数 | 18 |
| テスト数 | Python 3.10 / 3.12 / 3.14 で 2,729 |
意図的に脆弱なハニーポットでは、これら14クラスにわたって23件の検出結果が、誤検知ゼロ、精度100%で検証されました。標準の OWASP Juice Shop では、2026-08-23 のスイープで17件の検出結果が検証されました — レポートはスコープ内HTTP / 検証済み / 精度であり、17/116ではありません。2026-08-25 の Path 1 MCP セッション(MCPクライアントが run_probe を駆動、オーケストレーターの検証前にターゲットが停止)では、64件のスコープ内HTTPチャレンジ(20件は追求しない)に対して、精度100%で12件の検証済み証明を獲得しました。OSINT、Web3、UIのみの Juice Shop キーは、設計上、自動化スコアボードの対象外です。
これらの数字を注意深く読んでください。ギャップこそが要点だからです。 64のプローブが存在しますが、判定を獲得できるのは30のみで、残りの34は正直な候補を報告します。203のラッパーが登録されていますが、ツール出力を検出結果に変換するのは18のみで、残りは実行して生のテキストを返します。オラクルゲートは精度を購入するものであり、検出率ではありません: 誤検知を除去しますが、より多くのバグを見つけるわけではありません。
ハニーポットハーネス(tests/honeypot/)とクリーンアプリのゼロ誤検知ゲート(tests/cleanapp/)は両方ともこのリポジトリに同梱され、CIで実行されるため、これらはスクリーンショットではなく再現可能です。
できないこと
セキュリティツールが自分を過大評価することは無価値以下であるため、明確に述べます。
- これはWebアプリケーションスキャナです。 64のプローブすべてと24種類のオラクルすべてがHTTPを対象としています。AD、クラウド、モバイル、ワイヤレスにはエージェントとツールラッパーがありますが、背後にプローブライブラリもオラクルもありません。
- ローカル権限昇格はできません。 それには、すでに所有しているホストでのコード実行が必要です。ptai はリモートでテストし、そのようなチャネルを持たないため、privescエージェントは誤解を招くゼロではなく
unsupportedを報告します。 - CVEスキャナではありません。 バージョンからCVEへのデータベースもエクスプロイトライブラリもありません。CVE作業は、漏洩したマニフェストに対する osv.dev ルックアップに限定されます。
- プレイブックは計画するものであり、実行しません。
ptai playbook runは依存関係を解決し、計画を出力します。ターゲットに対して実行することはまだ配線されていません。 - 自律的ではありません。 完全自律型のLLMペンテストエージェントは、タスクの21〜31%しかエンドツーエンドで完了しません。人間が支援するセットアップは64%に達します。ptai は後者の体制向けに構築されています。実行中に引き継ぐには Ctrl+C を2回押してください。
上記を含む完全な内部欠陥リストは、静かにではなくオープンに追跡されています。ここに誤りがある場合は、issueを開いて 修正してください。
インストール
パス1 — Claude Code、Cursor、または Codex から駆動(APIキー不要)
既存のAIサブスクリプションがLLMになります。ptai がツールを提供します。
pip install ptai
ptai mcp install # MCPクライアントを自動検出し、設定を書き込みます
クライアントを再起動すると、52のツールが利用可能になります。このパスでは Anthropic キーは不要です — MCPサーバーは設計上、独自のLLMをホストしません。
パス2 — スタンドアロンCLI
pip install ptai
export ANTHROPIC_API_KEY=sk-... # または OPENAI_API_KEY
ptai start https://target.example.com
# 完全にローカル、クラウド不要:
export PENTEST_AI_LLM_PROVIDER=ollama
# または決定的、LLM完全不要:
ptai start https://target.example.com --no-llm
支出はデフォルトでエンゲージメントあたり$10に制限されています(PTAI_PRICE_LIMIT)。
セキュリティツール、REST API、その他のオプション
ptai tools install --tier core # または recommended / full
ptai tools install nmap nuclei # または名前で指定
ptai serve # ダッシュボード用のHTTP REST + WebSocket
ptai menu # インタラクティブランチャー、LLM不要
エンゲージメント開始時に、プランナーは実行に必要なツールを予測し、不足しているツールのインストールを一度だけ尋ねます。拒否すると、その回答は永続化されます。
ベンチマーク
再現可能で、git内にあり、生の成果物付きです。監査できない「98.7%の検出率」はありません。
| ツール | 検出結果 | Critical+High | OWASPバケット | FP率 |
|---|---|---|---|---|
| ptai | 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、単一評価者、OWASP Juice Shop に対する単一ショット。方法論と生の出力は benchmarks/ にあります。完全なレポートは docs/benchmarks/juice-shop.md にあります。
正直な読み方: ptai は、厳選されたプローブカバレッジを持つSPA Webターゲットに強いです。HexStrike はより広範(クラウド、バイナリ、CTF)で、WordPress のような従来のクロール可能なサーフェスではおそらく ptai を上回ります。また、Juice Shop はインターネット上で最も文書化された脆弱なアプリであるため、LLMとプローブ作者の両方に有利なスタートがあります — これがまさにプライベートハニーポットの数字が低い理由であり、両方が公開される理由です。
CIに組み込む
- run: pip install ptai
- run: ptai start ${{ vars.STAGING_URL }} --ci --fail-on verified --sarif pentest.sarif
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: pentest.sarif }
--fail-on verified は、オラクルが実際に証明した検出結果がある場合のみビルドを失敗させるため、スキャナのノイズでゲートが作動することはありません。SARIFは GitHub Code Scanning にアップロードされ、検出結果はPRコメントとして投稿されます。GitLab と Jenkins のテンプレートは docs/ci-cd.md にあります。
仕組み
recon ──▶ auth ──▶ web ──┬──▶ ad
├──▶ cloud ┌──────────────────┐
└──▶ api ──────────▶│ findings DB │
│ scope-guarded │
└────────┬─────────┘
▼
verify (oracles, N/N)
▼
chain ─▶ validate ─▶ detect ─▶ report
md · html · pdf · SARIF · JUnit