在介紹ARP斷網攻擊之前,我們先來了解一些基本術語。
基本術語
ARP
英文全稱爲Address Resolution Protocol,即地址解析協議,是根據IP地址獲取MAC地址的一個TCP/IP協議。在一個局域網環境下,我們請求互聯網都是通過網關幫我們進行轉發的,而接收互聯網消息也是通過網關轉發給我們。
ARP欺騙
網絡協議共分七層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。
在網絡協議中,IP地址通常的MAC地址相對應,一個IP地址對應一個MAC地址。我們設置的默認網關地址術語第三層即網絡層,它是通過IP地址尋址的,但是ARP屬於第二層即數據鏈路層,在這一層沒有IP協議,因此它是通過MAC地址進行尋址的,前面我們提到ARP通過IP地址獲取MAC地址,如果我們改變了網關IP地址對應的MAC地址,就能達到ARP欺騙的目的。因爲它通過IP地址獲得的不是原來網關的MAC地址,而是我們攻擊機的MAC地址。也就是說ARP會誤認爲我們攻擊機纔是真正的網關,這是就會將請求發送到我們攻擊機。如果我們不做任何響應,目標主機就呈現出了斷網的假象(注意:它不是真正意義上的斷網,而是我們不返回任何數據給目標主機造成的假象)。我們還可以攔截到請求,修改數據併發送到互聯網,通過將互聯網響應的數據修改後返回給目標主機。
網關會定時向局域網廣播自身的IP地址和MAC地址,因此在進行ARP欺騙時,也要定時進行,以達到持續欺騙的目的。
ARP斷網攻擊
說了這麼多,接下來開始真正的ARP斷網攻擊。
所需工具是Kali Linux,它是一款專門爲網絡安全人員準備的基於Linux的操作系統,該系統涵蓋了絕大多數滲透測試工具,其界面如下圖所示。
該系統下載地址爲:https://www.kali.org/downloads/
建議讀者下載VMWare的虛擬機版本。
進行ARP攻擊非常簡單,Kali Linux自帶攻擊工具,輸入下述命令即可:
arpspoof -i eth0 -t 10.205.29.73 10.205.29.126
如圖所示:
這時,目標主機將無法訪問互聯網。按住Ctrl-C就能停止攻擊。
上述命令中,eth0爲網絡名,讀者可通過ifconfig查看。第一個IP地址爲目標主機的IP地址,第二個IP地址爲網關的IP地址,同樣可以通過ifconfig查看。
APR斷網攻擊之防禦
俗話說,上有政策,下有對策。有攻擊就有防禦,本小節我們就來探討如何防禦ARP斷網攻擊。
我們知道,ARP通過MAC地址尋址,修改MAC地址達到欺騙目的。那麼,我們將ARP設置爲靜態地址,不就能保證其尋址始終是正確的MAC地址嗎?
添加靜態ARP也很簡單,首先查看網絡連接信息,如圖所示。
可以看到當前主機網絡名爲以太網3。
然後輸入命令netsh -c i i show in,如圖所示。
可以看到以太網3 對應的Idx爲33。
再次輸入命令arp -a查看網關對應的MAC地址,如圖所示。
筆者網關爲10.205.29.126,因此對應的MAC地址爲:44-82-e5-e0-50-0b。
最後輸入命令:netsh -c i i add neighbors 33 10.205.29.126 44-82-e5-e0-50-0b,即可添加靜態ARP。
這時用Kali Linux進行ARP斷網攻擊將無法生效。