自制分布式漏洞掃描工具
1.前言
在滲透測試和安全掃描工作中,發現越來越多站點部署了應用防護系統或異常流量監控系統,其中包括:WEB應用防火墻(軟件WAF、硬件WAF、云WAF)、入侵檢測系統、入侵防御系統、訪問監控系統等。很多防護系統不僅可實時檢測攻擊和攔截,并且具備自動阻斷功能。當系統檢測到某些IP在特定時間段內產生大量攻擊行為時會開啟阻斷功能,阻斷該IP在一定時間內的任何訪問。
常見應用防護系統和異常流量監控系統的阻斷策略主要有以下幾種:
- 單IP訪問頻率 - 單IP+URL訪問頻率 - 單IP+COOKIE特定時間段內攻擊次數 - 單IP造成可疑或攻擊行為頻率 - 單IP特定時間段內觸發HTTP404狀態次數 - 識別掃描器暴力掃描行為(掃描器指紋)
2. 分布式漏洞掃描
2.1分布式漏洞掃描基本思路
通過自開發的“代理分發程序”,將掃描器發送的大量測試請求以自輪詢的方式分發給成千上萬臺HTTP代理服務器或webshell http proxy。通過該方法把掃描器的大量測試請求平均負載到多臺中間代理服務器上,這樣防護系統通過判斷訪問頻率和攻擊頻率的方式都無法觸發阻斷策略,可達到自動化掃描的目的。同時,通過在中間加一層BURP的過濾,可將各個掃描器的特殊指紋擦除,防護系統更加難以判斷攻擊行為。
分布式漏洞掃描的整體框架圖如下:
2.2常見掃描器及漏洞檢測工具
漏洞掃描器根據功能和特點分為多種類型,主要總結為以下幾類:
#全能應用漏洞掃描器
- AcunetixWeb Vulnerability Scanner - IBMAppscan - HPWebInspect - Netsparker - Nussus - W3af - BurpSuite - N-Stalker 等
#特定漏洞工具
- Sqlmap - Havij - Pangolin - Safe3 等
#目錄猜解工具
- DirBuster - wwwscan - wscan 等
2.3掃描器指紋擦除
利用BURP擦除漏洞掃描器指紋
利用BURP的請求修訂功能可將數據流中的掃描器指紋信息進行擦除,排除明顯的掃描行為特征。
開啟Burp,進入“Proxy——>Options”中的“Match and Replace”功能將掃描器指紋信息消除,掃描器指紋信息大多包含Http頭部字段、http參數值、COOKIE特殊參數等如下圖:
以下總結部分常見應用漏洞掃描器的指紋:
AcunetixWeb Vulnerability Scanner指紋特征
特征一:
請求的HTTP頭部字段包含以下幾種自定義字段名:
Acunetix-Aspect Acunetix-Aspect-Password Acunetix-Aspect-Queries
特征二:
請求的參數值中包含字符串特征:
acunetix_wvs_security_test
特征三:
請求的URI地址包含字符串特征:
/acunetix-wvs-test-for-some-inexistent-file
特征四:
請求的COOKIE參數名包含字符串特征:
acunetixCookie
HPWebInspect指紋特征
特征一:
請求的HTTP頭部字段包含以下幾種自定義字段名:
X-WIPP X-RequestManager-Memo X-Request-Memo X-Scan-Memo
特征二:
請求COOKIE參數名包含特征:
CustomCookie
Netsparker指紋特征
特征一:
請求中的參數值包含字符串:
netsparker
2.4HTTP代理分發程序
HTTP代理分發程序用于將來自漏洞掃描器的大量測試請求和流量平均的引流到多個代理IP地址或者webshell的代理IP,通過將大量的掃描流量分散到大量代理IP上,可規避防護及監控系統的阻斷策略,從而順利實施掃描測試。
抓取大量代理服務器IP地址,并提取出針對目標站點可訪問的代理地址形成“有效代理列表”。分發程序從“有效代理列表”中依次提取代理地址,每發送一個測試請求即切換代理IP,并進行輪詢分發。
3. 總結
利用大量的開放匿名代理IP可實現很多功能,突破各種基于統計的防護設施.例如:
突破撞庫防護; 突破暴力破解防護; 突破地址猜解防護; 突破指紋猜解防護; 等等
引用黑防的一句恒久遠永流傳的話——在攻與防的對立統一中尋求突破。歡迎交流攻防戰術。