随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题。特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁。 网上存在很多关于ARP的文章, 大多都是关于ARP欺骗, 这里介绍ARP的另类用法:探测目标主机是否处于活动状态。 传统探测远程主机是否存活的方法是通过ICMP协议中的回显应答报文来探测(ping)。 随着对安全的越来越多的了解和重视, 很多主机为了避免被扫描器探测, 通过防火墙将ICMP包屏蔽, 从而达到在网络中隐藏的目的。 这里我们介绍一下利用ARP协议探测网络中的活动主机的思路, 这种方法的缺点只能探测以太网内的活动主机。 先大概了解一下ARP协议。 ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写, 它的作用是将IP地址转换成物理地址(就是常说的MAC地址), 其详细过程参考《TCP/IP详解 卷一》。 协议ARP的分组格式如下: ------------------------------------------ 以太网目的地址(6个字节) 以太网源地址(6个字节) 帧类型(ARP = 0806)(2个字节) ------------------------------------------ 硬件类型(Ethernet=01)(2个字节) 协议类型(IPv4=0800)(2个字节) 硬件地址长度(1个字节) 协议地址长度(1个字节) OP操作选项(ARP request=01,ARP reply=02)(2个字节) 发送端以太网地址(6个字节) 发送端IP地址(4个字节) 目的以太网地址(6个字节) 目的IP地址(4个字节) -------------------------------------------- 我们向目标主机发送一个ARP请求, 如果目标主机处于活动状态则会返回其MAC地址, 如果对方返回MAC地址, 则表明对方处于活动状态, 这样达到探测目的。 ARP请求包内容如下: ------------------------------------------ 以太网目的地址 |