掌握ARP欺騙攻擊
掌握ARP欺騙攻擊全過程
學會防範ARP欺騙
系統環境:Windows環境,kail環境,XP環境
軟體工具:packEth
1.在每台安裝有TCP/IP協定的電腦裡都有一個ARP快取記錄,表裡的IP位址與MAC位址是一一對應的,如下圖所示是window7主機的ARP快取記錄:

在上圖所示的ARP快取記錄中,IP位址192.168.70.129映射的MAC位址為00-50-56-2b-68-41,下面我們以主體X(192.168.70.129)向主機Y(192.168.70.134)發送資料為例,說明ARP工作過程。
當主機X發送資料時,它會在自己的ARP快取記錄中尋找是否有主機Y的IP位址。如果找到了,也就知道了主機Y的MAC位址,直接把目标MAC位址寫入資料包裡面發送就可以了;如果在ARP快取記錄中沒有找到主機Y的IP位址,主機X就會在網絡上發送一個廣播,目标MAC位址是“FF-FF-FF-FF-FF-FF”,這個表示向同一網段内的所有主機發出這樣的詢問:192.168.70.129的MAC位址是什麼?網絡上其他主機并不響應ARP詢問,隻有主機Y接收到這個資料包時,才會向主機X做出這樣的回應:192.168.70.129的MAC位址是00-50-56-2b-68-41。這樣,主機X就知道了主機Y的MAC位址,他就可以向主機Y發送資訊了,同時它還更新了自己的ARP快取記錄,下次再向主機Y發送資訊時,直接從ARP快取記錄裡查找就可以了。ARP快取記錄采用了老化機制,在一段時間内如果表中的某一行沒有使用就會被删除,這樣可以大大減少ARP快取記錄的長度,加快查詢速度。
2.ARP欺騙定義
從前面的介紹可以看出,ARP的緻命缺陷是:他不具備任何的認證機制,當有個人請求某個IP位址的MAC時,任何人都可以用MAC位址進行回複,并且這種響應也會被認為是合法的。
ARP并不隻在發送了ARP請求後才接收ARP應答。當主機接收到ARP應答資料包的時候,就會對本機的ARP緩存進行更新,将應答中的IP和MAC位址存儲在ARP快取記錄中。此外,由于區域網路中資料包不是根據IP位址,而是按照MAC位址進行傳輸的。所有對主機實施ARP欺騙就成為可能。
3.ARP常用指令:
arp -a
用于檢視緩存表中的所有項目
arp -a ip
隻顯示包含指定IP的緩存表項目
arp -s ip mac
向ARP快取記錄中添加靜态目錄,該項目在計算機啟動過程中一直有效
arp -d ip
删除ARP快取記錄中靜态項目
下面PC2要對PC1進行ARP欺騙攻擊,目标是更改PC1緩存表中網關的MAC位址更新為aa:aa:aa:aa:aa:aa實施欺騙,導緻PC1無法正常上網
更新前:PC1的緩存表如下圖所示網關IP:192.168.70.2對應的MAC位址是:00-50-56-e5-d2-ff
此時PC1是可以正常上網的如下圖所示:
打開Windows7将packEth壓縮包解壓成檔案夾後,找到packEth.exe檔案輕按兩下打開
打開packEth.exe檔案,選擇第二個網卡,選擇ARP packet模式
發送方IP和MAC填寫網關的真實IP位址和此處修改MAC位址為aa:aa:aa:aa:aa:aa以達到欺騙效果,選擇Arp packet功能以及ARP reply 應答包,MAC Header處填寫目标真實MAC位址(此處為PC1的MAC位址),源MAC位址填寫修改的MAC位址(此處為aa:aa:aa:aa:aa:aa)設定好後點選Send開始發包
更新後:此時我們傳回到PC1裡使用指令arp -a 檢視網關的MAC位址成功被我們修改成了aa:aa:aa:aa:aa:aa
此時我們再次驗證PC1是否能正常上網,發現已經無法正常上網了,如下圖所示:
PC2向PC1發送一個自己僞造的ARP應答包,而這個應答資料中發送方IP位址是網關的192.168.70.2映射的MAC更新為aa:aa:aa:aa:aa:aa(網關的MAC位址本來應該是00-50-56-e5-d2-ff,此時已經被我們僞造了)。當PC1收到PC2僞造的ARP應答,就會更新本地的ARP快取記錄(PC1不知道MAC已經被僞造了),而且PC1不知道這個ARP應答包是從PC2發送過來的。這樣PC1發送給網關的資料包都變成了發給PC2了。PC1對所發生的變化一點兒都沒有意識到,但是接下來的事情就讓PC1産生了懷疑,因為它無法正常上網了,這是因為PC2隻是接收PC1發給網關的資料,并沒有轉發給網關。
2.PC2做“maninthemiddle”(中間人),進行ARP重定向。打開自己的IP轉發功能,将PC1發送過來的資料包轉發給網關,就好比一個路由器一樣,而網關接收到資料包完全認為是PC1發送過來的。不過,網關發送的資料包又直接傳遞給PC1,倘若再次進行對網關的ARP欺騙,那麼PC2就完全成為PC1和網關的中間橋梁,對于PC1與網關的通訊就可以了如指掌了(如果你被人ARP監控了,想想是不是很可怕)
啟動kali虛拟機,打開終端,輸入指令:ettercap -G 如圖所示:
在進行中間人攻擊之前首先需要掃描目前區域網路中存在的活動主機,确認攻擊目标機器,點選Unified sniffing開啟嗅探,如下圖所示:
選擇目前網卡eth0,點選OK進入嗅探,如下圖所示:
點選菜單中的Hosts,選中Scan for hosts 掃描和本機(kali)同網關所有的主機,如下圖所示:
點選菜單Hosts,選中Host list 列出同網關所有互動的主機,掃描結果如下圖所示:192.168.70.133為Windows7主機的IP位址,192.169.70.2為網關IP位址
接下來選擇攻擊目标,右鍵Windows目标IP點選Add to Target 1,選擇第二個攻擊目标IP(網關),右鍵網關目标IP點選Add to Target 2,如下圖所示:
然後确定攻擊方式,此處點選菜單Mitm,選中ARP posoning采用ARP欺騙的攻擊方式,如下圖所示:
勾選Sniff remote connections,點選确認按鈕,如下圖所示:
點選菜單start,選中Start sniffing,開始監聽
在Windows7虛拟機中,打開cmd指令控制視窗,輸入arp -a檢視arp緩存表,結果發現網關(192.168.70.2)的MAC位址變成了和kali主機的MAC位址相同,如下圖所示:
到此為止我們開始驗證ARP中間人欺騙是否成功了
傳回到Windows7虛拟機,打開浏覽器通路一個登入界面,輸入登入使用者名和密碼,點選确認登陸,如下圖所示:
傳回到kali主機我們已成功擷取到Windows7主機通路某網站已經登入的使用者名和密碼,如下圖所示:
1.雙向綁定:
一般來說,在小規模網絡中,比較推薦使用雙向綁定,也就是在路由器和終端上都進行IP-MAC綁定的措施,它可以對ARP欺騙的兩邊,僞造網關 和截獲資料,都具有限制的作用。這是從ARP欺騙原理上進行的防範措施,也是最普遍應用的辦法。它對付最普通的ARP欺騙是有效的。
2.ARP防火牆:
在一些防毒軟體中加入了ARP防火牆的功能,它是通過在終端電腦上對網關進行綁定,保證不受網絡中假網關的影響,進而保護自身資料不被竊取的措施。ARP防火牆使用範圍很廣,但也會有問題,如,它不能保證綁定的網關一定是正确的。如果一個網絡中已經發生了ARP欺騙,有人在僞造網關,那麼,ARP防火牆上來就會綁定這個錯誤的網關,這是具有極大風險的。
3.VLAN和交換機端口綁定:
通過劃分VLAN和交換機端口綁定來防範ARP,也是常用的防範方法。做法是細緻地劃分VLAN,減小廣播域的範圍,使ARP在小範圍内起作 用,而不至于發生大面積影響。同時,一些網管交換機具有MAC位址學習的功能,學習完成後,再關閉這個功能,就可以把對應的MAC和端口進行綁定,避免了病毒利用ARP攻擊篡改自身位址。也就是說,把ARP攻擊中被截獲資料的風險解除了。