GreyDGL/PentestGPT

Automated Penetration Testing Agentic Framework Powered by Large Language Models

PentestGPT – AI駆動の自律的ペネトレーションテストエージェント

何であるか – PentestGPTは、大規模言語モデル(LLM)をオーケストレーションして、自動ペネトレーションテストまたはキャプチャ・ザ・フラグ(CTF)チャレンジを実行するPythonベースのコマンドラインツールです。USENIX Security 2024論文で紹介され、MITライセンスでリリースされています。

主な機能

  • マルチステージパイプライン – エージェントは固定されたステージの順序(CTFでは「リコン → エクスプロイト → ワルトゥルー、実世界のペネトレーションテストでは「資産発見 → 脆弱性特定 → レポート」)を実行し、各ステージの出力を次のステージに渡します。
  • 自律モード – Claude CodeまたはCodexバックエンドを使用して、人間の入力なしでツールを実行し、意思決定を行います。
  • レガシーインタラクティブモードpentestgpt-legacyは、3つの協調するLLMセッション(推論、生成、パース)を実行し、ユーザーがnextmoretodoなどを使ってプロセスを制御できます。多くのプロバイダー(OpenAI、Anthropic、Gemini、DeepSeek、xAI、Qwen、Moonshot、Ollama)をサポートしています。
  • セッションの永続化 – テスト実行を保存して後で再開できます。
  • ライブウォークスルー&テレメトリ – 実行中のコンソール更新でエージェントの動作状況をリアルタイムで確認できます。オプションで匿名テレメトリがLangfuseエンドポイントに送信されます。

インストール

# クローンして依存関係をインストール(Python 3.12+ および uv を必要とします)
git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install          # `uv sync` を実行

Docker – 事前にビルドされたイメージには、ツールに加えてClaude CodeおよびCodex CLIがバンドルされています。make docker-*ターゲットを使用してビルドし、モデルプロバイダーに一度ログインし、コンテナ内でエージェントを実行できます。

クイック使用法

# デフォルトのCTFモード
pentestgpt --target 10.10.11.234

# フォーカスを指定
pentestgpt --target 10.10.11.50 \
          --instruction "WordPressサイト、プラグイン脆弱性に注目"

# フルペネトレーションテストワークフロー(資産発見 → 脆弱性 → レポート)
pentestgpt --target 10.10.11.234 --mode pentest

# 保存されたセッションを一覧表示
pentestgpt --list-sessions

インタラクティブレガシーモードのため:

pentestgpt-legacy                     # 最適なモデルを自動選択
pentestgpt-legacy --reasoning-model claude-opus-4-8 --parsing-model gemini-3.5-flash
pentestgpt-legacy --list-models       # 設定されたすべてのプロバイダー/モデルを表示

OPENAI_API_KEYANTHROPIC_API_KEYなどの環境変数により、対応するプロバイダーを有効にできます。

ベンチマーク – 著者らの2025年12月のXBOWスイート評価では、PentestGPTは104のチャレンジのうち90を解決(約86.5%の成功率)しました。ベンチマークコードはリポジトリ外にあります。

ライセンスおよび免責事項 – MITライセンス、教育および承認されたセキュリティテストのみを目的としています。


詳細は、公式ウェブサイト、USENIX論文、およびリポジトリのREADMEおよびdocs/フォルダを参照してください。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト