
マルチエージェントによる偵察、エクスプロイテーション、ポストエクスプロイテーション、レポーティングを永続的なエンゲージメント状態で統括する自律型AIペネトレーションテストエージェント。
ターミナルで動作するAIペネトレーションテストエージェント。
マルチエージェントアーキテクチャ • エンゲージメント状態の追跡 • 20以上のLLMプロバイダー
PentestCodeは、ターミナルで動作する自律型ペンテストエージェントです。 ターゲットを指定すると、ツールを実行し、出力を読み取り、ネットワークの把握状況を更新して、次の行動を決定します — オペレーターと同じように。OpenCode(MIT)のハードフォークであり、コード編集中心の設計を廃し、攻撃的セキュリティ向けに再構築されたものです。
ベータ版 — 実際のエンゲージメントやCTFでも十分に機能しますが、荒削りな部分があることを想定してください。問題が発生したら issueを報告 してください。それが改善につながります。
1つの指示を入れるだけで、完全な攻撃チェーンが実行されます:
you: "pentest 10.10.10.5, goal is domain admin"
人間が怠けがちな部分でも、PentestCodeは几帳面に実行します: すべての認証情報をすべてのホストのすべてのサービスに対してスプレーし、確認すべきことを忘れません。学習したすべての情報は構造化された状態に格納され、実行中に /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に対応。
バージョンの固定:
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 に通さなければなりません。これにより、すべての検出結果がエンゲージメント状態に到達します。
厳選された19のナレッジパック。オンデマンドで読み込まれるため、関連する場合にのみコンテキストを消費します:
スキルはプレーンなMarkdownです。スキルディレクトリに SKILL.md を置くだけで独自のスキルを追加できます — コードの変更は不要です。
スラッシュコマンドでライブセッションを操作します:
そして、エージェントに与える裁量も設定できます:
モードは一時停止の挙動と組み合わせられます — 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 経由で対応。
実際の使用で得られたバグ報告は、あなたが送れる最も価値のあるものです。PentestCodeをCTFボックス、HTBマシン、または許可を得たペンテストで実行し、何か問題が発生したとき — ループする、明らかな経路を見逃す、ツールの出力で詰まる、トークンを無駄にする — 次の内容でissueを開いてください:
findings.md および/または関連するセッション出力機能リクエストとPRも歓迎します。コードベースはEffectライブラリ上のTypeScriptです — アーキテクチャについては CLAUDE.md を参照してください。
MIT — LICENSE を参照。
OpenCode のハードフォーク • 攻撃的セキュリティ向けに構築 • セルフホスト型 & オープンソース
| 段階 | エージェントの動作 |
|---|
| スキャン | nmap -sS -p- で7つのオープンポートを発見し、XMLをそのままエンゲージメント状態にパース |
| 認識 | ポート88 + 389 → ドメインコントローラー。SMB・LDAP・HTTPの3つの列挙を並列実行 |
| 列挙 | Null SMBセッション → 書き込み可能な共有。LDAP → ユーザー一覧。Gobuster → Webディレクトリ |
| 攻撃 | AS-REPロースティング → クラック可能なハッシュ → 最初の有効な認証情報 |
| スプレー | その認証情報を既知のすべてのホストのSMB・WinRM・LDAP・RDPに対してスプレー |
| 悪用 | WinRMで足場を確保 → ポストエクスプロイトエージェントがSAM / LSA / DPAPIをダンプ |
| 結果 | ドメイン管理者のハッシュを入手 — すべてのステップがエビデンスチェーン付きで記録される |
| ツール | 機能 |
|---|
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以上のクエリタイプ) |
| コマンド | 機能 |
|---|
/status | エンゲージメントダッシュボード — ホスト、脆弱性、認証情報、フェーズ |
/targets | ホストとサービスの一覧 |
/vulns | 深刻度別の検出結果 |
/creds | 発見された認証情報 |
/scope | ターゲットスコープの表示/編集 |
/phase | フェーズ管理 |
/mode | auto / free / guided の切り替え |
/pause | 発見時に一時停止(never / always / checkpoint) |
/report | ペンテストレポートの生成 |