使用DNS历史记录绕过防火墙

此脚本将尝试寻找:

1.寻找防火墙(例如Cloudflare、Incapsula和SUCURI等等)背后的服务器IP地址;

2.运行相同网站的老服务器,但并不接收活动流量,因为DNS记录没有指向它。因为这类服务器一般托管的是过时的或没有维护的老版本网站,所以很可能存在已知的各种安全漏洞,而且在这类网站中寻找SQL注入等漏洞并访问数据库的难度会低很多。

除此之外,该脚本还可以获取子域名的IP地址,因为开发人员认为在某些时候,子域名的IP同样会指向主域名。

工具使用

该脚本的使用方式如下:

bash bypass-firewalls-by-DNS-history.sh -d example.com

-d–domain: 需要绕过的目标域名

-o–outputfile: 输出IP地址

-l–listsubdomains: 列举额外的子域名列表

-a–checkall: 检测所有子域名的防火墙绕过状态

依赖要求(可选)

如有需要的话,用户可以使用jq来解析输出结果并自动收集子域名,该工具的安装命令如下:

apt install jq

背景资料

Web应用防火墙绕过技术

为了演示我们所定义的Web应用防火墙绕过术,请大家先看看下面给出的机制图:

当用户连接至网站后,会发送一个初始的DNS请求来查询网站的IP地址,这样浏览器客户端才知道往哪里发送HTTP请求。对于那些受Cloudflare或其他WAF保护的网站,响应信息中将包含WAF自身的IP地址,因为用户的HTTP流量需要经过防火墙才能到达源Web服务器。而此时,WAF会屏蔽掉恶意请求以防止DDoS攻击。不过,如果攻击者知道源Web服务器的IP地址的话,并且源Web服务器可以接收来自全网的HTTP流量,攻击者就可以执行WAF绕过了:即让HTTP流量直接到达源Web服务器,并且不需要经过WAF。

该脚本会尝试寻找源Web服务器的IP地址,并且成功执行类似SQL注入或SSRF这样的攻击。

进一步渗透

成功绕过WAF之后,你将有两种选择:

1.编辑你的host-file,文件路径为/etc/hosts(Linux/Mac)或c:\Windows\System32\Drivers\etc\hosts(Windows)。然后添加下列条目:

80.40.10.22 vincentcox.com

2.Burp Suite:

此时,你的HTTP流量将直接去往源Web服务器,你可以按照往常的方法进行渗透测试,而你的请求将不会被Web应用防火墙屏蔽。

该脚本的适用人群

-安全审计人员

-Web管理员

-漏洞Hunter

-黑帽黑客

如何防止这个脚本?

  • 如果您使用防火墙,请确保仅接受来自防火墙的流量。拒绝直接来自互联网的所有流量。例如:Cloudflare有一个IP列表,您可以使用iptables或UFW将其列入白名单。否认所有其他流量。
  • 确保没有旧服务器仍在接受连接,并且首先无法访问

*参考来源:vincentcox,B&T-专注于网络编译,转载请注明来自blog.btsafety.cn


bai

新者一日 新之始基

2 条评论

  1. 学习了

  2. bai

    dd

Leave a Reply

Your email address will not be published. Required fields are marked *