PentestGPT は、ChatGPT などの大規模言語モデルにペネトレーションテスト(侵入テスト)を手伝わせる研究から生まれた OSS です。論文は USENIX Security 2024 で発表され、GitHub のスターは約1.63万(2026-11-09)です。ただし今のリポジトリには、論文の流れを汲む対話型と、Claude Code や Codex を動かす自律型の2つが同居しています。名前だけで選ぶと、思っていたのと違う道具を動かすことになります。
TWO MODES1つのリポジトリに2つの PentestGPT
論文の対話型と、Claude Code・Codex を動かす自律型
pentestgpt-legacy(論文の流れ)
- USENIX Security 2024 の対話型ツール
- 3つの LLM セッションで作業の木を保つ
- コマンドを実行するのは人
- OpenAI・Anthropic・Gemini・Ollama など
pentestgpt-agent(自律型)
- Supervisor と Executor のループを SQLite に残す
- Claude Code か Codex の CLI を動かす
- 両役割に FULL_ACCESS(全ツール・入出力に制限なし)
- 隔離した使い捨て環境が前提と明記
30秒でわかる(2026-11-09)
- ・対話型(legacy):論文の作り。LLM が次の一手を提案し、コマンドを実行するのは人
- ・自律型(agent):Claude Code か Codex の CLI に作業させる。権限は全ツール・制限なしで、隔離した使い捨て環境が前提
- ・README とのずれ:86.5% は過去の研究結果と README 自身が注記。起動例の
pentestgptコマンドは定義が見当たらない - ・ライセンス:MIT。最新タグは v1.0.0、HEAD は 2026-07-14
まずやること(使う前に)
- どちらを使うか決める:人が手を動かして学ぶなら対話型、検証環境をまとめて回させるなら自律型。
- 自律型は専用の VM で:手元の認証情報・社内網・本番の鍵が無い使い捨て環境に、許可された対象だけを置く。
- 送るデータを確認する:診断の経過は LLM 事業者に送られる。Claude Code・Codex の契約と社内規程を見ておく。
AI ペンテスト OSS の全体像は AIペネトレーションテストOSSの選び方|主要7本の違いと、動かす前に決める5つ にまとめています。ソフトウェアの依存全体を守る考え方は サプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説 を参照してください。
PentestGPTとは——論文から生まれたAIペンテスト支援
論文版の PentestGPT は、LLM にペンテストを丸ごと任せるのではなく、人の作業を支える形をとりました。推論・生成・解析の3つの LLM セッションで「作業の木」(Pentesting Task Tree)を保ち、次に何を試すかを提案します。実際のコマンドは人が実行し、その結果を貼り付けて次の提案を受け取ります。LLM が長い作業の途中で文脈を見失う弱点を、木で全体を保つことで補う考え方です。
この対話型は、今は pentestgpt-legacy として残っています。対応する LLM は OpenAI・Anthropic・Gemini・DeepSeek・xAI・Qwen・Kimi と、Ollama などのローカルモデルです。API キーは環境変数か .env で渡します。
| 項目 | 内容(2026-11-09 時点) |
|---|---|
| ライセンス | MIT(LICENSE.md・pyproject.toml) |
| 最新タグ | v1.0.0(HEAD は 2026-07-14 のコミット) |
| Python | 3.12 以上 |
| 導入 | git clone 後に make install(中身は uv sync)、または Docker |
| 定義されたコマンド | pentestgpt-legacy、pentestgpt-agent(後者は pentestgpt_agent 側) |
自律型 pentestgpt-agent——Claude Code・Codex に任せる
もう1つの pentestgpt-agent は、README が「維持されている自律フレームワーク」と呼ぶものです。Supervisor(監督役)が次のタスクを1つ選び、Executor(実行役)がそれを実行し、経過を SQLite に記録します。中で動くのは Claude Code か Codex の CLI で、既定は Claude です。API キーは読まず、認証済みの CLI をそのまま使います。
権限の扱いは強めです。コードは監督役と実行役の両方に FULL_ACCESS(全ツール・入出力に制限なし)を渡し、「PentestGPT 自体はデプロイ側の隔離の内側で動く前提」とコメントしています。リポジトリに残る旧版のコピーでは、この FULL_ACCESS は Claude Code の確認なしモード(bypassPermissions)に対応づけられています(実際に使う外部パッケージ unified-agent 0.3.0 での対応は未確認)。README も「許可された対象と必要な認証情報だけを置いた、隔離された使い捨ての環境」で動かすよう明記しています。
範囲を守る仕組みはあります。計画の段階で、タスクの対象が --target で渡した許可リストと一字一句一致するかをコードで確かめ、外れていれば計画を拒否します。調査のタスクが攻撃に踏み込む文言を含む場合も拒否します。ただしこれは計画に書かれた対象の検査で、実行役が打つコマンドの通信先をネットワークの段階で止めるものではありません。範囲外に届かないことを保証したいなら、VM やファイアウォールの側で止めます。
README の主張と、リポジトリの中身
CLAIM vs REPOREADME の主張と、リポジトリの中身
86.5% は過去の研究結果。最新の HTB 記録は「不合格」
README に書かれていること
- XBOW の検証セットで 86.5%(90/104、2025年12月)
- pentestgpt --target … で起動
- Langfuse に匿名の利用データを送る
- --no-telemetry で止められる
リポジトリで確かめられること
- README 自身が「現行版の保証ではない」と注記
- 定義済みは pentestgpt-legacy と pentestgpt-agent
- コードに langfuse の import が見当たらない
- HTB の記録(2026-07)は Not qualified
README とリポジトリの中身を突き合わせると、いくつかずれがあります。
- 86.5%:README は「2025年12月の XBOW 検証セットで 104問中90問(86.5%)」と書き、すぐ後に「過去の研究結果で、現行の pentestgpt-agent の性能を保証するものではない」と注記しています。評価の仕組みはリポジトリの外にあり、結果データも入っていません。
- Hack The Box の記録:リポジトリには 2026年7月の HTB(Enigma)の記録があり、判定はNot qualified(不合格)です。2つのモデルとも、ユーザー権限と root 権限の証明に届きませんでした。記録自身は「対象が解けないという主張ではない」と断ったうえで、最後の Codex の実行が予算の大半を偵察の繰り返しに使ったと書いています。
- 起動コマンド:README の使い方は
pentestgpt --target …ですが、pyproject に定義されているのはpentestgpt-legacyと、自律型のpentestgpt-agentです。pentestgptという名前のコマンドは見当たりませんでした。 - テレメトリ:README は匿名の利用データを Langfuse に送ると書き、止め方も案内しています。ただし依存に langfuse は入っているものの、コードに import は見当たらず、送信の実装は確認できませんでした。
数字を読むときは、どの版の、どの評価で、誰が測ったかを確かめてから使うのが安全です。
使う前の確認と対策
自律型を動かす前に、手元に取得したリポジトリで、役割にどの権限が渡るかを自分の目で確かめておきます。
grep -n "SandboxPolicy" pentestgpt_agent/src/pentestgpt_agent/trial.py
2026-11-09 時点の HEAD では、role_sandbox = SandboxPolicy.FULL_ACCESS などの行が出ます。版が変わればここも変わりうるので、更新のたびに見直してください。このコマンドが見るのはコード上の既定だけで、実行時にどこまで届くか(影響範囲)は、このコマンドだけでは判断できません。動かす環境の隔離で決まるので、対策は VM やネットワークの側で取ります。
PentestGPT はどんな人に向くか
| 目的 | 向く形 |
|---|---|
| CTF や演習で、LLM の提案を見ながら自分の手で学ぶ | 対話型(pentestgpt-legacy) |
| Claude Code・Codex の契約があり、隔離した検証環境をまとめて回させたい | 自律型(pentestgpt-agent) |
| 本番の社内網から外部の対象を診断したい | どちらも不向き。隔離と書面の許可が先 |
見つけた脆弱性を実際に攻めて裏を取る型なら Strixとは|AIが実際に攻めてPoCで裏取りするOSSペンテスターを実測で解説、自己ホストの画面で複数のエージェントを回す型なら PentAGIとは|自律型AIペンテストOSSの仕組みと、既定設定で気をつける4点 と比べてください。どれを使う場合も、診断してよいのは自分の資産か、書面で許可を得た対象だけです。
参照ソース
- GreyDGL/PentestGPT(GitHub) — README・pyproject.toml・pentestgpt_agent/・HTB の記録(HEAD 2026-07-14、2026-11-09 確認)
- PentestGPT: Evaluating and Harnessing Large Language Models for Automated Penetration Testing(USENIX Security 2024)





