PentestGPTは、大規模言語モデルにターゲットを与えて自律的に動作させる、オープンソースの侵入テストエージェントです。デフォルトモードでは、偵察(recon)、攻略(exploit)、解説(walkthrough)の順に処理を進め、各段階の結果が次の段階に引き継がれます。ペンテストモードに切り替えると、段階は資産発見、脆弱性特定、レポート作成に変わります。いずれのモードでも人間が処理の途中に介入することはありません。

このエージェントはClaude CodeやCodexを操作し、ツールを実行しながら次に何を試すかを自ら判断します。オリジナル版はGelei Deng氏らによって発表され、USENIX Security 2024で論文として公開されました。
必要なインストール環境
必要なのは、Python 3.12以降、パッケージマネージャーのuv、そして認証済みの2つのコマンドラインツール、Claude CodeとCodexです。Dockerイメージには両方のCLIが同梱されているため、一度ログインすればトークンがボリュームに保存され、コンテナを再作成してもログイン状態が維持されます。ただし、ChatGPTのリフレッシュトークンは一度しか使えない仕様のため、Codexのログイン情報を事前に組み込んでおくことはできません。そのため、OAuthコールバックはsocat経由で転送される仕組みになっています。この点は、チーム向けにイメージを構築しようとする際に最初にぶつかる重要なポイントです。
旧設計はpentestgpt-legacyとして現在も利用可能です。これは3つのLLMセッションが協調して動作する仕組みで、それぞれ推論、生成、解析の役割を担い、ユーザーが対話的にセッションを操作する間、共同でPentesting Task Treeを維持します。
このヒューマン・イン・ザ・ループ型のモードは、自律型パイプラインよりも多くのプロバイダーにネイティブ対応しています。対応先はOpenAI、Anthropic、Google Gemini、DeepSeek、xAI、Qwen、Moonshot、そしてOllama経由のローカルモデルです。モデルレジストリは2026年6月にWeb検証が行われており、これはモデルIDが古くなりやすいことを裏付けています。組み込みのスモークテストでは、設定済みの各モデルに対して実際に往復通信を行い、合否のマトリクスを表示できるため、リストを信用する前に一度実行しておく価値があります。
クライアントに向けて使う前にテレメトリを確認する
PentestGPTはデフォルトで、匿名の利用データをLangfuseプロジェクトに送信します。送信されるのは、ターゲットの種類、実行時間、完了ステータスといったセッションのメタデータ、実行されたツールの情報、そしてフラグが発見されたという事実のみです。コマンドの出力結果、認証情報、フラグの値そのものが送信されることは一切ありません。この区別こそが、クライアントの顧問弁護士が気にするポイントであり、送信をオプトアウトするにはコマンドラインフラグまたは環境変数のいずれかを設定するだけで済みます。
PentestGPTはGitHubで無料公開されています。
翻訳元: https://www.helpnetsecurity.com/2026/08/12/pentestgpt-open-source/