在本步骤中,我们将使用 Nmap 的数据包跟踪和调试输出来识别潜在的扫描问题。这包括查找数据包交换中的异常情况,例如重传、意外响应或无响应。通过分析这些问题,你可以排查扫描问题并提高 Nmap 扫描的准确性和可靠性。
-
打开终端:如果你尚未打开终端,请启动 Xfce 终端。
-
查看 trace.txt
文件:在前面的步骤中,你已将数据包跟踪输出保存到 ~/project
目录中的 trace.txt
文件。确保此文件存在并包含数据包跟踪信息。
-
查找重传:当目标主机未确认数据包时,Nmap 会重新发送数据包,这就是重传。这可能表示网络拥塞、数据包丢失或防火墙阻止了流量。使用 grep
搜索重传:
grep "Retransmission" ~/project/trace.txt
如果你看到包含“Retransmission”的行,则表示 Nmap 必须重新发送数据包。这可能是网络问题或防火墙的迹象。
-
分析 TCP 标志:检查数据包跟踪中的 TCP 标志,以了解 TCP 连接的状态。查找意外的标志组合或缺失的标志。例如,没有相应 SYN-ACK 响应的 SYN 数据包可能表示防火墙阻止了连接。
你可以使用 grep
过滤特定的 TCP 标志。例如,要查找 SYN 数据包:
grep "S ttl=" ~/project/trace.txt
要查找 SYN-ACK 数据包:
grep "SA ttl=" ~/project/trace.txt
比较发送的 SYN 数据包数量与接收到的 SYN-ACK 数据包数量。如果 SYN-ACK 数据包明显少于 SYN 数据包,则可能表示存在问题。
-
检查意外响应:有时,目标主机可能会发送意外响应,例如 ICMP 错误消息。这些响应可以提供有关扫描失败原因的有价值信息。
要查找 ICMP 数据包,使用以下命令:
grep "ICMP" ~/project/trace.txt
分析 ICMP 消息以了解错误的性质。例如,“Destination Unreachable”表示目标主机不可达。
-
查找缺失响应:如果 Nmap 发送了探测但未收到响应,则可能表示目标主机已关闭、防火墙阻止了流量或探测在传输过程中丢失。
检查数据包跟踪以识别未收到响应的探测。例如,如果你向端口 80 发送了 SYN 数据包但未收到 SYN-ACK 数据包,则可能表示端口 80 已关闭或被过滤。
-
考虑调试输出:虽然前面的步骤侧重于数据包跟踪,但请记住,调试输出(来自 -d
或 -d2
)也可以提供有价值的线索。它通常包含有关 Nmap 内部决策过程的信息,这可以帮助你理解它为何以某种方式运行。不幸的是,我们在前面的步骤中没有将调试输出保存到文件中,但在实际情况中,你会将该输出与数据包跟踪一起分析。