自制分布式漏洞扫描工具
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可实现很多功能,突破各种基于统计的防护设施.例如:
突破撞库防护; 突破暴力破解防护; 突破地址猜解防护; 突破指纹猜解防护; 等等
引用黑防的一句恒久远永流传的话——在攻与防的对立统一中寻求突破。欢迎交流攻防战术。