概述
安裝
內容詳情
替代品
什麼是AutoPentest?
AutoPentest是一個智能化的Web應用滲透測試自動化平臺。它將資深安全專家的測試方法論編碼成可執行的流程,通過Claude AI驅動多個專業角色代理(偵察員、分析員、攻擊員、報告員)協同工作,自動完成從信息收集到漏洞驗證的完整滲透測試流程。 與傳統手動測試相比,AutoPentest能確保測試的全面性和一致性;與自動化掃描器相比,它能進行更深度的邏輯漏洞測試和多步驟攻擊鏈驗證。如何使用AutoPentest?
使用AutoPentest非常簡單: 1. 安裝必要的依賴(Docker、Claude Code CLI) 2. 運行`make setup`一鍵部署所有安全工具 3. 啟動Claude Code並指定目標URL 4. AutoPentest將自動執行7個階段的完整測試流程 5. 查看生成的詳細滲透測試報告 您可以通過配置文件驅動測試,也可以交互式地指定測試範圍和目標。適用場景
AutoPentest適用於以下場景: • Web應用安全評估:對內部或外部Web應用進行全面的安全測試 • 持續安全測試:集成到CI/CD流程中,定期檢查應用安全性 • 紅隊演練:模擬真實攻擊者的行為,測試防禦體系的有效性 • 安全培訓:作為學習Web安全測試的教學工具 • 漏洞賞金:幫助安全研究人員快速發現潛在漏洞 特別適合需要系統化、可重複測試的企業安全團隊。主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"wstg-pentest": {
"command": "uv",
"args": ["--directory", "./server", "run", "server.py"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}🚀 AutoPentest
一款智能的滲透測試MCP服務器,它利用完整的OWASP Web安全測試指南和PortSwigger Web安全學院的技術參考,實現了Web應用程序滲透測試的自動化。
將其指向目標——它會爬取你的應用程序,映射每個端點,然後生成特定角色的代理(偵察員、分析員、攻擊者、報告員)來測試XSS、SQLi、SSRF、SSTI、IDOR等漏洞。無誤報——每個發現都有真實、可重現的證據支持,並且在每個階段都有質量門確保證據的有效性。它包含31個PortSwigger技術指南、針對12個供應商的自適應WAF規避、跨階段漏洞鏈以及基於風險的端點優先級排序。你可以使用Claude Code、API運行它,也可以使用Ollama模型完全離線運行。
可以這樣理解:它就像是將高級滲透測試人員的方法編碼到MCP服務器中——包含109個OWASP測試、31個PortSwigger攻擊技術指南、68 + MCP工具、27個安全工具、4個專門的代理角色、7個結構化階段、自動化質量保證以及零上下文最終審查。
🚀 快速開始
前提條件
- Docker(macOS/Windows使用Docker Desktop,Linux使用Docker Engine)
- Claude Code CLI,並擁有有效的Anthropic API密鑰
- uv(MCP服務器的Python包管理器)
- Node.js(用於Playwright MCP服務器)
- 可選:Burp Suite Professional,用於被動流量監控
安裝
# 1. 克隆倉庫
git clone https://github.com/bhavsec/autopentest-ai.git
cd autopentest-ai
# 2. 為MCP服務器安裝Python依賴項
cd server && uv sync && cd ..
# 3. 構建Docker鏡像並啟動工具容器
make setup
至此,所有27個安全工具已安裝完畢,可在Docker容器中使用。
驗證安裝
# 檢查所有工具是否安裝
make verify-tools
# 預期輸出:
# [+] nuclei: installed
# [+] httpx: installed
# [+] katana: installed
# ... (共27個工具)
開始測試
# 在項目目錄中啟動Claude Code
claude
然後告訴Claude要測試的目標:
Run a full WSTG assessment against https://target.example.com
✨ 主要特性
全面的OWASP覆蓋
- 109個WSTG測試用例,涵蓋12個類別——從信息收集到API測試。
- 每個測試都包含分步的CLI程序、特定上下文的有效負載、檢測標準和嚴重性分級。
- 測試按優先級(MUST/SHOULD)進行排序,並帶有條件觸發機制,確保不會遺漏任何相關內容。
31個PortSwigger攻擊技術指南
- 源自PortSwigger Web安全學院——包含檢測方法、利用技術、有效負載、速查表和WAF繞過模式。
- 按漏洞類別(SQLi、XSS、SSRF、JWT、OAuth等)組織,方便在測試期間直接使用。
- 集成到每個測試階段——代理在測試每個漏洞類別之前會自動加載相關的技術指南。
- 特定數據庫/平臺的有效負載表(如SQLi的Oracle、MySQL、PostgreSQL、MSSQL,SSTI的Jinja2、Twig、Freemarker等)。
- 按繞過級別(基本→中級→高級)組織的WAF繞過模式。
27個預配置的安全工具
- 所有工具都預先安裝在單個Docker鏡像中——運行
make setup即可使用。 - 工具按階段組織:發現、注入測試、身份驗證、加密、API測試。
- 自動集成Burp Suite代理,用於被動流量監控。
結構化的7階段工作流程
- 階段0:應用程序發現與映射
- 階段1:信息收集與偵察
- 階段2:配置與部署測試
- 階段3:身份、認證、授權與會話管理
- 階段4:輸入驗證測試(流水線式XSS/SQLi/SSRF管道)
- 階段5:錯誤處理、加密、業務邏輯、客戶端和API測試
- 階段6:覆蓋驗證與報告
- 階段7:最終評審與修復
質量保證系統
- 自動化階段門——每個階段必須通過質量檢查才能繼續。
- 質量評審員子代理在每個階段轉換時識別差距並提出改進建議。
- 最終評審員——一個零上下文代理,像外部QA評審員一樣對整個測試進行冷評審。
- 窮盡門——標記為“無漏洞”需要有足夠的測試證據(最少技術和繞過嘗試)。
基於證據的發現
- 每個發現都需要可重現的curl命令和完整的請求/響應證據。
- 三級分類:已利用(已證明影響)、潛在(被控制阻止)、誤報(控制有效)。
- 反幻覺框架——在每個級別都強制執行“無利用 = 無發現”。
- 在記錄任何發現之前,會驗證每個漏洞類別的證據清單。
特定角色的子代理
- 4個專用角色,具有專注的提示模板、工具指導和反模式:
- 偵察員——僅進行偵察,在不發送有效負載的情況下映射攻擊面(階段0 - 1)。
- 分析員——使用金絲雀/見證有效負載識別潛在漏洞,構建利用隊列(階段2 - 5分析)。
- 攻擊者——使用分析員的輸出,用證據證明利用,並記錄確認的發現(階段4利用)。
- 報告員——質量評審和最終評審,在不發送請求的情況下審查數據(QA + 報告後)。
- 分析和利用之間的驗證檢查點可防止浪費精力。
- 每個角色都有明確的允許/限制工具列表和輸入/輸出合同。
流水線式利用(階段4)
- 3個獨立的兩階段管道並行運行:XSS、注入(SQLi/CMDi)、SSRF/SSTI。
- 每個管道:分析員(發現→分析→排隊)→驗證檢查點→攻擊者(利用→記錄)。
- 每個管道加載其PortSwigger技術指南,用於檢測方法、速查表和WAF繞過模式。
- WAF情報在所有管道中共享。
- 針對13種漏洞類型的上下文感知見證有效負載。
自適應WAF規避
- 自動WAF指紋識別,從響應頭、主體和狀態碼中識別12個WAF供應商(Cloudflare、AWS WAF、Akamai、Imperva、ModSecurity、F5、FortiWeb、Sucuri、Barracuda、Wordfence、NAXSI、Citrix)。
- 特定供應商的繞過有效負載,按複雜度級別(基本→中級→高級)組織。
- WAF情報通過可交付系統在所有代理之間共享。
- 代理在首次收到阻止響應時自動識別WAF,並切換到定製的繞過有效負載。
跨階段知識圖
- 實體關係圖跟蹤端點、參數、技術、發現、cookie、域和用戶角色。
- 自動漏洞鏈通過BFS路徑查找,使用7個預定義的鏈模式:
- XSS + 缺少CSP,XSS + 弱cookie(無HttpOnly),開放重定向 + OAuth回調
- IDOR + 管理員角色,SSRF + 雲元數據,無鎖定 + 無MFA,CORS + 敏感端點
- 當鏈顯著增加影響時,提高嚴重性級別。
- 在測試過程中填充,在階段4後查詢以發現鏈。
分層任務樹
- 持久的樹結構(階段作為分支,測試作為葉子)防止LLM深度優先偏差和上下文丟失。
- 主代理維護戰略宏觀視圖;子代理僅更新其分配的葉子節點。
- 自動傳播:當所有子節點完成時,父節點自動完成。
- 階段級完成百分比,便於決策。
端點風險優先級排序
- 按風險對端點進行評分和排序,優先測試高風險端點。
- 評分因素:參數數量、技術風險指標、汙點鏈置信度、工具收斂性、認證要求、可注入參數名稱。
- 集成到階段0的端點映射生成中。
工具輸出解析
- 13個內置解析器,用於常見的CLI工具(nmap、nuclei、sqlmap、ffuf、httpx、whatweb、testssl、nikto、dalfox、katana、gau、wapiti、commix)。
- 將原始工具輸出壓縮3 - 5倍,同時保留關鍵發現、端點和錯誤。
- 可配置的詳細程度:摘要(約15行)、詳細(約50行)、完整(完整解析輸出)。
CLI工具結果驗證
- 自動驗證CLI工具輸出質量——檢測空輸出、代理錯誤、權限問題和可疑結果。
- 10個針對每個工具的驗證器(nmap、nuclei、sqlmap、ffuf、feroxbuster、testssl、dalfox、wapiti、katana、httpx),並提供修正命令建議。
- 當工具產生空或可疑輸出時,驗證器會建議修復措施(例如,為nmap添加
-Pn,刪除代理環境變量,嘗試不同的標誌)。 - 集成到工具執行工作流程中——代理在每次運行CLI工具後調用
verify_tool_result()。
漸進式上下文壓縮
- 階段摘要(約500 - 800字)在階段門通過時自動生成——以壓縮形式捕獲發現、覆蓋範圍、工具結果和攻擊面。
- 通過用結構化摘要替換原始歷史數據,防止長時間測試中的上下文退化。
get_engagement_summary()將所有階段摘要合併為一個單一概述,用於注入新的子代理提示。- 摘要作為可交付成果存儲——任何下游代理都可以訪問,而無需完整的測試歷史記錄。
反事實分析(二次發現)
- 在分析員發現漏洞後,會生成一個第二個分析員,並指示其“假設這些漏洞已修復”。
- 反事實分析員會搜索額外的漏洞:不同的端點、不同的參數、不同的注入上下文、邏輯缺陷。
- 結果會附加到現有的利用隊列中(通過端點+參數自動去重並自動遞增ID)。
- 基於PenHeal消融研究,顯示通過反事實提示可提高71%的漏洞覆蓋率。
多域支持
- 自動檢測和處理SSO/OAuth/OIDC/SAML。
- 按域進行範圍註冊、爬取和測試。
- 管理跨域會話持久性的cookie jar。
- 6級認證失敗升級(替代授權→PKCE→無頭瀏覽器→令牌提取→用戶配置→未認證)。
崩潰安全的測試管理
- 追加式的
findings.md和progress.log可在崩潰後倖存。 - 具有回滾功能的Git工作區檢查點。
- 中斷後自動恢復——
resume-prompt.md在每個檢查點自動生成,包含完整的上下文(目標、憑據、當前階段、剩餘測試、範圍)。將其粘貼到新會話中即可從斷點繼續。 - 階段內檢查點粒度——跟蹤階段內哪些測試已完成,而不僅僅是階段級狀態。
- 每個MCP工具調用的完整審計跟蹤,帶有時間戳。
專業報告
- Markdown報告,包含執行摘要、按嚴重性分類的發現、測試覆蓋矩陣和工具覆蓋情況。
- 按類別劃分的覆蓋百分比和差距分析。
- 記錄漏洞鏈分析。
- 包含最終評審員的觀察和質量說明。
📦 安裝指南
前提條件
- Docker(macOS/Windows使用Docker Desktop,Linux使用Docker Engine)
- Claude Code CLI,並擁有有效的Anthropic API密鑰
- uv(MCP服務器的Python包管理器)
- Node.js(用於Playwright MCP服務器)
- 可選:Burp Suite Professional,用於被動流量監控
安裝步驟
# 1. 克隆倉庫
git clone https://github.com/bhavsec/autopentest-ai.git
cd autopentest-ai
# 2. 為MCP服務器安裝Python依賴項
cd server && uv sync && cd ..
# 3. 構建Docker鏡像並啟動工具容器
make setup
驗證安裝
# 檢查所有工具是否安裝
make verify-tools
# 預期輸出:
# [+] nuclei: installed
# [+] httpx: installed
# [+] katana: installed
# ... (共27個工具)
💻 使用示例
選項A:交互模式
啟動Claude Code並提供目標:
Run a full pentest against https://app.example.com
Credentials: admin / P@ssw0rd123
Claude會詢問任何缺失的信息(如憑據),並開始7階段工作流程。
選項B:配置驅動模式(推薦)
創建一個YAML配置文件,用於可重複、一致的評估:
# configs/my-target.yaml
target:
url: https://app.example.com
scope:
- app.example.com
- api.example.com
exclude:
- cdn.example.com
authentication:
login_type: form
login_url: https://app.example.com/login
credentials:
username: testuser@example.com
password: secret123
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Sign In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "Do not test logout"
type: path
url_path: "/logout"
focus:
- description: "Prioritize API endpoints"
type: path
url_path: "/api"
reporting:
tester_name: "Security Team"
然後在Claude Code中:
Load the config from configs/my-target.yaml and run the pentest
選項C:針對性測試
針對特定端點運行特定的WSTG測試:
Run WSTG-INPV-05 (SQL Injection) against https://app.example.com/search?q=
Test https://app.example.com for CORS misconfiguration (WSTG-CONF-13)
Run all authentication tests (WSTG-ATHN) against https://app.example.com
選項D:恢復中斷的測試
Resume engagement pentest-2026-02-11-myapp
📚 詳細文檔
測試階段
階段0:應用程序發現與映射
這是關鍵的基礎階段。Claude自動執行以下操作:
- 預檢——驗證目標可達性,檢測重定向和跨域認證。
- 並行啟動10 + 後臺工具(katana、ffuf、nuclei、whatweb、gau、nmap、feroxbuster、wapiti、httpx)。
- 遞歸爬取——跟隨鏈接到深度2 - 3,解析HTML/JS以查找端點。
- 目錄暴力破解——使用常見路徑和特定技術的字典。
- 工具結果攝取——讀取所有後臺工具的輸出,併合併到統一的端點映射中。
- 構建結構化端點清單,包含參數、認證要求和優先級排名。
輸出:按域組織的完整端點映射,可用於系統測試。
階段1 - 2:偵察與配置
- 服務器指紋識別、技術檢測、元數據審查。
- 安全頭分析(HSTS、CSP、CORS、X-Frame-Options)。
- TLS配置測試、管理界面發現。
- HTTP方法測試、文件擴展名處理。
階段3:認證、授權與會話管理
- 角色/權限格在測試前構建(映射防護、中間件和繞過測試)。
- 對每個端點使用多個替代ID進行IDOR測試。
- 在每個狀態更改端點上進行CSRF測試。
- 會話固定、劫持和令牌分析。
- JWT漏洞測試(如果適用)。
- OAuth/OIDC弱點測試(如果適用)。
階段4:輸入驗證(高影響)
三個獨立的兩階段管道並行運行,每個管道使用分析員→攻擊者的角色劃分:
| 管道 | 漏洞類別 | 工具 | 技術指南 |
|---|---|---|---|
| XSS管道 | 反射型XSS、存儲型XSS、DOM XSS | dalfox、Playwright | XSS、DOM |
| 注入管道 | SQL注入、命令注入、NoSQL注入 | sqlmap、commix、nosqli | SQLI、CMDI、NOSQLI |
| SSRF/SSTI管道 | SSRF、SSTI、路徑遍歷 | sstimap、ssrfmap | SSRF、SSTI、PTRAV |
每個管道:分析員(發現→分析→構建利用隊列)→驗證檢查點→攻擊者(嘗試利用→證明影響→記錄發現)。WAF規避情報在所有管道中共享。
階段5:錯誤處理、加密、業務邏輯、客戶端和API
- 堆棧跟蹤和錯誤消息披露。
- 通過testssl.sh進行TLS/SSL測試。
- 業務邏輯繞過(工作流規避、請求偽造)。
- 客戶端測試(點擊劫持、開放重定向、DOM操作)。
- GraphQL和REST API測試。
- 對所有發現進行漏洞鏈分析。
階段6:報告
- 覆蓋驗證(測試覆蓋 + 工具覆蓋)。
- 發現去重和嚴重性校準。
- 生成Markdown報告,包含執行摘要、發現、覆蓋矩陣。
階段7:最終評審
一個零上下文代理對整個測試進行冷評審——不瞭解測試決策或困難。它檢查:
- 覆蓋完整性——蓋章測試、缺失的端點。
- N/A級聯檢測——過度標記為“不適用”的類別。
- 發現質量——證據完整性、嚴重性一致性、鏈機會。
- 工具利用率——運行但未審查輸出的工具、懶惰跳過的原因。
- 錯過的攻擊面——未測試的端點、未測試的參數、未測試的域。
裁決(通過/有條件通過/失敗)會觸發特定的修復措施,然後再交付報告。
安全工具
發現與偵察(階段0)
| 工具 | 用途 | 關鍵標誌 |
|---|---|---|
| katana | 具有JS渲染功能的Web爬蟲 | -jc用於JavaScript爬取 |
| httpx | HTTP探測、技術檢測 | -tech-detect -status-code -title |
| ffuf | 目錄/參數模糊測試 | -w wordlist -mc all -fc 404 |
| feroxbuster | 遞歸目錄枚舉 | --smart --auto-tune |
| nuclei | 基於模板的漏洞掃描器 | -t cves/ -t misconfigurations/ |
| nikto | Web服務器配置錯誤檢測 | -Tuning 1234567890 |
| whatweb | 技術指紋識別 | --aggression 3 |
| nmap | 端口和服務掃描 | -sV -sC --top-ports 1000 |
| gau | 歷史URL發現 | --blacklist png,jpg,gif |
| subfinder | 子域枚舉 | -silent -all |
注入測試(階段4)
| 工具 | 用途 | 關鍵標誌 |
|---|---|---|
| sqlmap | SQL注入(所有技術) | --batch --risk 3 --level 5 |
| dalfox | XSS掃描與利用 | --skip-bav --deep-domxss |
| commix | 命令注入 | --batch --all |
| sstimap | 服務器端模板注入 | -u <url> |
| ssrfmap | SSRF利用 | -r request.txt |
| nosqli | NoSQL注入 | -u <url> |
| crlfuzz | CRLF注入/HTTP拆分 | -u <url> |
| smuggler | HTTP請求走私 | -u <url> |
認證與會話(階段3)
| 工具 | 用途 | 關鍵標誌 |
|---|---|---|
| hydra | 憑據暴力破解 | -L users.txt -P pass.txt |
| jwt_tool | JWT令牌分析與利用 | -t <token> -M at |
加密與API(階段5)
| 工具 | 用途 | 關鍵標誌 |
|---|---|---|
| testssl.sh | TLS/SSL配置測試 | --severity HIGH --sneaky |
| graphql-cop | GraphQL安全測試 | -t <url> |
| websocat | WebSocket測試 | ws://<url> |
基礎設施(階段2)
| 工具 | 用途 |
|---|---|
| corscanner | CORS配置錯誤掃描 |
| dnsreaper | 子域接管檢測 |
瀏覽器自動化
| 工具 | 用途 |
|---|---|
| Playwright | DOM XSS證明、點擊劫持、JS渲染登錄、客戶端存儲檢查 |
WSTG知識庫
涵蓋12個OWASP類別的109個測試用例,每個用例都有特定的CLI程序:
| 代碼 | 類別 | 測試數量 | 示例 |
|---|---|---|---|
| INFO | 信息收集 | 10 | 搜索引擎發現、服務器指紋識別、元數據審查 |
| CONF | 配置與部署 | 14 | 安全頭、CORS、CSP、HSTS、管理界面 |
| IDNT | 身份管理 | 5 | 角色定義、註冊、賬戶枚舉 |
| ATHN | 認證 | 11 | 默認憑據、鎖定、認證繞過、MFA、密碼策略 |
| ATHZ | 授權 | 5 | 目錄遍歷、授權繞過、權限升級、IDOR |
| SESS | 會話管理 | 11 | Cookie屬性、CSRF、會話固定/劫持、JWT |
| INPV | 輸入驗證 | 20 | XSS、SQLi、CMDi、SSTI、SSRF、路徑遍歷、XXE、LDAP |
| ERRH | 錯誤處理 | 2 | 錯誤消息、堆棧跟蹤 |
| CRYP | 加密 | 4 | TLS配置、填充預言機、弱加密 |
| BUSL | 業務邏輯 | 10 | 工作流繞過、請求偽造、文件上傳、速率限制 |
| CLNT | 客戶端 | 14 | DOM XSS、點擊劫持、開放重定向、WebSocket、存儲 |
| APIT | API測試 | 3 | GraphQL、REST、SOAP |
每個測試文件包括:
- 分步的CLI程序(curl命令、工具調用)。
- 按繞過級別(基本、中級、高級)組織的有效負載。
- 帶有嚴重性評估分級的檢測標準。
- 帶有參考的修復指南。
PortSwigger技術指南
31個攻擊技術參考指南源自PortSwigger Web安全學院,按漏洞類別組織,可直接用於實際滲透測試。
包含內容
| 代碼 | 類別 | WSTG映射 | 關鍵內容 |
|---|---|---|---|
| SQLI | SQL注入 | INPV - 05 | UNION/盲注/錯誤/時間/OOB技術、特定數據庫的速查表(Oracle、MySQL、PostgreSQL、MSSQL)、WAF繞過 |
| XSS | 跨站腳本攻擊 | INPV - 01、INPV - 02、CLNT - 01 | 反射型/存儲型/DOM上下文、標籤和事件處理程序有效負載、CSP繞過、過濾器規避 |
| CMDI | OS命令注入 | INPV - 12 | 分隔符字符、盲注技術(時間延遲、OOB)、特定操作系統的有效負載 |
| SSTI | 服務器端模板注入 | INPV - 18 | Jinja2/Twig/Freemarker/Velocity/ERB檢測與利用、沙箱逃逸 |
| SSRF | 服務器端請求偽造 | INPV - 19 | URL方案技巧、IP混淆、DNS重綁定、雲元數據、過濾器繞過 |
| PTRAV | 路徑遍歷 | INPV - 04 | 編碼變體、空字節注入、包裝器繞過 |
| XXE | XML外部實體 | INPV - 07 | 文件檢索、通過XXE的SSRF、帶有OOB的盲XXE、參數實體 |
| AUTHN | 認證 | ATHN - 01到ATHN - 07 | 暴力破解、2FA繞過、密碼重置中毒、憑據填充 |
| AUTHZ | 訪問控制 | ATHZ - 01到ATHZ - 04 | IDOR、權限升級、水平/垂直繞過、基於引用的控制 |
| JWT | JSON Web令牌 | SESS - 10 | 算法混淆(none/HS256→RS256)、kid注入、JWK/JKU利用 |
| OAUTH | OAuth 2.0 | ATHZ - 05 | 授權碼竊取、開放重定向、範圍升級、OAuth流程中的CSRF |
| CSRF | 跨站請求偽造 | SESS - 05 | 令牌繞過、SameSite繞過、引用驗證繞過 |
| SMUGGLE | HTTP請求走私 | INPV - 15 | CL.TE、TE.CL、TE.TE、HTTP/2降級、請求隧道 |
| DOM | 基於DOM的漏洞 | CLNT - 01 | 源/匯、DOM覆蓋、原型汙染小工具 |
| CORS | 跨域資源共享 | CONF - 13、CLNT - 07 | 源反射、空源、子域信任利用 |
| NOSQLI | NoSQL注入 | INPV - 05 | MongoDB操作符注入、JavaScript注入、盲提取 |
| GRAPHQL | GraphQL | APIT - 01 | 內省、字段建議、批處理攻擊、授權繞過 |
| RACE | 競態條件 | BUSL - 04 | 限制超限、TOCTOU、單端點競賽、最後一幀同步 |
| UPLOAD | 文件上傳 | BUSL - 08、BUSL - 09 | 擴展名繞過、內容類型操作、Webshell、多用途文件 |
| HOST | 主機頭注入 | INPV - 17 | 密碼重置中毒、緩存中毒、基於路由的SSRF |
另外還有11個:CLICK、WS、CACHEPOIS、CACHEDEC、DESER、INFO、BUSL、PROTO、API、LLM、SKILLS。
使用方法
技術指南通過get_technique_guide() MCP工具集成到每個測試階段:
階段2 → 用於CONF - 13測試的CORS指南
階段3 → 用於認證/會話測試的AUTHN、AUTHZ、CSRF、JWT、OAUTH指南
階段4 → 用於輸入驗證的SQLI、XSS、CMDI、SSTI、SSRF、PTRAV、XXE指南
階段5 → 用於客戶端和業務邏輯的DOM、CLICK、GRAPHQL、RACE、UPLOAD指南
每個並行測試代理在測試前自動加載其相關的技術指南,提供:
- 檢測有效負載——用於識別漏洞的注入內容。
- 利用技術——按攻擊方法組織,包含分步程序。
- 速查表——特定數據庫/平臺的語法表,便於快速參考。
- WAF繞過模式——編碼、混淆和過濾器規避策略。
添加自定義指南
有關向知識庫添加新技術指南的說明,請參閱。
質量保證系統
AutoPentest擁有多層次的質量保證系統,可防止淺嘗輒止的測試:
1. 階段門(自動化)
每個階段結束後,phase_gate_check()驗證:
- 所有MUST優先級的測試都已執行。
- 達到最低覆蓋閾值。
- 工具覆蓋足夠。
- 不存在關鍵差距。
被阻止的階段在所有問題解決之前無法繼續。
2. 質量評審員(每個階段)
在每個階段轉換時生成的子代理,它:
- 檢查16種已知的反模式(蓋章測試、N/A級聯、發現膨脹)。
- 識別未測試的端點和參數。
- 建議漏洞鏈機會。
- 為被阻止的測試推薦替代方法。
3. 最終評審員(報告後)
一個零上下文代理,以全新的視角審查完成的測試:
- 分析所有域的覆蓋完整性。
- 檢測N/A級聯及其根本原因。
- 驗證發現質量和證據完整性。
- 識別錯過的攻擊面。
- 給出裁決:通過、有條件通過或失敗。
4. 窮盡門
將漏洞標記為“不可利用”需要有努力的證據:
| 漏洞類別 | 最小技術數量 | 最小繞過嘗試次數 |
|---|---|---|
| XSS | 3 | 5 |
| SQL注入 | 3 | 5 |
| 命令注入 | 3 | 5 |
| SSTI | 2 | 3 |
| SSRF | 3 | 5 |
| 路徑遍歷 | 3 | 5 |
5. 證據清單
在記錄任何發現之前,會驗證證據要求:
- 可重現的curl命令。
- 完整的HTTP請求和響應。
- 實際利用的證明(不是理論影響)。
- 正確的分類級別(已利用 vs 潛在)。
6. 即時測試日誌
每個MCP工具調用都會自動記錄到engagements/<eid>/logs.txt,包含完整的參數、結果和執行時間。在單獨的終端中運行tail -f logs.txt,可以即時查看所有代理活動。通過自動工具包裝器實現100%覆蓋——無需手動插樁。
7. 階段門時間
階段門強制執行每次調用之間至少60秒的間隔(CTF模式下為15秒),防止過早完成階段。如果連續門之間的工作事件少於3個,會發出門間工作驗證警告。
基準測試
AutoPentest集成了XBOW驗證基準——104個CTF風格的Docker挑戰,用作AI滲透測試代理基準測試的行業標準。
基準分數(參考)
| 代理 | 分數 | 來源 |
|---|---|---|
| Shannon | 96.2% | KeygraphHQ (2024) |
| PentestGPT | 86.5% | USENIX Sec 2024 |
使用方法
# 一次性設置
cd benchmarks/xbow && make setup
# 使用AutoPentest解決(MCP服務器 + CLAUDE.md + CTF模式)
make solve ID=XBEN-001-24
# 使用原始Claude解決(基線 — 無MCP,無方法)
make solve ID=XBEN-001-24 RAW=1
# 按漏洞標籤解決
make solve-tag TAG=sqli
# 解決所有104個挑戰
make solve-all
# 完整的基線運行以進行比較
make solve-all RAW=1
# 對最新運行進行評分
make score
# 並排比較autopentest和原始運行
make compare
求解器有兩種模式:
- autopentest(默認):從項目根目錄運行Claude Code,加載
.mcp.json(具有68 + 工具的MCP服務器)和CLAUDE.md(滲透測試方法)。衡量AutoPentest的完整能力。 - raw (
RAW = 1):運行原始Claude Code,無MCP服務器或方法。用於衡量AutoPentest相對於原始LLM能力的附加值的基線。
每個挑戰都是一個Docker Compose應用程序,在構建時注入了標誌。從Claude的輸出中提取標誌來確定通過/失敗。結果按每個挑戰、每個標籤和每個難度級別進行評分。
CTF模式
對於CTF挑戰和小型應用程序,啟用CTF模式以放寬質量門:
mode: ctf
target:
url: https://target.com
CTF模式減少階段門時間(15秒 vs 60秒),跳過QA評審員要求,並將完成閾值減半——同時保持發現質量和證據標準。
示例報告
倉庫中包含了對PortSwigger的Gin & Juice Shop(一個故意存在漏洞的應用程序)進行滲透測試的完整示例報告:
查看完整報告
報告內容
該報告展示了AutoPentest對真實目標的輸出,涵蓋所有嚴重級別的23個發現:
| 嚴重級別 | 數量 | 示例 |
|---|---|---|
| 關鍵 | 2 | 基於UNION的SQL注入,可進行完整數據提取;通過X - Original - URL頭繞過訪問控制 |
| 高 | 5 | 通過JS字符串轉義繞過的反射型XSS;訂單詳情的IDOR;具有本地文件讀取功能的XXE;通過原型汙染的DOM XSS |
| 中 | 6 | 缺少安全頭;無賬戶鎖定;缺少CSP;CRLF注入;基於DOM的開放重定向 |
| 低 | 5 | 基礎設施信息洩露;過時的AngularJS;不安全的ALB cookie;弱TLS配置 |
| 信息 | 5 | 合併重複項和主要發現的次要證據 |
報告結構
1. 執行摘要 —— 目標範圍、發現摘要、域架構
2. 詳細發現 —— 每個發現都有描述、證據(curl命令)和修復建議
3. 漏洞鏈分析 —— 跨發現分析(例如,XSS + 無CSP = 嚴重性升級)
4. 測試覆蓋矩陣 —— 12個類別中每個類別的WSTG覆蓋情況(100%)
5. 工具覆蓋矩陣 —— 跟蹤27個工具,其中8個被積極使用
示例發現(SQL注入)
報告中的一個關鍵SQL注入發現,帶有完整的利用證據:
FINDING - 017: SQL Injection in /catalog category parameter — Full Data Extraction
Severity: Critical
WSTG Reference: WSTG - INPV - 05
The category parameter is vulnerable to UNION - based SQL injection.
The attacker can:
1. Inject a single quote to cause a 500 error (confirming injection)
2. Use UNION SELECT with 8 columns to extract arbitrary data
3. Enumerate tables: PRODUCTS, TRACKING, USERS
4. Extract credentials from the USERS table
Evidence (reproducible curl command):
curl -sk "https://ginandjuice.shop/catalog?category='+UNION+SELECT+1,USERNAME,PASSWORD,
1,1,USERNAME,1,USERNAME+FROM+USERS+LIMIT+10--"
每個發現都包含可重現的curl命令、完整的請求/響應證據和可操作的修復建議。
配置
測試配置(YAML)
基於配置的滲透測試可以跳過交互式問題,確保一致性:
target:
url: https://app.example.com
scope: [app.example.com, api.example.com]
authentication:
login_type: sso # form | sso | api | manual | none
login_url: https://app.example.com/login
credentials:
username: testuser
password: secret123
sso:
provider: keycloak # keycloak | auth0 | okta | azure_ad
auth_domain: auth.example.com
realm: myrealm
client_id: my - app
rules:
avoid:
- { type: path, url_path: "/logout", description: "Skip logout" }
- { type: endpoint, method: DELETE, url_path: "/api/admin/*", description: "No destructive admin ops" }
focus:
- { type: path, url_path: "/api", description: "Prioritize API" }
reporting:
tester_name: "Security Team"
MCP服務器配置
.mcp.json文件註冊了兩個MCP服務器:
{
"mcpServers": {
"wstg - pentest": {
"command": "uv",
"args": ["--directory", "./server", "run", "server.py"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}
Burp Suite集成(可選)
要通過Burp Suite Professional進行被動流量監控:
- 啟動Burp Suite並在所有接口上啟用代理(
0.0.0.0:8080)。 - Docker容器會自動將流量路由到
host.docker.internal:8080。 - 所有HTTP請求都會出現在Burp的代理歷史記錄中,以便手動審查。
多域測試
AutoPentest對具有多個域的應用程序(例如,SPA前端 + API後端 + SSO提供商)提供一流的支持:
自動檢測
在階段0期間,AutoPentest通過跟蹤登錄重定向來檢測跨域認證:
app.example.com → redirects to → auth.example.com/login
→ after login → app.example.com/callback
所有域都會自動註冊到範圍內,並標明其類型(應用程序、認證提供商、API、CDN)。
按域測試
每個WSTG測試都會按域進行評估——而不僅僅是主域:
- 發現工具(katana、ffuf、nuclei)會對所有域運行。
- 輸入驗證工具(sqlmap、dalfox)會針對每個具有服務器端處理的域上的端點。
- 只有當沒有域具有被測試的功能時,測試才會被標記為“不適用”。
跨域認證
支持的SSO協議:
- OAuth 2.0 / OIDC(授權碼、PKCE、密碼授予、客戶端憑據)
- SAML(SP發起的流程)
- Keycloak、Auth0、Okta、Azure AD
- 自定義SSO(跟隨重定向鏈並管理cookie jar)
認證升級程序(6級)確保即使在複雜的認證流程下也能繼續測試。
崩潰恢復
AutoPentest設計為能夠在中斷後繼續運行:
自動檢查點
- 階段門在通過時自動保存檢查點。
git_checkpoint()創建測試工作區的Git快照。- 追加式日誌(
findings.md、progress.log)在崩潰後仍然可用。
通過resume - prompt.md自動恢復(推薦)
每個檢查點和階段門都會自動生成engagements/<eid>/resume - prompt.md——一個完整的、自包含的提示,包含新會話所需的所有信息:
- 目標URL、認證憑據和範圍域。
- 當前階段和剩餘的特定測試(階段內精度)。
- cookie jar狀態和重新認證說明。
- 避免/聚焦規則和端點映射引用。
中斷後恢復的步驟:
- 打開一個新的Claude Code會話。
- 粘貼
engagements/<eid>/resume - prompt.md的內容。 - Claude會從斷點繼續,無需手動設置上下文。
從檢查點恢復(替代方法)
Resume engagement pentest - 2026 - 02 - 11 - myapp
這將恢復:
- 所有發現和測試跟蹤數據。
- 覆蓋統計和階段門結果。
- 範圍註冊和可交付成果。
- 階段內剩餘的測試(不僅僅是階段級狀態)。
- 下一步操作說明。
手動檢查點
隨時保存:
Save a checkpoint before starting Phase 4 exploitation
失敗時回滾
如果某個階段產生了不良結果,可以回滾到上一個檢查點:
Roll back the engagement to the last checkpoint
項目結構
autopentest - ai/
├── CLAUDE.md # 主滲透測試工作流(驅動Claude Code)
├── .mcp.json # MCP服務器配置
├── Dockerfile # 多階段Docker構建(27個工具)
├── docker - compose.yml # Docker Compose替代方案
├── Makefile # setup, start, stop, verify - tools, shell
│
├── server/
│ ├── server.py # FastMCP服務器(68 + MCP工具)
│ ├── task_tree.py # 分層任務樹(6個MCP工具)
│ ├── tool_parsers.py # 工具輸出解析(2個MCP工具,13個解析器)
│ ├── endpoint_priority.py # 端點風險優先級排序(2個MCP工具)
│ ├── waf_evasion.py # 自適應WAF規避(3個MCP工具,12個供應商)
│ ├── knowledge_graph.py # 跨階段知識圖(5個MCP工具)
│ ├── tool_verification.py # CLI工具結果驗證(1個MCP工具,10個驗證器)
│ ├── context_compression.py # 漸進式上下文壓縮(2個MCP工具)
│ └── pyproject.toml # Python依賴項
│
├── knowledge - base/
│ ├── web - security - testing - guide/ # OWASP WSTG知識庫(109個測試程序)
│ │ ├── 01 - information - gathering/ # 10個測試(WSTG - INFO - 01 → 10)
│ │ ├── 02 - configuration/ # 14個測試(WSTG - CONF - 01 → 14)
│ │ ├── 03 - identity - management/ # 5個測試 (WSTG - IDNT - 01 → 05)
│ │ ├── 04 - authentication/ # 11個測試(WSTG - ATHN - 01 → 11)
│ │ ├── 05 - authorization/ # 5個測試 (WSTG - ATHZ - 01 → 05)
│ │ ├── 06 - session - management/ # 11個測試(WSTG - SESS - 01 → 11)
│ │ ├── 07 - input - validation/ # 20個測試(WSTG - INPV - 01 → 20)
│ │ ├── 08 - error - handling/ # 2個測試 (WSTG - ERRH - 01 → 02)
│ │ ├── 09 - cryptography/ # 4個測試 (WSTG - CRYP - 01 → 04)
│ │ ├── 10 - business - logic/ # 10個測試(WSTG - BUSL - 01 → 10)
│ │ ├── 11 - client - side/ # 14個測試(WSTG - CLNT - 01 → 14)
│ │ └── 12 - api - testing/ # 3個測試 (WSTG - APIT - 01 → 03)
│ └── portswigger - academy/ # 31個PortSwigger攻擊技術指南
│ ├── sql - injection.md # UNION, blind, error - based, OOB, WAF bypass
│ ├── cross - site - scripting.md # Reflected, stored, DOM, CSP bypass, filter evasion
│ ├── ssrf.md # URL schemes, cloud metadata, DNS rebinding
│ ├── ssti.md # Jinja2, Twig, Freemarker sandbox escapes
│ ├── jwt.md # Algorithm confusion, kid injection, JWK exploitation
│ ├── oauth.md # Auth code theft, redirect exploitation, scope upgrade
│ └── ... (31 total) # One per vulnerability class
│
├── templates/ # 測試指南和程序
│ ├── input - validation - guide.md # 階段4的分步程序
│ ├── testing - strategies.md # 測試矩陣、鏈、並行策略
│ ├── cli - tools - guide.md # 工具設置和Docker管理
│ ├── tools.md # 每個工具的命令參考
│ ├── quality - gates.md # 階段質量檢查清單和反模式
│ ├── cross - domain - auth - guide.md # SSO/OIDC/SAML程序
│ ├── source - code - analysis.md # 安全聚焦的代碼審查模板
│ ├── pipelined - testing.md # 階段4的流水線式利用策略
│ ├── agent - roles/ # 特定角色的子代理模板
│ │ ├── README.md # 角色索引和選擇指南
│ │ ├── scout.md # 偵察角色(階段0 - 1)
│ │ ├── analyzer.md # 漏洞發現角色(階段2 - 5)
│ │ ├── exploiter.md # 利用證明角色(階段4)
│ │ └── reporter.md # QA審查 + 最終評審角色
│ ├── shared/
│ │ ├── honesty - framework.md # 反幻覺護欄
│ │ ├── exploit - classification.md # 三級發現分類
│ │ ├── reproducibility.md # 證據格式要求
│ │ └── scope - rules.md # 避免/聚焦規則模板
│ └── wordlists/ # 特定技術的模糊測試字典
│
├── benchmarks/
│ └── xbow/ # XBOW基準套件(104個CTF挑戰)
│ ├── runner.py # 挑戰編排
│ ├── solver.py # 自動求解器(Claude Code CLI)
│ ├── Makefile # solve, solve - all, score, compare
│ └── results/ # 運行報告
│
├── docs/
│ ├── ROADMAP.md # 競爭分析 + 改進路線圖
│ └── adding - knowledge - base - resources.md # 添加新技術指南的指南
│
├── configs/
│ ├── example - config.yaml # 示例測試配置
│ └── config - schema.md # YAML模式文檔
│
├── scripts/
│ ├── install - tools.sh # Docker構建 + 容器啟動
│ ├── browser - auth.py # 無頭Chromium認證(JS渲染的登錄)
│ ├── pkce - auth.py # OAuth 2.0 PKCE流程自動化
│ └── status.sh # 測試狀態儀表板
│
└── engagements/ # 運行時輸出(git忽略)
└── <engagement - id>/
├── logs.txt # 即時測試日誌(使用tail - f查看)
├── findings.md # 追加式發現日誌
├── progress.log # 帶時間戳的事件日誌
├── resume - prompt.md # 自動恢復提示(粘貼到新會話中)
├── report.md # 最終滲透測試報告
├── cookies.txt # 跨域cookie jar
└── tool - output/ # 原始CLI工具輸出
🔧 技術細節
代理角色系統
AutoPentest使用4個專門的代理角色,而不是通用的子代理。每個角色都有一個專用的提示模板,包含專注的工具指導、輸入/輸出合同和反模式。
| 角色 | 模板 | 目的 | 階段 |
|---|---|---|---|
| 偵察員 | templates/agent - roles/scout.md |
偵察和攻擊面映射 | 階段0 - 1,源代碼發現 |
| 分析員 | templates/agent - roles/analyzer.md |
使用金絲雀/見證有效負載發現漏洞 | 階段2 - 5分析 |
| 攻擊者 | templates/agent - roles/exploiter.md |
用證據證明利用 | 階段4利用 |
| 報告員 | templates/agent - roles/reporter.md |
質量審查和最終評審 | 階段轉換,報告後 |
管道工作原理
階段4(高影響測試)為每個漏洞類別使用兩階段管道:
┌──────────────────────────────────────────────────────────────┐
│ Pipeline 1: XSS │
│ │
│ Analyzer (75 turns) Exploiter (75 turns) │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Discover endpoints │ │ Load Analyzer queue │ │
│ │ Send canary payloads│─────▶│ Attempt exploitation│ │
│ │ Build exploit queue │ gate │ Prove impact │ │
│ │ Save deliverable │ │ Log findings │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ ▲ │
│ validate_exploitation_queue() │
└──────────────────────────────────────────────────────────────┘
三個管道(XSS、注入、SSRF/SSTI)並行運行。分析員和攻擊者之間的驗證檢查點確保只有格式良好的利用隊列才能繼續。
角色邊界
每個角色都通過提示強制執行明確的工具限制:
- 偵察員不能調用
log_finding()或發送攻擊有效負載。 - 分析員可以記錄配置發現(缺少頭、弱cookie),但不能記錄注入類發現。
- 攻擊者不能創建新隊列——他們使用分析員生成的隊列。
- 報告員不能向目標發送HTTP請求——他們只審查數據。
對於CTF挑戰和小型應用程序(<3個輸入端點),可以使用傳統的整體管道作為備用。
📄 許可證
免責聲明
本工具僅用於授權的安全測試。 僅在獲得明確許可的情況下使用AutoPentest對應用程序進行測試。未經授權訪問計算機系統是違法的。作者不對本工具的任何濫用負責。
始終確保你具備以下條件:
- 獲得應用程序所有者的書面授權。
- 明確界定可測試和不可測試的範圍。
- 瞭解測試環境(生產環境還是暫存環境)。
- 為破壞性或敏感端點配置適當的避免規則。
基於 Model Context Protocol 構建
替代品













