マルチエージェントによる偵察、エクスプロイテーション、ポストエクスプロイテーション、レポーティングを永続的なエンゲージメント状態で統括する自律型AIペネトレーションテストエージェント。
ターミナル上で動作するAIペネトレーションテストエージェント。
マルチエージェントアーキテクチャ • エンゲージメント状態トラッキング • 20以上のLLMプロバイダー
PentestCodeは、ターミナル上で動作する自律型ペネトレーションテストエージェントです。 ターゲットを指定すれば、ツールを実行し、出力を読み取り、ネットワークの全体像を更新し、次に何をすべきかをオペレーターのように判断します。OpenCode(MIT)のハードフォークであり、コード編集への注力部分を取り除き、オフェンシブセキュリティ向けに再構築したものです。
ベータ版 — 実際のエンゲージメントやCTFでは十分に機能しますが、荒削りな部分は覚悟してください。何か問題が発生したらissueを報告してください。それが改善につながります。
1つの指示から、完全な攻撃チェーンを実行します:
you: "pentest 10.10.10.5, goal is domain admin"
| ステージ | エージェントの動作 |
|---|---|
| スキャン | nmap -sS -p- が7つの開いているポートを検出し、XMLを直接エンゲージメント状態にパースする |
| 認識 | ポート88 + 389 → ドメインコントローラー。3つの列挙ツール(SMB、LDAP、HTTP)を並列で展開 |
| 列挙 | Null SMBセッション → 書き込み可能な共有。LDAP → ユーザーリスト。Gobuster → Webディレクトリ |
| 攻撃 | AS-REP roast → クラック可能なハッシュ → 最初の有効な認証情報 |
| スプレー | その認証情報を、既知の全ホスト上のSMB、WinRM、LDAP、RDPに対してスプレー |
| エクスプロイト | WinRMで足場を確保 → ポストエクスプロイトエージェントがSAM / LSA / DPAPIをダンプ |
| 結果 | ドメイン管理者のハッシュを取得 — すべてのステップがエビデンスチェーンとともに記録される |
人間が怠けがちなところでも、このツールは几帳面です。全ホスト上の全サービスに対して全認証情報をスプレーし、確認を忘れることがありません。学習したすべての情報は構造化された状態に蓄積され、実行中に /status、/vulns、/creds で照会できます。
npm install -g pentestcode-ai
# via curl
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
単一の自己完結型バイナリ — Bun、Node、ランタイムのインストールは不要です。LinuxとmacOS、x64とarm64に対応。
Arch Linux (AUR):
paru -S pentestcode-bin
バージョンを固定:
PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
カスタムディレクトリ:
PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
ソースから:
bun install
bun run build --single --skip-embed-web-ui
# binary at packages/opencode/dist/pentestcode-<os>-<arch>/bin/pentestcode
pentestcode auth login # connect your LLM provider
pentestcode # interactive session
pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services" # one-shot
ai-sdkを通じて20以上のプロバイダーに対応 — Anthropic、OpenAI、Google、Azure、AWS Bedrock、Ollamaなど。
PentestCodeがチャットウィンドウに貼り付けたペンテスト用プロンプトと異なる点は2つあります:エージェントのチームと、彼らが共有するメモリです。
設計はHPTSA研究のストラテジスト・コーディネーターモデルに従っており、単一エージェントと比べて4.3倍の改善を実現しています:
┌─────────────┐
│ pentest │ strategist / coordinator
│ (lead) │ plans, dispatches, tracks state
└──────┬──────┘
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│recon ││scan- ││explo-││iden- ││post- │
│ ││ner ││iter ││tity ││explo │ ... + 7 more
└──────┘└──────┘└──────┘└──────┘└──────┘
リードエージェント(pentest)はエンゲージメントをタスクに分解し、専門サブエージェントを並列で派遣します — それぞれが独自のシステムプロンプト、ツール権限、ドメイン知識を持っています。合計13のエージェント: recon、scanner、enumerator、exploiter、identity(AD/Kerberos)、infrastructure(SNMP/IPMI/データベース)、webapp(OWASP Top 10)、post-exploit、exploit-dev、critic(誤検知チェッカー)、reporter、さらにコンテキスト圧縮とセッション管理用の隠しエージェント。
スキャナーがポートを発見すると、列挙ツールが即座にそれを認識します — すべてのエージェントが単一の構造化されたエンゲージメント状態を読み書きするためです:
状態はセッションを超えて存続します:ターミナルを閉じて翌日戻ってきても、エージェントは停止した場所から再開します。それと並行して、人間が読めるfindings.mdがすべての脆弱性、認証情報、アクセス獲得をタイムスタンプ付きで記録します — tail -fでエンゲージメントの進行をリアルタイムに確認できます。
bash以外に18の組み込みペンテストツールがあります。パーサーツールは必須です:nmapを実行した後、エージェントはXMLを手動でgrepするのではなく、出力をnmap_parseに通さなければならず、それによりすべての発見がエンゲージメント状態に到達します。
| ツール | 機能 |
|---|---|
nmap_parse | nmap XMLをパース → ホスト/サービスを自動入力 |
nuclei_parse | Nuclei JSONをパース → 深刻度付きで脆弱性を作成 |
cme_parse | NetExec出力をパース → 認証情報/アクセス/ホストを更新 |
gobuster_parse | ディレクトリブルート出力をパース → 発見を分類 |
bloodhound_parse | SharpHound JSONをパース → ADモデルを入力 |
sqlmap_parse | sqlmap出力をパース → インジェクションポイントを抽出 |
xss_detect | レスポンスを分析して反射型/蓄積型XSSを検出 |
jwt_analyze | JWTをデコードし、alg:none/弱いHMAC/有効期限をチェック |
cred_spray | 発見された全サービスに対する認証情報スプレーを計画 |
scope_check | CIDR/ワイルドカードスコープの検証 |
attack_path_suggest | 関係グラフを通じたコストベースのパス探索 |
tunnel_manage | SSH/chisel/ligoloトンネルを計画し、ライブセッションを追跡 |
phase_control | 品質ゲート付きのフェーズ管理 |
report_gen | markdown/JSONペンテストレポートを生成 |
state_update | 発見を記録(30以上のミューテーションタイプ、バッチモード) |
state_query | エンゲージメント状態を照会(20以上のクエリタイプ) |
19の厳選されたナレッジパック。オンデマンドで読み込まれるため、関連する場合にのみコンテキストを消費します:
スキルはプレーンなmarkdownです。スキルディレクトリにSKILL.mdを置くだけで独自のスキルを追加できます — コード変更は不要です。
スラッシュコマンドでライブセッションを操作します:
| コマンド | 機能 |
|---|---|
/status | エンゲージメントダッシュボード — ホスト、脆弱性、認証情報、フェーズ |
/targets | ホストとサービスのテーブル |
/vulns | 深刻度別の発見 |
/creds | 発見された認証情報 |
/scope | ターゲットスコープの表示/編集 |
/phase | フェーズ管理 |
/mode | auto / free / guidedの切り替え |
/pause | 発見時に一時停止(never / always / checkpoint) |
/report | ペンテストレポートを生成 |
そして、エージェントに与える裁量を設定します:
モードは一時停止動作と組み合わせられます — auto + pause alwaysで、すべての発見時にレビューのために停止する自律実行が得られます。
オフェンシブセキュリティ全体で1つのツールキット:
設定は.pentestcode/pentestcode.jsoncにあります:
{
"provider": {
"anthropic": {
"model": "claude-sonnet-4-20250514"
}
}
}
プロバイダー:Anthropic、OpenAI、Google、Azure、AWS Bedrock、Ollama、Together、Groq、Fireworks、DeepSeek、Mistral、その他ai-sdk経由。
実際の使用から得られたバグレポートが、最も価値のある貢献です。CTFマシン、HTBマシン、または許可されたペンテストでPentestCodeを実行し、何か問題が発生したとき — ループに陥る、明らかなパスを見逃す、ツール出力で詰まる、トークンを浪費する — 以下の内容でissueを開いてください:
findings.mdおよび/または関連するセッション出力機能リクエストやPRも歓迎します。コードベースはEffectライブラリ上のTypeScriptです — アーキテクチャについてはCLAUDE.mdを参照してください。
MIT — LICENSEを参照。
OpenCodeのハードフォーク • オフェンシブセキュリティ向けに構築 • セルフホスト & オープンソース