GreyDGL/PentestGPT

Automated Penetration Testing Agentic Framework Powered by Large Language Models

PentestGPT – AI 驅動的自主滲透測試代理

是什麼 – PentestGPT 是一個基於 Python 的命令列工具,協調大型語言模型(LLM)以執行自動化滲透測試或奪旗(CTF)挑戰。該工具在 USENIX Security 2024 論文中被介紹,並採用 MIT 許可證發布。

主要功能

  • 多階段流水線 – 代理執行固定順序的階段(CTF 中為「偵察 → 漏洞利用 → 走查」,真實滲透測試中為「資產發現 → 脆弱性識別 → 報告」),並將每個階段的輸出傳遞給下一階段。
  • 自主模式 – 使用 Claude Code 或 Codex 後端,在無需人工輸入的情況下執行工具並做出決策。
  • 遺留互動模式pentestgpt-legacy 執行三個協作的 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 論文,以及倉儲的 READMEdocs/ 資料夾。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案