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 會話(推理、生成、解析),並允許使用者透過next、more、todo等指令引導流程。支援多種提供者(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_KEY、ANTHROPIC_API_KEY 等環境變數可啟用對應提供者。
基準測試 – 在作者 2025 年 12 月對 XBOW 套件的評估中,PentestGPT 解決了 104 個挑戰中的 90 個(約 86.5% 成功率)。基準測試程式碼位於倉儲外部。
授權與免責聲明 – MIT 授權,僅供教育與授權安全測試使用。
更多細節,請參閱官方網站、USENIX 論文,以及倉儲的 README 和 docs/ 資料夾。
相關
- 專案
- 專案
- 專案
- 專案
- 專案