Nmap 跟踪路由最大 TTL

Nmap 跟踪路由最大 TTL

(Ubuntu 14.04.4 LTS)

traceroute-m, --max-hop=NUM,也有tracepath

使用时如何限制最大跳数:

nmap -Pn -sn --traceroute  

答案1

Nmap 使用不同的算法对于跟踪比traceroute(1),因此跳数限制的想法没有意义。

传统的跟踪路由使用发送至高编号端口的 UDP 数据包,并以 TTL 1 开始,以发现到目标的路径上的下一跳。然后它增加到 2 以发现第二跳,依此类推。如果在通往目标的路径上的某个点有一个跃点拒绝传递 UDP 流量(例如防火墙),则 Traceroute 将开始显示“未知”行,如下所示:

10 * * *
11 * * *
12 ** * *
13 * * *

并且它会继续显示这些,直到达到最大数量(IP TTL字段限制为255,大多数traceroute实现会为了实用性设置一个下限,比如30)。

Nmap Traceroute 的工作方式有点不同。它有几个关键优势:

  1. 它要求您具有嗅探网络流量并在原始套接字上发送的权限,并且
  2. 它知道主机发现和端口扫描执行阶段的结果是什么探针将到达目标。

有了这些信息,Nmap 就会猜测到目标的距离。如果您执行操作系统检测并获得对 UDP 探测的 ICMP 响应,则它可以计算准确的距离。否则,它从 10 开始,或者从最后一个目标所在的距离开始。然后它开始发送探测,每次减少初始 TTL,直到考虑到所有更近的跃点(有时这意味着一旦再次找到已找到的跃点就停止,以免重复结果。)如果目标本身没有响应任何这些探测器,Nmap 接下来都会从 TTL 10 开始并计数向上,复制传统的traceroute算法。这里的关键区别在于,发送的探测可以保证得到目标的响应,因为它们是为此目的而选择的。因此,我们永远不会超越目标或选择中间跳跃会丢弃的探测器。

该算法在traceroute.cc文件的初始注释块在 Nmap 源中。

答案2

我相信没有任何东西可以限制跃点,在检查了 nmap 的手册页后,似乎只有往返时间可以限制它扫描的端口范围。

编辑:您可以使用 -F 获得/潜在/最小的路由,该路由使用的跳数少于默认值。尝试禁用跟踪路由、使用 -sL 或 -pN 进行列表扫描并禁用 ping。

相关内容