先說一下,現在的 Claude 到底有多誇張
很多船員對 AI 的印象還停在「會聊天、會幫忙寫一段程式」。但這一代的 Claude、尤其是 Fable 5,早就不是那個只會回你一段文字的對話框了。
它能自己開工具、自己查 DNS、自己讀憑證紀錄、自己抓網頁回應,然後把一堆零散的線索串成一份有條理的報告。你給它一個網域,它能像一個真的會做事的資安研究員那樣,一步一步把這個目標的對外樣貌描出來——而且全程不用你盯著。
麻煩也在這裡:同一套能力,攻擊者也拿得到。以前要一個老手花半天做的偵察,現在一段提詞、幾分鐘就跑完。港口的防線,攻防兩邊同時被墊高,也同時被拉平。
只要你架了主機,你就有攻擊面
港口裡愈來愈多人開始自己架東西。無論你是用哪一種方式:
- 租一台 VPS 跑自己的網站。
- 家裡一台舊電腦或樹莓派,開個服務對外。
- Docker 一包、Cloudflare Tunnel 一接,網域就上線了。
- 跟著課程把報名系統、後台、知識庫架起來自己用。
只要對外開了一個網域,你的身分就從「船員」變成了「目標」。剩下的差別只有一個:你有沒有先用攻擊者的眼睛,把自己看過一遍。
用魔法來防禦魔法
道理很單純。壞魔法師開始用 AI 來摸你的城牆,那你最好的防守,就是搶先拿同一套魔法,自己先繞城一圈。
這就是「用魔法防禦魔法」。你不是要去打誰,你是要趕在壞人前面,先搞清楚自己哪扇門沒關、哪個舊服務忘了拆、哪道防護沒上。看到了,才修得到。
好處是你不用背那些工具的指令。真正要交給 Claude 的,是「攻擊者的思維和紀律」;偵察它跑、線索它判讀、報告它寫成你看得懂的話。
動手前,先把這兩條紅線釘死
這是整篇最重要、也最不能跳過的地方。用 AI 做滲透測試,威力很大,所以紀律要先立好:
- 只能對自己的資產做。你本人擁有、或拿到書面授權的網域才算數。範圍鎖在這個網域和它推導得出的子網域,跟你共用同一個 CDN、同一個機房的別人服務,一個都別碰。
- 全程唯讀、不破壞。不寫入、不刪除、不送表單、不註冊帳號、不上傳檔案;不登入、不暴力破解、不送惡意 payload;也不做阻斷服務或高頻掃描去拖垮服務。只做被動偵察:查 DNS、看憑證紀錄、讀 HTTP 標頭和狀態碼、看公開頁面、做技術指紋。
攻擊者真的會照什麼順序看?
有紀律的偵察不是亂槍打鳥,是一關一關照順序走。讓 Claude 跟著這條路線跑,你拿到的報告才會有條理:
- 被動偵察:先查 DNS(A/AAAA/NS/MX/TXT)、WHOIS,再用憑證透明度日誌(crt.sh)把子網域撈出來。
- 資產盤點:看每個子網域有沒有過 CDN/WAF,有沒有把真正的 origin IP 晾在外面。
- 存活與指紋:讀 HTTP 狀態碼、Server 標頭、技術棧、框架特徵,認出對方在跑什麼。
- 設定弱點稽核:安全標頭缺了沒(HSTS/CSP/X-Frame-Options)、有沒有忘了拆的殭屍資產、有沒有 origin 沒上 CDN 或 TLS 設錯。
- 敏感路徑探測(唯讀):試常見的洩漏路徑,但一定要抓實際回應內容驗證,不能只看狀態碼。
最關鍵的一條:絕不拿狀態碼當結論
這條規矩,是分辨「真懂」和「裝懂」的分水嶺,務必要寫進提詞裡。
講個最常見的誤判。你去打 /.env,伺服器回了一個 200,新手立刻喊「機密外洩了」。八成是錯的。現在很多前端是 SPA,它的 catch-all 路由對任何路徑都回首頁,所以你打什麼都回 200,那根本不是你的 .env 檔。
所以紀律就一句:抓 Content-Type 和實際 body,確認真假之後才准下判斷。凡是沒親手用工具驗過的,一律標成「未驗證/推測」,不准當事實、不准編造工具沒回傳的東西。真的能被利用的弱點,跟只是個風險訊號,要分清楚,別誇大。
先給你一段簡易檢查,現在就能跑
不用等學會全部,先把這段貼給 Claude,它就能幫你的網域做一輪入門體檢。短,但該守的紅線都綁進去了。
你是一名受我授權的資安研究員。我只給你一個公開網域,其餘資訊請自己從公開來源(DNS、憑證透明度日誌、HTTP 標頭)蒐集。請以攻擊者視角,找出這個目標的對外攻擊面與弱點。
規則:①只做唯讀偵察 —— 不利用漏洞、不登入、不暴破、不送表單、不上傳、不 DoS。②不要只看狀態碼下結論(例如 /.env 回 200 可能只是前端首頁),一定抓實際內容驗證。③沒親自驗證的事標「未驗證」,不要編。
最後給我:發現的弱點+證據+嚴重度+修補建議。
進階版:紅隊 OSINT 完整偵察提詞
這段是上面簡易版的「成人版」。它會逼 Claude 去做攻擊者真正會做的事:繞 CDN 找真實 origin、用 favicon hash 和 TLS 指紋反查主機、翻歷史紀錄挖殭屍資產、解析 JS bundle 和 CSP 找洩漏,最後對照 CVE。一樣,紅線全綁死——找到能接管的東西,只回報、不動手。目標網域換成你自己的,整段貼給 Claude。
【角色】
你是一名受我授權、經驗豐富的紅隊 OSINT 研究員。我只提供一個公開網域。
你的目標是:在完全不接觸目標內部、不執行任何破壞性動作的前提下,
盡可能還原這個目標的完整對外攻擊面,包括它「想藏卻沒藏好」的部分。
【授權與範圍】
- 本目標為我擁有或已書面授權測試的資產。範圍限該網域及可由公開資訊推導的
子網域、對外服務、雲端資產。
- 不得探測範圍外第三方資產(含共用 CDN/機房的他人服務、被指向的第三方 SaaS)。
【絕對禁止(不破壞原則,進階版同樣適用)】
- 唯讀偵察 only:不利用漏洞、不登入、不暴破、不送表單、不上傳、不註冊、
不 DoS、不做高頻掃描。
- 進階紅線:即使你找到疑似可接管的懸空 DNS(subdomain takeover)、可列舉的
雲端儲存桶、或外洩的金鑰 —— 只做「識別與佐證」,絕不實際接管、不存取桶內
物件、不使用任何撿到的憑證。發現即回報,不得驗證式利用。
【進階偵察方法論】
1. 基礎盤點:DNS(A/AAAA/NS/MX/TXT/CAA)、WHOIS、憑證透明度日誌(crt.sh)
完整列舉歷史子網域。
2. 繞過 CDN/找真實 origin IP(被動):
- 比對哪些子網域沒走 CDN(直接解析到裸 IP)。
- 歷史 DNS 記錄(DNS history/被動 DNS)找上 CDN 前的舊 A record。
- favicon hash(mmh3)丟 Shodan/Censys 反查相同指紋的主機。
- TLS 憑證 SAN/指紋在 Shodan/Censys 上反查共用同憑證的 IP。
- 郵件標頭、SPF/MX、錯誤頁、SSRF 回呼等 origin 洩漏管道(僅觀察,不觸發)。
3. 歷史與遺留資產挖掘:
- Wayback Machine(archive.org)挖舊頁面、舊端點、已下線但仍可推導的路徑。
- CT 日誌中「曾存在但現已不解析」的子網域 → 判定是否有殘留/懸空記錄。
4. 前端資產情報:
- 抓取公開 JS bundle,檢查是否殘留 API 端點、內部網址、source map、
硬編碼金鑰(找到金鑰只回報、不使用)。
- 解析 CSP 標頭推導出它「信任的連線網域」清單。
5. 技術指紋與版本對應:辨識框架/伺服器/雲端供應商與版本,對應已知 CVE 清單
(僅文獻對應,不進行任何利用驗證)。
6. 設定弱點稽核:安全標頭缺失、未上 CDN 的 origin、TLS 設定錯誤(如 526)、
殭屍/廢棄資產、DNS 錯誤設定(wildcard、懸空 CNAME、嘗試 AXFR 區域轉移)。
7. 公開程式碼/情報面:GitHub/GitLab 等公開來源是否有該網域相關的金鑰、
設定檔、內部資訊洩漏(dork 檢索,找到只回報)。
【驗證紀律(不可妥協)】
- 絕不以 HTTP 狀態碼當結論(/.env 回 200 可能只是 SPA 首頁)——
必抓 Content-Type 與實際 body 驗證。
- 凡未親自驗證者標「未驗證/推測」,不得編造工具未回傳的結果。
- 嚴格區分「現行可利用弱點」與「潛在風險訊號」,不誇大、不喊狼來了。
【產出格式】
每項發現提供:①證據(實際工具輸出)②嚴重度(嚴重/高/中/低)
③攻擊者視角意義 ④修補建議。
最後附:
A. 完整資產清單(含歷史/殭屍資產)
B. 「已驗證 vs 未驗證」對照
C. 「你刻意停在哪條線、為什麼」說明
D. 若要進一步測試,需額外取得哪些授權。
怎麼用這段提詞,效果最好
- 網域換成你自己的。提詞裡「我只提供一個公開網域」那句後面,把你的網域貼上去,其餘讓 Claude 自己挖。
- 讓它跑在能開工具的環境。給它查 DNS、抓 HTTP 的工具,它才有東西能「親自驗證」,報告才不會變成憑空想像。
- 死盯那份「已驗證 vs 未驗證」清單。有價值的是它驗過的那幾項;標成「推測」的,當待辦線索,別當結論。
- 修完再跑一次。它列出的安全標頭、廢棄資產、TLS 設定逐項補好,隔幾天讓它重跑一遍,對照前後差異。這樣才算把「用魔法防禦魔法」走完一圈。