當漏洞掃描學會說人話:Nuclei 結合 LLM Agents 完整指南

當漏洞掃描學會說人話:Nuclei 結合 LLM Agents 完整指南

nuclei-llm-cover

半夜兩點,我盯著螢幕上第 47 個 Nuclei YAML template,眼睛已經開始脫窗。

這個 CVE 的 PoC 明明就在那裡,但要把它轉成一個能跑的 template,得搞定 matcher 的正則、設定 extractors、處理 redirect 邏輯......一個 template 寫下來四十分鐘過去了。而待處理的 CVE 清單上還有兩百多個。

那一刻我認真想過:「有沒有辦法讓 AI 幫我做這件事?」

答案是——不只可以,而且已經有一整個生態系在做這件事了。

前置知識

在開始之前,確認你對以下概念有基本認識:

  • Nuclei:ProjectDiscovery 開發的開源漏洞掃描器,用 YAML template 定義偵測邏輯
  • LLM Agent:具備工具調用能力的大型語言模型,能自主規劃和執行任務
  • MCP (Model Context Protocol):Anthropic 提出的標準化協議,讓 AI 與外部工具溝通

環境需求:

  • Nuclei v3.0+(go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
  • ProjectDiscovery Cloud API Key(免費註冊即可取得)

Nuclei 遇上 AI:不只是「加個功能」

nuclei-llm-integration-levels

Nuclei 和 LLM 的結合並不是簡單的「在掃描器旁邊放一個聊天機器人」。根據整合深度,可以分成四個層級,每一層都打開了不同的可能性。

層級一:-ai Flag — 一句話生成 Template

這是最低門檻的入口。Nuclei 從 v3 開始內建了 -ai 參數,背後接的是 ProjectDiscovery AI API YAML template 並直接執行。

# 先設定 API Key
nuclei -auth

# 用自然語言掃描
nuclei -ai "check for XSS in query parameters" -u https://target.com
nuclei -ai "detect open redirect on login page" -u https://target.com
nuclei -ai "find SQL injection in search functionality" -list urls.txt

這段指令背後發生的事:

  1. Nuclei 把你的自然語言 prompt 送到 ProjectDiscovery 的 AI 後端
  2. LLM 根據 prompt 生成符合 Nuclei 語法的 YAML template
  3. Nuclei 載入這個 template 並對目標執行掃描
  4. 回傳結果

聽起來很美好,但有幾個現實要面對:

  • 依賴外部 API:你的掃描意圖會送到 ProjectDiscovery 的伺服器
  • 免費額度有限:大量掃描會撞到 rate limit
  • 無法用自己的 LLM:想用本地模型?這條路走不通

不過作為入門體驗,這已經足夠讓你感受到「原來漏洞掃描可以這樣做」。

層級二:MCP Server — 讓 AI Agent 直接操控掃描器

如果說 -ai flag 是「AI 幫你寫 template」,那 MCP 整合就是「AI 自己決定什麼時候掃、怎麼掃、掃完怎麼分析」。

MCP (Model Context Protocol) 是 Anthropic 提出的標準化協議,讓 AI Agent 可以像調用函式一樣操控外部工具。目前已經有多個 Nuclei MCP Server 實現:

專案 語言 特色
addcontent/nuclei-mcp Go Template 管理、結果快取、並發操作
crazyMarky/mcp_nuclei_server Python Tag 過濾、JSON 結構化輸出
FuzzingLabs/mcp-security-hub 多語言 整合 Nmap + Ghidra + Nuclei + SQLMap + Hashcat

設定其實很簡單。以 Claude Desktop 為例:

{
  "mcpServers": {
    "nuclei": {
      "command": "go",
      "args": ["run", "cmd/nuclei-mcp/main.go"]
    }
  }
}

配置完成後,你可以直接對 Claude 說:

「幫我用 nuclei 掃描 example.com,重點檢查 nginx 和 node.js 相關的漏洞」

Agent 會自動:選擇對應 tag 的 templates → 執行掃描 → 解析 JSON 結果 → 用人類看得懂的語言告訴你發現了什麼。

這裡真正厲害的地方在於組合拳FuzzingLabs 的 mcp-security-hub 把多個安全工具封裝成 MCP server,一個 AI Agent 可以這樣工作:

你:「全面評估 example.com 的安全性」

Agent 的行動:
1. 用 Nmap 掃描開放端口
2. 根據發現的服務,選擇對應的 Nuclei templates
3. 執行漏洞掃描
4. 對可疑端點用 SQLMap 做深度測試
5. 整合所有發現,生成報告

整個過程你只下了一條指令。

層級三:Workflow 自動化 — DevSecOps Pipeline

nuclei-llm-automation

這一層不是給「人」用的,是給「流程」用的。

n8n 社群已經有現成的 workflow template,實現了這樣的自動化鏈路:

[mermaid 圖表 — 原始 HackMD 版本可正常渲染]

graph LR A[新 CVE 公布] --> B[n8n 觸發] B --> C[LLM 提取技術細節] C --> D[生成 Nuclei Template] D --> E[自動掃描資產] E --> F[結果寫入知識庫] F --> G[通知安全團隊]

ProjectDiscovery 自己也做了類似的事——他們的 nuclei-templates-ai 專案會自動監控新公布的 CVE,用 AI 生成對應的偵測 template,經過社群審核後併入官方 template 庫。

這意味著從 CVE 公布到你能偵測它,中間的時間差正在被壓縮到小時級別。

層級四:自主 Agent 框架 — AI 自己做滲透測試

這是目前最前沿的整合方式。不是「AI 輔助人」,而是「AI 自主規劃、執行、驗證」整個滲透測試流程。

後面會展開介紹這些框架,但先讓你感受一下:

# Pentest MCP Server 的 scope 定義
scope:
  targets:
    - example.com
  allowed_tools:
    - nuclei
    - nmap
    - sqlmap
  constraints:
    - no_dos_attacks
    - stay_in_scope

定義好 scope 後,AI Agent 會自主:偵察 → 發現攻擊面 → 選擇工具 → 執行測試 → 驗證漏洞 → 生成報告。整個過程有推理鏈可追蹤,不是黑盒操作。


工具生態全景:不只有 Nuclei

nuclei-llm-tool-ecosystem

Nuclei + LLM 只是這個領域的一角。過去兩年,AI 驅動的安全測試工具像雨後春筍一樣冒出來。我把它們分成幾類:

自主滲透測試 Agent

這些工具的目標是讓 AI 自己做完一場滲透測試。

工具 特色 適合誰
CAI 模組化框架、可追蹤推理鏈、Bug Bounty 就緒 專業安全研究者
PentAGI 知識圖譜記憶、跨任務學習 需要持續性測試的團隊
Nebula CLI 原生、自動化偵察 偏好命令列的分析師
Strix 整合 Nuclei + Caido + Playwright 端到端自動化測試
HackingBuddyGPT 支援離線 LLM 隱私優先的場景
PentestGPT AI 顧問模式(建議→人工確認) 學習中的安全新手

其中 CAI 值得特別關注。它來自 Alias Robotics,有學術論文支持(arXiv:2504.06017),架構上支持多種 LLM 後端,工具鏈可擴展,而且已經在實際的 Bug Bounty 場景中驗證過。

PentAGI 的獨特之處在於它的知識圖譜。用 Graphiti 存儲工具、目標、漏洞之間的語義關係,意味著 Agent 可以「記住」之前的發現,在後續任務中利用這些知識。這不是一次性的掃描,而是持續累積的安全智慧。

MCP 安全工具 Hub

這些不是單一工具,而是工具的「調度中心」:

  • HexStrike AI:整合 150+ 安全工具的 MCP server。從 nmap、gobuster、nuclei 到 hashcat、ghidra,幾乎涵蓋了滲透測試的所有環節。支援 Claude、GPT、Copilot 等主流 AI assistant。

  • Pentest-MCP-Server:在 Kali Linux Docker 容器中運行,帶 scope 管理系統。你可以用 scope.yaml 定義測試範圍,AI Agent 會嚴格在範圍內操作。

測試 LLM 本身安全性的工具

別忘了,LLM 自己也需要被測試:

  • Garak(NVIDIA):專門測試 LLM 的 prompt injection、jailbreak、幻覺等漏洞。支持 Claude、Llama、Mistral 等主流模型。
  • BurpGPT:Burp Suite 的 GPT 擴展,用 LLM 做被動掃描分析,能發現傳統掃描器漏掉的邏輯漏洞。

實戰:三種場景,三套工作流

nuclei-llm-future

講了這麼多工具,到底該怎麼選?取決於你的場景。

場景一:個人開發者 / 小專案

你只想快速檢查自己的 side project 有沒有明顯漏洞。

# 安裝 nuclei
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# 設定 API key
nuclei -auth

# 一句話掃描
nuclei -ai "scan for OWASP Top 10 vulnerabilities" -u https://myapp.com

# 針對性掃描
nuclei -ai "check for insecure CORS configuration" -u https://api.myapp.com

五分鐘搞定。不需要懂 YAML template 語法,不需要設定 MCP server。

場景二:安全團隊 / 中型組織

你需要 AI Agent 幫你做日常的安全巡檢,但要有人監督。

  1. 部署 Nuclei MCP Server
  2. 配置到 Claude Desktop / VS Code
  3. 自然語言驅動掃描:「掃描我們所有的 staging 環境,重點關注最近一個月的 CVE」
  4. Agent 分析結果:自動分類嚴重程度、建議修復優先順序

場景三:專業安全團隊 / Bug Bounty

你需要完整的自主滲透測試能力。

[mermaid 圖表 — 原始 HackMD 版本可正常渲染]

graph TD A[定義 Scope] --> B[AI Agent 自主偵察] B --> C{發現攻擊面} C --> D[subfinder: 子域名枚舉] C --> E[naabu: 端口掃描] D --> F[nuclei: 漏洞掃描] E --> F F --> G{發現漏洞?} G -->|是| H[sqlmap/深度驗證] G -->|否| I[擴大偵察範圍] H --> J[生成 PoC] J --> K[完整報告]

推薦工具組合:CAI 或 PentAGI 作為 Agent 框架 + HexStrike AI 作為工具 Hub。


踩坑與現實

聊了這麼多令人興奮的東西,該潑點冷水了。

AI 生成的 Template 不一定對。 我測試過 nuclei -ai 生成的 template,大約有 20-30% 會有誤報或漏報。LLM 很擅長生成「看起來對」的 YAML,但 matcher 的邏輯細節、edge case 處理,它做得並不完美。所以 AI 生成的 template 一定要人工審核。

自主 Agent 還不能完全信任。 CAI、PentAGI 這些工具雖然能自主操作,但它們偶爾會做出超出預期的事情。一定要設定好 scope 限制,而且最好在隔離環境中運行。

隱私是個問題。 -ai flag 會把你的掃描意圖送到外部 API。如果你測試的是內部系統,這可能不被允許。HackingBuddyGPT 支援本地 LLM,可以考慮作為替代方案。

工具碎片化嚴重。 這個領域每個月都有新專案冒出來,但大部分都是個人專案或早期階段,穩定性和維護性都是未知數。挑選時優先看有組織背書的(ProjectDiscovery、NVIDIA、Alias Robotics)。


這不是未來,這是現在

回到文章開頭那個半夜寫 template 的場景。現在的我會怎麼做?

打開終端機,輸入一行 nuclei -ai "detect CVE-2024-XXXX" — 然後去泡杯咖啡。

或者更進一步,配好 MCP server,讓 Claude 幫我做一輪完整的安全巡檢。我只需要在最後看報告、確認發現、決定修復優先順序。

AI 不會取代安全工程師,但會取代「不會用 AI 的安全工程師」。這句被用爛的話在安全測試領域格外真實——當你的對手已經在用 AI 找漏洞,你還在手寫 YAML,這場軍備競賽的結局不難預見。

工具都在那裡了,門檻從沒有這麼低過。該動手了。


延伸閱讀


#nuclei #LLM #AI安全測試 #MCP #滲透測試 #DevSecOps #資安工具


本文最初發布於 HackMD @BASHCAT

留言

這個網誌中的熱門文章

Arduino 課本可能沒教的事(1)

SI4432 搭配Arduino

燒錄 Arduino mini Pro 燒錄