【1.7.3】使用UDP协议扫描端口
使用 UDP 协议扫描主机的方法发送 UDP Ping 扫描,只能判断目标主机上一个端口,不能批量地对端口进行扫描。netwox 工具提供了编号为 69 和 70 的模块,用来构造 UDP 端口扫描包,进行批量扫描。
【实例】已知目标主机 IP 地址为 192.168.59.135,其 MAC 地址为 00:0c:29:ca:e4:66。在主机 192.168.59.132 上实施端口扫描,判断目标主机多个端口的开放情况。
-
判断端口 20-25 的开放情况,执行命令如下:
root@daxueba:~# netwox 69 -i 192.168.59.135 -p 20-25
输出信息如下:
192.168.59.135 - 20 : closed
192.168.59.135 - 21 : closed
192.168.59.135 - 22 : closed
192.168.59.135 - 23 : closed
192.168.59.135 - 24 : closed
192.168.59.135 - 25 : closed
输出信息显示了对端口 20-25 进行了扫描,closed 表示这些端口都是关闭状态。
- 如果进行抓包,将会捕获到扫描的 UDP 请求包和返回的 ICMP 包,如图所示。
这时,捕获到 12 个数据包。其中,数据包 4-9 为向端口 20-25 发送的 UDP 请求包,可以看到源 IP 地址为 192.168.59.133(实施主机的地址),目标 IP 为 192.168.59.135(目标主机)。由于目标主机上的 UDP 端口 20-25 未开放,因此返回了对应的 ICMP 响应包,第 10-15 的数据包。
-
如果目标主机端口开放,执行命令后显示信息如下:
root@daxueba:~# netwox 69 -i 192.168.59.135 -p 75-80
输出信息如下:
192.168.59.135 - 75 : timeout (perhaps open)
192.168.59.135 - 76 : timeout (perhaps open)
192.168.59.135 - 77 : timeout (perhaps open)
192.168.59.135 - 78 : timeout (perhaps open)
192.168.59.135 - 79 : timeout (perhaps open)
192.168.59.135 - 80 : timeout (perhaps open)
输出信息显示了对端口 75-80 进行了扫描,perhaps open 表示端口可能为开放状态。
- 端口为开放状态将不会有对应的响应包。通过抓包进行查看,如图所示。
- 在批量扫描端口时,为了避免被发现,可以进行伪造 UDP 包,如设置假的源 IP 地址和 MAC 地址。
例如,伪造源 IP 地址为 192.168.59.150,源 MAC 地址为 10:20:30:40:50:60,执行命令如下:
root@daxueba:~# netwox 70 -i 192.168.59.135 -p 75-80 -E 10:20:30:40:50:60 -I 192.168.59.150
输出信息如下:
192.168.59.135 - 75 : closed
192.168.59.135 - 76 : closed
192.168.59.135 - 77 : closed
192.168.59.135 - 78 : closed
192.168.59.135 - 79 : closed
192.168.59.135 - 80 : closed
输出信息表示目标主机 192.168.59.135 上的 75-80 端口为关闭状态。
- 通过抓包方式,查看伪造的包,如图所示。
其中,第 17 个数据包源 IP 地址为 192.168.59.150(伪造 IP 地址),源 MAC 地址为 10:20:30:40:50:60(伪造 MAC 地址),使用的源端口为随机端口 43046,目标端口为 75。
- 端口未开放将返回 ICMP 包,返回的数据包目标地址同样也为伪造的地址。选择对应的响应包进行查看,如图所示。
例如,第 25 个数据包的目标地址为 192.168.59.150(伪造的),目标 MAC 地址为 10:20:30:40:50:60(伪造地址),说明响应信息发送到了伪造的主机上。
参考资料
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn