一、實驗目的
-
掌握ARP欺騙攻擊
-
掌握ARP欺騙攻擊全過程
-
學會防範ARP欺騙
二、實驗環境
-
系統環境:Windows環境,kail環境,XP環境
-
軟體工具:packEth,
三、實驗原理
ARP快取
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主機訪問某網站已經登入的使用者名稱和密碼,如下圖所示:
五、ARP攻擊防範:
1.雙向繫結:
一般來說,在小規模網路中,比較推薦使用雙向繫結,也就是在路由器和終端上都進行IP-MAC繫結的措施,它可以對ARP欺騙的兩邊,偽造閘道器 和截獲資料,都具有約束的作用。這是從ARP欺騙原理上進行的防範措施,也是最普遍應用的辦法。它對付最普通的ARP欺騙是有效的。
2.ARP防火牆:
在一些防毒軟體中加入了ARP防火牆的功能,它是通過在終端電腦上對閘道器進行繫結,保證不受網路中假閘道器的影響,從而保護自身資料不被竊取的措施。ARP防火牆使用範圍很廣,但也會有問題,如,它不能保證繫結的閘道器一定是正確的。如果一個網路中已經發生了ARP欺騙,有人在偽造閘道器,那麼,ARP防火牆上來就會繫結這個錯誤的閘道器,這是具有極大風險的。
3.VLAN和交換機埠繫結:
通過劃分VLAN和交換機埠繫結來防範ARP,也是常用的防範方法。做法是細緻地劃分VLAN,減小廣播域的範圍,使ARP在小範圍內起作 用,而不至於發生大面積影響。同時,一些網管交換機具有MAC地址學習的功能,學習完成後,再關閉這個功能,就可以把對應的MAC和埠進行繫結,避免了病毒利用ARP攻擊篡改自身地址。也就是說,把ARP攻擊中被截獲資料的風險解除了。