hacker之眼Nmap的原理及用法(七)局域网扫描的福音(-PR)

一个使用Nmap的最多见的场景是扫描以太网LAN。在大多数LAN上,尤为是那些使用RFC 1918授予的私有地址范围的LAN,绝大多数IP地址在任何给定时间都未被使用。当Nmap尝试发送原始IP数据包(例如ICMP回显请求)时,操做系统必须肯定与目标IP对应的目标硬件(ARP)地址,以便它能够正确地寻址以太网帧。这要求它发出一系列ARP请求。如例4所示,扫描本地的以太网主机。选项- -send-ip告诉Nmap须要发送IP等级的数据包,而不是原始的以太网帧。

例4: 用原始的IP ping扫描一台离线主机
#nmap -n -sn - -send-ip 192.168.43.13
hacker之眼Nmap的原理及用法(七)局域网扫描的福音(-PR)
上面的例子中咱们的时间花了3秒多,鉴于ARP回复一般会在几毫秒内到来,所以等待几秒钟的时间显得太多了。对于OS供应商而言,减小此超时时间并非优先事项,由于绝大多数数据包都发送到了实际存在的主机。另外一方面,当给定目标(例如10.0.0.0/8)时,Nmap必须将数据包发送到1600万个IP。即便许多目标并行执行,每次等待两秒钟也将成为巨大的延迟。
LAN上的原始IP ping扫描还有另外一个问题。如上一示例所示,当发现目标主机无响应时,源主机一般会在其内核ARP表中为该目标IP添加一个不完整的条目。但ARP表空间是有限的,并且有的操做系统在该表被填满以后会反应异常。在原始IP模式(- -send-ip)中使用Nmap时,Nmap有时必须等待几分钟以使ARP缓存条目过时,而后才能继续进行主机发现。
ARP扫描经过控制Nmap解决了这两个问题。 Nmap发出原始的ARP请求,并自行决定处理重传和超时时间。 系统ARP缓存被绕过。下面的例5显示了这个区别。使用ARP ping扫描,咱们只花费了不到原来八分之一的时间。
例5: 用ARP ping扫描一台离线主机
#nmap -n -sn -PR - -packet-trace - -send-eth 192.168.43.13
hacker之眼Nmap的原理及用法(七)局域网扫描的福音(-PR)
在例5中,扫描时间变短其实与-PR或- -send-eth选项无关。这是由于在扫描LAN中的以太网主机时,Nmap默认使用ARP扫描。这里既包括传统的有线以太网,也包括802.11无线网络。ARP扫描不止高效并且精确。主机通常都会阻止基于IP的ping包,但它们通常不会阻止ARP的请求和响应。在扫描前,即便你指定例不一样的ping类型(例如:-PE或-PS),Nmap仍会对同一局域网中的目标使用ARP扫描。若是你不想使用ARP扫描,就用- -send-ip选项。参考例4中的用法。
因为Nmap可以控制原始的以太帧,所以Nmap可以修改源MAC地址。若是你去参加一个安全会议,会场中只有你一人使用苹果笔记本电脑,那么网络中出现大量的ARP扫描时,你们必定会看向你的方向。你可使用- -spoof-mac选项修改你的MAC地址。缓存

相关文章
相关标签/搜索