为了清楚地了解目标主机上是否安装防火墙,以及设置了哪些限制,netwox 工具提供了编号为 76 的模块来实现。它通过发送大量的 TCP[SYN] 包,对目标主机进行防火墙探测,并指定端口通过得到的响应包进行判断。
- 如果目标主机的防火墙处于关闭状态,并且指定的端口没有被监听,将返回 [RST,ACK] 包。
- 如果目标主机上启用了防火墙,在规则中设置了端口,阻止其他主机连接该端口,那么在探测时将不会返回响应信息。如果设置为允许其他主机连接该端口,将返回 [SYN,ACK] 包。
- 如果在规则中设置了 IP 地址,并允许该 IP 地址的主机进行连接,探测时返回 [SYN,ACK] 包;当阻止该 IP 地址的主机进行连接,探测时将不会返回数据包。
由于它可以发送大量的 TCP[SYN] 包,用户还可以利用该模块实施洪水攻击,耗尽目标主机资源。
【实例】在主机 192.168.59.131 上对目标主机 192.168.59.133 进行防火墙探测。
1) 向目标主机端口 2355 发送 TCP[SYN] 包,探测是否有防火墙。执行命令如下:
root@daxueba:~# netwox 76 -i 192.168.59.133 -p 2355
执行命令后没有任何输出信息,但是会不断地向目标主机发送 TCP[SYN] 包。2) 为了验证发送探测包情况,可以通过 Wireshark 抓包进行查看,如图所示。
另一部分数据包源 IP 地址为 192.168.59.133,目标 IP 地址为随机的 IP 地址,源端口为 2355,目标端口为随机端口。这些数据包为对应的响应包。这里的响应包为 [RST,ACK] 包,表示目标主机的防火墙没有开启,并且目标主机没有监听 2355 端口。
3) 目标主机没有开启防火墙时,如果监听了端口(如监听了 49213 端口),将会得到 [SYN,ACK ] 响应包,如图所示。
4) 当目标主机上开启了防火墙,再进行探测时,如果目标主机监听了端口,并且在防火墙规则中允许连接到该端口,那么将会收到 [SYN,ACK] 响应包。
如果不允许连接到该端口,那么将不会返回任何响应数据包。例如,防火墙规则中不允许连接 49213 端口,那么在探测时,将只有 TCP[SYN] 包,如图所示。
5) 目标主机的防火墙规则可能限制了特定 IP 地址的主机进行连接。那么,在进行探测时,其他 IP 地址的 TCP[SYN] 包会得到对应的 [SYN,ACK] 响应包,被限制的 IP 地址主机将不会收到响应包。捕获到的探测数据包,如图所示。
6) 通过显示过滤器,过滤主机 19.182.220.102 的数据包,如图所示。
7) 过滤主机 223.145.224.217 的数据包,如图所示。
8) 对目标主机实施洪水攻击,在攻击之前,在目标主机上查看所有端口的相关状态信息,如图所示。
9) 对目标主机进行洪水攻击,执行命令如下:
root@daxueba:~# netwox 76 -i 192.168.59.133 -p 49213
10) 再次在目标主机上查看所有端口的相关状态信息,如图所示。
11) 由于目标主机上监听了 49213 端口,捕获到对应的响应包 [SYN,ACK],如图所示。