前言
在使用nmap时可以使用-PR指令,通过发送ARP请求包进行主机存活探测。
那么这一过程的原理是什么呢?
在了解什么是ARP协议后,问题就迎刃而解了。
概念
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
在网络中各个主机相互信任的基础上,局域网络上的主机可以自主发送ARP应答消息。
主机A发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,目标主机将发送返回信息,A收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,当下次A请求该目标主机时,直接查询ARP缓存即可,不再需要广播,这可以节约资源。
然而,正是由于网络中各个主机相互信任,导致攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP欺骗
ARP欺骗(Address Resolution Protocol spoofing),也被称为ARP中毒,是一种网络攻击方式。攻击者会发送伪造的ARP消息给局域网内的其他设备,以欺骗它们将通信发送到错误的位置,从而实现窃取数据、监视流量或拦截通信等目的。
假设有三台计算机A、B和C,它们都连接到同一个局域网上。攻击者D位于同一局域网中,并想窃取A和B之间的通信。攻击者D可以进行以下步骤来实现ARP欺骗攻击:
1.攻击者D发送一个ARP响应消息给计算机A,声称自己的MAC地址与B的IP地址相关联。
2.计算机A收到了这个伪造的ARP响应并更新了其ARP缓存,将攻击者D的MAC地址与B的IP地址相关联。
3.当计算机A想要向计算机B发送通信时,它会使用之前更新过的ARP缓存,将通信发送到攻击者D的MAC地址。
4.攻击者D可以捕获这些通信并查看其中的敏感信息,如用户名和密码等。
ARP命令
ARP命令用于显示和修改系统的 ARP(地址解析协议)缓存表,该表存储了IP地址与MAC地址之间的映射关系。
1.显示当前系统的ARP表:
arp -a
2.添加静态ARP条目:
arp -s <IP地址> <MAC地址>
3.删除ARP条目:
arp -d <IP地址>
4.清空ARP缓存表:
arp -d -a
优势
通过发送ARP请求包进行主机存活探测的好处是,它可以在局域网中快速发现存活的主机,而无需与每台主机建立TCP或UDP连接。这种方法比较高效,并且不会产生网络流量和日志记录,因为ARP请求和响应都是在数据链路层完成的,不需要上层协议的参与。
需要注意的是,使用ARP进行主机存活探测只适用于局域网环境,因为ARP消息无法跨越路由器。如果需要在广域网或互联网中进行主机存活探测,可以考虑使用其他方法,如ICMP Echo请求(ping)或TCP SYN扫描等。
承接前言
回到开头的问题,我们就可以给出答案了。
当发送ARP请求包进行主机存活探测时,nmap会向目标网络广播一个ARP请求消息,其中包含要探测的IP地址。
目标网络上的所有主机都会收到这个ARP请求消息。根据ARP协议的规定,只有匹配请求中IP地址的主机才会响应,其他主机会忽略该请求。
如果目标网络上的主机存活,则会向nmap发送一个ARP响应消息,其中包含主机的MAC地址。
nmap通过捕获并分析这些ARP响应消息,确定了哪些主机处于存活状态,并获取了相应主机的MAC地址,如文章开头的图片。