专栏首页FreeBuf自制分布式漏洞扫描工具

自制分布式漏洞扫描工具

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可实现很多功能,突破各种基于统计的防护设施.例如:

突破撞库防护;
突破暴力破解防护;
突破地址猜解防护;
突破指纹猜解防护;
等等

引用黑防的一句恒久远永流传的话——在攻与防的对立统一中寻求突破。欢迎交流攻防战术。

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2014-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ProxyChains实现自动添加代理逃避检测

    使用爬虫爬取网站或者使用扫描器扫描目标时经常会遇到扫描频率较为频繁导致IP被封或者限制访问的情况,这时候我们就需要考虑利用IP代理的方式不断的变换IP进行爬虫和...

    FB客服
  • 产品经理眼中比较理想的WEB扫描器

    摘要 漏洞扫描器,也叫VA(Vulnerability Assessment)漏洞评估或者VM(Vulnerability Management)漏洞管理,一直...

    FB客服
  • 基于代理IP的挖掘与分析

    ? 废话不多说,直入主题。关于代理IP的挖掘与分析,个人的一些分析与总结。 1. 思路 1、获取代理地址 2、对获取的代理地址进行验证,提取出真实可用的代理地...

    FB客服
  • dotnet 配置 github 自动打包上传 nuget 文件

    在上一篇博客告诉小伙伴如何使用 github 做持续集成,本文告诉大家如何配置 github 让在 master 每次合并都会自动创建一个 nuget 文件,自...

    林德熙
  • Linux之sar命令

    Linux中的sar命令是系统运行状态的统计命令,他讲指定的操作系统状态显示到标准的输出设备中,它的全称是system activity reporte...

    AsiaYe
  • 利用公有云上的Kubernetes集群为单点应用提供高可用

    作者:李勇 原文发布于微信公众号 - 云服务与SRE架构师社区(ai-cloud-ops)

    王录华
  • 系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL

    ☞ ETL同步之道 [ Sqoop、DataX、Kettle、Canal、StreamSets ]

    用户1564362
  • 装饰器模式

    用户2434869
  • 系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL

    ☞ ETL同步之道 [ Sqoop、DataX、Kettle、Canal、StreaSets ]

    Spark学习技巧
  • 你完全没了解过的日志异步落库

    在互联网设计架构过程中,日志异步落库,俨然已经是高并发环节中不可缺少的一环。为什么说是高并发环节中不可缺少的呢? 原因在于,如果直接用mq进行日志落库的时候,低...

    烂猪皮

扫码关注云+社区

领取腾讯云代金券