0x00. 序言
每次写文章我就最喜欢写这部分内容,反正瞎逼逼又不犯法对吧!本来昨天就该开始筹备这篇文章的,但世事难料,居然一时被天涯明月刀迷住了,幸好只是一时兴起及早退坑,不然kali 系列文章可能就要夭折了 \^o^
0x01. Firewalk 简介
Firewalk 是一个主动侦察的网络安全工具,它试图判断出路由器或防火墙在第四层TCP/UDP 配置的策略规则,因此在内网中使用 Firewalk 将是我们最理想的选择。
0x02. Firewalk 原理
[*] Firewalk 主要是通过对 TTL 值的控制来达到探测目的的,下面介绍的原理理论上成立,但当我实际开防火墙测试时很多报文都会被防火墙过滤,但路由器测试毫无问题!
1. Firewalk 首先通过 PC 发送一个 TTL值为 1 的探测包到下一级 Gateway 的 33434 端口,如果 Gateway 接收到TTL 值为 1 的TCP 报文之后它会把TTL 减一变为 0,然后给 PC 回复一个 ICMP 报文,这样就能完成第一步的网络探测(当我测试防火墙的时候 TCP 报文被防火墙丢弃,便无法进行后续探测步骤)
2. 探测完成之后PC 会发送TTL 为 2 的 TCP/UDP 包给Gateway 的不同端口,如果该端口没有被防火墙毙掉那么就能被 Gateway 转发到下一个节点,也就是图中的 firewall ,firewall 接到TTL 为1 的报文回复一个 ICMP 数据包,我们就能判断出 Gateway 被测的端口开放
3. 重复前两次操作测出内网中所有路由节点的策略规则
0x03. Firewalk 实战
我的防火墙会把探测包全部毙掉,在这里就不给大家演示了,就演示一下如何探测路由器的策略规则。
环境准备
1. kali IP=192.168.1.107
2. gateway IP=192.168.1.1 (vlan 开放53,80端口)
实战演示
- 首先配置路由器规则
- 启动 firewalk 进行探察( 参数都很简单,不懂的可以通过 man 手册自行查看 )
firewalk -S21,22,53,80,139,445 -i eth0 -n -pTCP 192.168.1.1 8.8.8.8
- 图中的 100.64.0.1 其实是下一节点的 IP 地址,如果它也在内网中是一个路由节点的话那么我们的下一条命令应该是firewalk -S21,22,53,80,139,445 -i eth0 -n -pTCP 100.64.0.1 8.8.8.8 通过最上面我给大家看的测试用图可知100.64.0.1 其实是公网IP