白帽应如何避免攻击性扫描行为

admin 2024年4月2日13:48:25评论2 views字数 2321阅读7分44秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

博客新域名:https://gugesay.com

不想错过任何消息?设置星标↓ ↓ ↓

白帽应如何避免攻击性扫描行为

背景介绍

首先要明白什么是攻击性扫描行为,在漏洞‘狩猎’过程中,研究人员或白帽通常会使用到自动化工具和扫描器,但是扫描的频次和线程需要保持在目标厂商要求的限定范围内,任何超出这些限制的行为都可能被定义为"攻击性/入侵性扫描行为"。

比如国外众测平台Intigriti的一些公共项目就会特意标注扫描的请求频次:

白帽应如何避免攻击性扫描行为

这些公共项目序允许进行自动化扫描,但前提是必须每秒发送2—10个请求(RPS),假如此时我们需要启动gobster来扫描网站目录,那么我们会看到扫描速度要远比5 RPS快得多,那就意味着我们破坏了目标网站的条款要求。

有些工具会默认显示这些统计信息,或者通过添加一些额外的参数显示这些信息,如果没有,你也可以使用一些技术来测量出RPS,比如:

  • 尝试对自己的Web服务器进行测试,查看收到了多少RPS

  • 通过代理工具查看

  • 通过网络流量查看(例如Wireshark)

  • 通过耗时,手动计算RPS

比如通过耗时来手动计算gobuster的RPS:

head -n 1000 /usr/share/wordlists/dirb/common.txt > words.txt

time gobuster dir -u https://LAB-ID.web-security-academy.net/ -w words.txt

白帽应如何避免攻击性扫描行为

可以看到最终执行时间为 20 秒,表明 gobuster 发送了约 50 RPS,明显超过了一些目标网站的扫描要求。再比如ffuf工具:

ffuf -c -ic -request new.req -request-proto https -w /usr/share/seclists/Passwords/probable-v2-top1575.txt -fr "Invalid"

白帽应如何避免攻击性扫描行为

ffuf 我们进行计算并在执行过程中显示 RPS,整个扫描过程在 23 秒内完成,平均速度为 60 RPS——这更加严重违反了目标网站的扫描要求!接下来让我们看看如何来避免这种行为。

如何避免

通用工具

不同的工具有不同的参数来限制 RPS,强烈建议使用之前查看工具的使用文档,了解“rate limit(速率限制)”和“throttle(限制)”等参数的选项,一种快速且通用的方法是使用 grep,比如:

tool_name -h | grep -i "(rate|limit|throttle|delay)"

如果上面这条命令没有任何有效的结果,可以添加一些其它关键字,比如如“time”、“sec”或“request”等,或者直接查看完整的帮助命令输出,因为很多工具提供的微调配置选项通常会在“advanced(高级)”菜单中。接下来我们来看几款比较常用的扫描工具设置:

ffuf

ffuf -h | grep -i "(rate|limit|throttle|delay)"

白帽应如何避免攻击性扫描行为

可以看到默认速率为 0(无限制),我们可以使用 -rate 选项调整“每秒请求速率”,因此值如果设置为 5 会将工具限制为 5 RPS。

gobuster

gobuster -h | grep -i "(rate|limit|throttle|delay)"

白帽应如何避免攻击性扫描行为

gobuster与ffuf差异比较大,ffuf使用的参数是 –delay 而不是 -rate,并且必须指定每个请求之间等待的时间,而不是提供表示 RPS 数量的值,因此或许用户可以输入 200ms 或 0.2s 的值来达到 5 RPS 的限制,真的如此吗?

实际情况并不是,如果我们来测量 RPS,会发现RPS大大超出了限制,如果我们查看帮助,会发现一个默认值为 10 的线程参数,换句话说,每次运行 gobuster 时,就会有 10 个并发线程来执行任务,我们之前配置的 0.2 秒的延迟,是基于每个线程的,而不是整体的,因此要修改配置,就需要增加延迟或减少线程,通过两者组合,从而降低GPS。

sqlmap

sqlmap -h | grep -i "(rate|limit|throttle|delay)"

上面的命令中会发现没有产生任何有用的结果,通过查看帮助菜单会发现 sqlmap 提供了可以通过 -hh 参数来访问高级帮助菜单的选项。

白帽应如何避免攻击性扫描行为

通过高级帮助菜单可以发现,我们可以使用 –delay 参数指定以秒为单位的延迟(类似于 gobuster),为了将该工具限制为 5 RPS,我们同样可以设置为 0.2 秒延迟,当然前提同样是线程方面不存在和gobuster同样的问题,通过仔细查看sqlmap的帮助菜单,可以确认sqlmap的默认线程数为 1。

白帽应如何避免攻击性扫描行为

Burp Suite

鼎鼎大名的Burp Suite怎能轻易忘记,Burp的好处在于允许用户为每个任务配置相应的资源池,这样就能够根据目标网站要求或优先级来限制不同的任务。

白帽应如何避免攻击性扫描行为

Burp 可以配置请求之间的延迟和并发请求(线程)的数量。

总结

希望通过本文能说明负责任的白帽测试在漏洞悬赏中的重要性,并让你了解攻击性/入侵性扫描对目标站点的负面影响,进行自动化测试或扫描时要尽量‘温柔’,某些目标网站可能不允许任何类型的自动化测试,作为白帽应遵守这些规则,因为违反这些规则可能会导致目标站点的服务质量下降,严重的话甚至可能会导致宕机,当然,最好不要在‘狩猎’过程中给自己平添不必要的麻烦才是最重要的,你说是吧?

加入星球,随时交流:

(前50位成员):99元/年
(前100位成员):128元/年
100位+成员):199元/年白帽应如何避免攻击性扫描行为

感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~

====正文结束====

原文始发于微信公众号(骨哥说事):白帽应如何避免攻击性扫描行为

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月2日13:48:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   白帽应如何避免攻击性扫描行为https://cn-sec.com/archives/2623048.html

发表评论

匿名网友 填写信息