天天看點

arp-scan列出區域網路内主機

剛接觸kali,對kali上的工具很好奇。比如,ettercap有個列出區域網路所有主機的功能,原以為該功能由ettercap實作,後來才知道是ettercap借助arp-scan的輸出,如我的kali主機通過wifi連接配接到區域網路,IP位址:10.0.0.3;路由器IP10.0.0.1;區域網路中另一台主機IP:10.0.0.2

1.列出kali上的網卡:

root@kali:~# ettercap -I
#其實可以用ifconfig代替ettercap -I指令
ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team

List of available Network Interfaces:

 wlan0    wlan0
 lo   Local Loopback
 eth0   eth0
 bluetooth0   Bluetooth adapter number 0
 usbmon1    USB bus number 1
 usbmon2    USB bus number 2      

2.arp-scan列出區域網路内主機:

root@kali:~# arp-scan --interface=wlan0 --localnet
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.0.0.1  a0:40:a0:83:44:2f (Unknown)
10.0.0.2  e4:70:b8:c1:8a:63 (Unknown)

2 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.179 seconds (117.49 hosts/sec). 2 responded      

我好奇的是arp-scan是如何搜尋主機的?感覺可以通過抓包了解它實作機制,于是我架起了wireshark,并得到了如下結果:

arp-scan列出區域網路内主機

看輸出,原來arp-scan向區域網路中所有可能的ip位址發出arp請求包,如果得到arp回應,就證明區域網路中某台主機使用了該ip。比如,我收到了來自10.0.0.1和10.0.0.2的回應。

    等等,還沒結束,輸出中的89#桢是什麼情況?

arp-scan列出區域網路内主機

Gratuitous ARP可以翻譯為免費ARP,主機發送一個Gratuitous arp請求,請求自己的IP位址的MAC位址,是不是覺得這有點明知故問?發出這麼蠢的包的作用之一是:驗證IP是否沖突。一個主機能夠通過它來确定區域網路中是否還有另一個主機設定了同樣的IP位址。發送主機并不須要一定收到此請求的回答。