Efficient Bug Bounty Automation Techniques, Gunnar Andrews | Bug Bounty Village, DEF CON 32
三句話摘要
高效漏洞賞金自動化技術:從被動偵察、資料收集到資料工程的完整工作流。 高效的漏洞賞金自動化不在規模或蠻力,而在於用被動智慧的資料來源和自建基礎設施來最大化資訊收集效率,配合嚴謹的資料工程才能真正將海量資料轉化為漏洞發現。 資源效率優於覆蓋面積:暴力破解是最後的手段,應先窮盡所有被動偵察技術,這樣能用最少成本獲得最大發現量;講者日監控數百萬域名,幾乎全部來自被動源。
重點整理
重點- 1
資源效率優於覆蓋面積:暴力破解是最後的手段,應先窮盡所有被動偵察技術,這樣能用最少成本獲得最大發現量;講者日監控數百萬域名,幾乎全部來自被動源。
- 2
多層次被動資訊源的整合:SSL 證書日誌(Gungnir 可 20 秒內捕獲新證書)、反向 DNS 查詢、被動 DNS 資料庫(VirusTotal、SecurityTrails)等互補使用,能發現大量資產而無需主動掃描。
- 3
自建關鍵基礎設施勝過依賴第三方:PowerDNS Recursor + Redis 的自有 DNS 解析叢集可完全控制引數和監控,僅需月均 $25 成本就能處理每秒 12.5 萬查詢;關鍵是實現持續 5+ 天的重試列表,捕捉短期不可用但後來恢復的服務。
- 4
資料儲存方式決定發現效率:正確的資料庫設計(同時維護子域名和 IP,而非單一主鍵)是將"海量資料"轉化為"更多漏洞"的前提;平文字檔案方案會在後期陷入困境。
實用技巧與重點
乾貨- 工具
- Caduceus:IPv4 SSL 證書掃描,提取域名與對應 IP
- Gungnir:CT 日誌實時爬取(≤20 秒捕獲新證書)
- cert.sh:CT 日誌查詢(可能延遲 48 小時)
- ZDNS:反向 DNS 查詢工具
- Harpy:虛擬主機掃描(基於 Caduceus 輸出)
- Power DNS Recursor:遞迴 DNS 解析器
- DNS DIST:DNS 負載均衡
- S-Map:基於 Shodan 的被動埠掃描
- Redis:快取與重試佇列
- GitHub Subdomains(作者:Gwen)
- 效能資料
- DNS 叢集月成本:~$25
- 吞吐量:125,000 queries/秒
- 日處理量:600-800 百萬請求
- 重試時長:5+ 天持續佇列
- 被動 DNS 來源
- VirusTotal、SecurityTrails、Common Crawl、Wayback Archive
- DNS 記錄型別
- A、AAAA、CNAME、MX、NS
- 掃描策略
- Lambda 架構:每個例項新 IP,用於高速並行掃描
- 使用者代理:使用最新 Chrome UA,每月更新
- 單 GET 請求獲取:二階資源、狀態碼、CSP、Cookie、標題
結論
結論“高效的漏洞賞金自動化不在規模或蠻力,而在於用被動智慧的資料來源和自建基礎設施來最大化資訊收集效率,配合嚴謹的資料工程才能真正將海量資料轉化為漏洞發現。”
完整解析
詳細Gunnar Andrews 在這次演講中分享了他多年來積累的漏洞賞金自動化核心哲學與實踐方法。整個框架的出發點是:用最低成本和最少資源獲得最大的發現效率,而非盲目追求掃描規模。
他開篇就表明立場——不做任何必要前的暴力破解。日監控數百萬個域名和海量端點,全部透過被動手段發現。這個策略的邏輯是:暴力破解本質是猜測,而現代網際網路提供了足夠多的其他技術手段,只有真的"沒招了"才退而求其次。這樣既能維持低成本,又不會因大規模掃描而觸發 ISP 或雲廠商的封禁。
資訊收集層:多源被動偵察
SSL 證書是發現資產的金礦。講者開發了 Caduceus 工具對整個 IPv4 地址空間進行證書掃描,從證書的 CN 和 SAN 欄位提取域名,同時儲存對應 IP。這樣既能獲得子域名,還保留了 IP-域名的關聯。對於想要最新發現的資產,Gungnir 實時爬取 CT 日誌(Merkle 樹結構的公開證書日誌),能在新證書頒發後 20 秒內捕獲;相比之下,cert.sh 雖然功能強大且可歷史查詢,但某些 CT 日誌在其資料庫中可能延遲 48 小時。講者還透過反向 DNS 查詢(PTR 記錄)來發現與特定 IP 關聯的域名——用 ZDNS 等工具遍歷整個 IPv4 空間。這些技術合起來能從被動 DNS 資料庫(VirusTotal、SecurityTrails、Wayback Archive 等)中獲得大量已記錄的資產。
但講者強調了一個常見的坑:不要無腦使用所有資料來源。他以 Subfinder 為例,用 --all 標誌跑 tesla.com,結果執行 43 秒卻因為 Common Crawl 出錯返回負數條結果。去掉問題源後,僅需 10 秒就能獲得相同結果。這意味著要麼自己寫查詢邏輯(完全理解每個資料來源的行為),要麼至少要審計工具的輸出和效能。
DNS 解析與快取:自建叢集的必要性
這是講者強調最多的一個環節。公開的 DNS 解析器(如 Trickest 列表中的服務)雖然便捷,但存在速率限制、超時和隱藏的行為差異。他在安全諮詢工作中發現過多個 DNS 接管漏洞,這些漏洞在所有公開解析器上顯示為"無錯誤",但在特定的遞迴解析器上卻返回 SERVFAIL——恰好是他能接管的情況。這說明邊緣節點的公開解析器在追求速度和規模時可能做了不適合 bug bounty 獵人的折衷。
講者的解決方案是用 PowerDNS(三個元件:Authoritative Server、Recursor、DNS DIST)構建自有 DNS 解析叢集。Recursor 是遞迴解析器,DNS DIST 是負載均衡,兩者透過 Keepalived 等工具實現虛擬 IP,讓整個叢集對外呈現統一端點。月成本約 $25,卻能處理每秒 12.5 萬查詢,完全無速率限制,所有引數都由自己控制。關鍵改進是用 Redis 維護一個域名快取和重試佇列,記錄每個域名的最後解析時間和重試次數。單次解析嘗試會漏掉大量資產(某些服務短時間不可用),持續 5 天或更長的重試佇列才能捕獲這些恢復的服務。
埠與網路指紋識別:被動優先
講者拒絕直接的全量主動埠掃描。他用 S-Map 工具針對 Shodan 進行被動查詢(Shodan 已包含大量已知開放埠的資料),然後只對這些結果進行主動驗證。這樣既能發現埠,又避免了向無關 IP 發起數百萬個 SYN 包而遭到反爆。至今未被封禁正是這個策略的證明。
對於網路端點和資源發現,一個 GET 請求就能獲取豐富資訊:二階資源(JavaScript、S3 桶等)、HTTP 狀態碼、CSP 頭、Cookie 等。講者透過爬取發現的頁面來擴充套件資產列表,但避免過度掃描以防觸發 WAF。為了高速掃描又不被封禁,他建議利用 AWS Lambda——每個 Lambda 例項都帶新 IP,分散掃描任務能有效規避 IP 級別的速率限制和封禁。
資料工程:從資料到漏洞的橋樑
講者最後強調的是資料組織的重要性。許多獵人只維護子域名列表,結果喪失了大量關聯資訊。正確的做法是同時維護子域名和 IP 地址,並在兩者之間交叉引用。這涉及資料庫設計而非平文字檔案——後者在資料量增長後會變得難以管理。講者推薦了相關資料工程書籍(Audible 有音訊版),雖然枯燥但價值巨大。核心觀點是:海量資料 = 更多漏洞,但前提是正確利用。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

