ARP扫描

ARP协议扫描的目的是为了判断主机是否启用。

单一主机扫描

如果用户想判断一个主机是否启用,可以使用netwox工具中编号为55的模块对目标主机进行ARP协议扫描。

(1)查看netwox所在主机的IP地址,执行命令如下:

root@dev:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.59.132  netmask 255.255.255.0  broadcast 192.168.59.255
        inet6 fd15:4ba5:5a2b:1008:20c:29ff:feaa:e027  prefixlen 64  scopeid
        0x0<global>
        inet6 fd15:4ba5:5a2b:1008:b95e:f970:dff4:789  prefixlen 64  scopeid
        0x0<global>
        inet6 fe80::20c:29ff:feaa:e027  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:aa:e0:27  txqueuelen 1000  (Ethernet)
        RX packets 28796  bytes 21695251 (20.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7210  bytes 552808 (539.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

从输出信息可以了解到,netwox所在主机的IP地址为192.168.59.132,MAC地址为00:0c:29:aa:e0:27。

(2)验证目标主机是否启用,执行命令如下:

root@dev:~# netwox 55 -i 192.168.59.135
Ok
Ok
Ok
Ok
Ok
Ok
… 

输出信息在持续地显示OK,表示持续不断地向目标主机进行了扫描。其中,OK代表目标主机已启用。如果目标主机未启用将不会有任何输出信息。

(3)为了验证ARP协议扫描,可以通过Wireshark进行抓包,如下图所示。

image

其中,第1~6个数据包是对目标主机进行扫描时产生的ARP数据包。第1、3、5个数据包为ARP请求数据包,第2、4、6个数据包为ARP响应数据包。选择任意一个请求数据包,Address Resolution Protocol(request)部分的源IP地址和MAC地址正好为netwox主机的地址,目标IP地址为扫描的目标主机地址。此时,目标MAC地址为0,表示在向目标主机发送了ARP请求数据包。

(4)选择任意一个ARP响应包,查看信息,如下图所示。这里,选择的是第2个数据包。在Address Resolution Protocol(reply)部分中,源IP地址和MAC地址为目标主机的地址;目标IP地址和MAC地址为netwox主机的地址,表示目标主机成功向netwox主机返回了响应。

image

多个主机扫描

有时用户需要判断多个主机的启用情况,使用上述的扫描方式需要分别对每个主机进行扫描,这样比较费时。这时,可以使用netwox工具中编号为71的模块进行扫描。如果主机启用,则返回对应的MAC地址。

(1)扫描多个主机,执行命令如下:

root@dev:~# netwox 71 -i 192.168.59.133,192.168.59.134,192.168.59.135,
192. 168.59.136,192.168.59.137,192.168.59.138,192.168.59.139,192.168.59.140
192.168.59.134 : 00:0C:29:BD:C4:3C
192.168.59.135 : 00:0C:29:CA:E4:66
192.168.59.133 : unreached
192.168.59.136 : unreached
192.168.59.137 : unreached
192.168.59.138 : unreached
192.168.59.139 : unreached
192.168.59.140 : unreached

以上输出信息显示了对主机192.168.59.133~192.168.59.140进行了扫描。如果主机已启用,将给出对应的MAC地址,如主机192.168.59.135的MAC地址00:0C:29:CA:E4:66;如果主机是未启用的,将给出unreached,如主机192.168.59.133是未启用的。 (2)为了验证扫描过程,使用Wireshark工具进行抓包,如下图所示。

image

其中,第4~11个数据包分别为对每个主机进行了ARP请求。其中,第5个数据包和第6个数据包为对主机192.168.59.134和192.168.59.135发送的ARP请求,并得到了ARP响应包。第12个和第13个数据包说明这两个主机是启用状态。

隐蔽扫描

在判断目标主机是否存在时,为了避免被发现,用户可以使用netwox工具中编号为56和72的模块来伪造地址信息。这样,即使被发现,对方获取的也是一个假的地址信息。

【例】已知netwox所在主机的IP地址为192.168.59.132,对单一主机扫描,并伪造地址信息。例如,判断目标主机192.168.59.135是否启用。具体步骤如下:

(1)伪造虚假地址,设置IP地址为192.168.59.160,MAC地址为A1:B2:C3:D4:E5:F6,验证目标主机192.168.59.135是否启用,执行命令如下:

root@dev:~# netwox 56 -i 192.168.59.135 -I 192.168.59.160 -E A1:B2:C3:
D4:E5:F6
Ok
Ok
Ok
Ok
Ok
Ok
…                                                      #省略其他信息

(2)通过捕获数据包验证是否伪造了地址,捕获的数据包如图4.10所示。其中,第一个数据包为ARP请求数据包。其中,源IP地址为伪造的192.168.59.160,MAC地址也是伪造的a1:b2:c3:d4:e5:f6。

image

(3)选择任意一个响应包,查看地址信息,如下图所示。其中,第2个数据包为对应的ARP响应包,可以看到成功返回了目标主机的MAC地址。但是,响应包中的目标地址为伪造的地址信息,而不是netwox主机真实的地址。

image

【例】已知netwox所在主机的IP地址为192.168.59.132,对多台主机扫描伪造地址信息。例如,判断目标主机192.168.59.133-192.168.59.135的启用情况。具体步骤如下:

(1)设置扫描主机的假IP地址为192.168.59.125,MAC地址为00:0c:29:ca:e4:99,验证多个目标主机是否启用,执行命令如下:

root@dev:~# netwox 72 -i 192.168.59.133,192.168.59.134,192.168.59.135
-E 00:0c:29:ca:e4:99 -I 192.168.59.125
Warning : Eth address needed to reach 192.168.59.133 is unknown
Warning : Eth address needed to reach 192.168.59.134 is unknown
192.168.59.135 : 00:0C:29:CA:E4:66

以上输出信息表示主机192.168.59.135是启用的,主机192.168.59.133和192.168.59.134未启用。

(2)如果主机是启用的,捕获的数据包的地址信息将是伪造的地址信息,如下图所示。

image

其中,第5个数据包为ARP请求包,可以看到请求的目标IP地址为192.168.59.135(目标主机),源IP地址为192.168.59.125,而不是真正的192.168.59.132;MAC地址为00:0c:29:ca:e4:99,也是伪造的。

(3)查看响应包,如下图所示。

image

其中,第6个数据包为对应的ARP响应包,可以看到目标IP地址和MAC地址为伪造的地址,而不是真实的netwox主机的地址。