網絡攻防實戰--ARP欺騙

二、實驗環境(實驗設備)

硬件:微型計算機

軟件: kali linux下的arpspoof工具和driftnet工具

 

三、實驗原理及內容以及實驗小結

ARP欺騙

利用arpspoof工具和driftnet工具的arp欺騙實驗

①實驗原理

    1.ARP協議:ARP(Address Resolution Protocol,地址解析協議)是一個位於TCP/IP協議棧中的網絡層,負責將某個IP地址解析成對應的MAC地址。

2.ARP協議的基本功能:通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的進行。

3. ARP攻擊的侷限性:ARP攻擊僅能在局域網進行,無法對外網進行攻擊。

4. ARP攻擊的攻擊原理:ARP攻擊就是通過僞造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出僞造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。

5.常見的ARP欺騙手法:同時對局域網內的一臺主機和網關進行ARP欺騙,更改這臺主機和網關的ARP緩存表。如下圖(PC2是攻擊主機,PC1是被攻擊主機)所示:

攻擊主機PC2發送ARP應答包給被攻擊主機PC1和網關,分別修改它們的ARP緩存表, 將它們的ip地址所對應的MAC地址,全修改爲攻擊主機PC2的MAC地址,這樣它們之間數據都被攻擊主機PC2截獲。

 

②實驗內容

   實驗內容分爲兩個部分:ARP斷網攻擊和ARP欺騙(截獲圖片)。這兩個實驗都是用了arpspoof這個工具,其中進行斷網攻擊時,不開啓IP轉發功能即可(在我們用的kali linux系統中,這個功能默認是關閉的);而進行ARP欺騙時,要打開IP轉發功能。

 

1、利用arpspoof進行ARP斷網攻擊

  A. 實驗說明:

   *被攻擊主機:電腦的物理機,win10系統,其ip地址爲192.168.43.64,MAC地址爲e0:94:67:9c:24:e9

   *攻擊主機:電腦的虛擬機,kali linux系統,其ip地址爲192.168.43.149,MAC地址爲00:0c:29:cd:6c:36

   *網關:ip地址爲192.168.43.1,MAC地址爲d4-61-2e-d6-bc-10

   *  攻擊工具:kali linux系統下的arpspoof工具

  B. 實驗步驟:

  Step 1. 在攻擊主機打開終端,輸入ifconfig,查看其網卡名稱、ip地址、MAC地址。

圖中,紅色箭頭爲網卡名稱,紫色箭頭爲ip地址,藍色箭頭爲MAC地址。

 

   Step 2. 在虛擬機中,通過fping命令,查看當前局域網還存在那些主機,以確定要攻擊的主機的ip地址

上圖中,第一個ip地址192.168.43.1即爲當前局域網的網關,而第二個ip地址就是要攻擊的物理機的ip地址:192.168.43.64

 

 

   Step 3. 在物理機中,通過控制面板中的網絡和共享中心,查看物理機的ip地址,驗證步驟二是否正確。

從右圖中可以看出,物理機的ip地址的確爲192.168.43.64(藍色箭頭),其MAC地址爲E0-94-67-9C-24-E9(紅色箭頭),而局域網的網關地址也確實爲192.168.43.1

 

   Step 4. 在虛擬機中,ping一下要攻擊的物理機,同時在物理機中ping一下虛擬機。確保兩臺主機可以通信。

從圖中可以看出,沒有包丟失,兩臺主機可以通信。可以進行ARP攻擊。

 Step 5. 在進行ARP攻擊之前,可以先查看一下被攻擊主機的ARP緩存表。以便於被攻擊後的ARP緩存表進行對照。在物理機中,打開cmd,輸入arp -a

圖中顯示,物理機中的ARP緩存表記錄了網關的MAC地址和攻擊主機的MAC地址,可以看出它們的MAC地址是不一樣的。

 

   Step 6. 在攻擊之前,檢測一下被攻擊主機的聯網狀態,用被攻擊主機的cmdping一下百度。

圖中顯示,沒有包丟失,說明此時被攻擊主機可以上網。

 

Step 7. 在虛擬機中打開終端,利用arpspoof工具,對物理機發起ARP斷網攻擊。

輸入arpspoof -i eth0 -t 192.168.43.64 192.168.43.1。其中,-i後面的參數是網卡名稱,-t後面的參數是目的主機和網關,要截獲目的主機發往網關的數據包。

從圖中可以看出,此時虛擬機不斷地向物理機發送ARP應答包,這個應答包將網關的ip地址192.168.43.1和虛擬機的MAC地址0:c:29:cd:6c:36綁定在一起,從而將物理機的ARP緩存表中的網關的MAC地址修改爲虛擬機的MAC地址。

   

Step 8. 在物理機中再次使用cmd,向百度發送一個ping包,檢查是否可以聯網。

同時打開網頁,進行檢查。

圖中的包全部丟失,沒有接收到任何一個包。再打開百度網頁進行查看。

從上面兩張圖,可以看出,此時物理機已經斷網了。

 

Step 9.檢查被攻擊主機的ARP緩存表,驗證其是否被ARP攻擊了。

從圖中,可以看出,此時被攻擊主機的ARP緩存表中的網關和攻擊主機的MAC地址是一樣的,均爲攻擊主機的MAC地址。可以認定,物理機遭遇了ARP攻擊。

 

   Step 10. 關閉虛擬機的終端,再次檢查物理機的聯網狀態,ping一下百度。

從圖中可以看出,在一會的延遲之後,物理機又可以ping通百度了,又可以正常上網了。

 

 

2.利用arpspoof工具和driftnet工具進行ARP欺騙(截獲圖片)

A. 實驗說明:

   *被攻擊主機:電腦的物理機,win10系統,其ip地址爲192.168.43.64,MAC地址爲e0:94:67:9c:24:e9

   *攻擊主機:電腦的虛擬機,kali linux系統,其ip地址爲192.168.43.149,MAC地址爲00:0c:29:cd:6c:36

   *網關:ip地址爲192.168.43.1,MAC地址爲d4-61-2e-d6-bc-10

   *  攻擊工具:kali linux系統下的arpspoof工具

  B. 實驗步驟:

  Step 1. 在攻擊主機打開終端,輸入ifconfig,查看其網卡名稱、ip地址、MAC地址。

圖中,紅色箭頭爲網卡名稱,紫色箭頭爲ip地址,藍色箭頭爲MAC地址。

Step 2. 在虛擬機中,通過fping命令,查看當前局域網還存在那些主機,以確定要攻擊的主機的ip地址

上圖中,第一個ip地址192.168.43.1即爲當前局域網的網關,而第二個ip地址就是要攻擊的物理機的ip地址:192.168.43.64

 

 

   Step 3. 在物理機中,通過控制面板中的網絡和共享中心,查看物理機的ip地址,驗證步驟二是否正確。

從右圖中可以看出,物理機的ip地址的確爲192.168.43.64(藍色箭頭),其MAC地址爲E0-94-67-9C-24-E9(紅色箭頭),而局域網的網關地址也確實爲192.168.43.1

 

   Step 4. 在虛擬機中,ping一下要攻擊的物理機,同時在物理機中ping一下虛擬機。確保兩臺主機可以通信。

從圖中可以看出,沒有包丟失,兩臺主機可以通信。可以進行ARP攻擊。

 

   Step 5. 在進行ARP攻擊之前,可以先查看一下被攻擊主機的ARP緩存表。以便於被攻擊後的ARP緩存表進行對照。在物理機中,打開cmd,輸入arp -a

圖中顯示,物理機中的ARP緩存表記錄了網關的MAC地址和攻擊主機的MAC地址,可以看出它們的MAC地址是不一樣的。

Step 6. 在進行ARP欺騙前,得先打開攻擊主機的IP轉發功能,linux因爲系統安全考慮,是不支持IP轉發的,其配置文件寫在/proc/sys/net/ipv4ip_forward中。默認爲0,接下來修改爲1

 

圖中是直接找到ip_forward文件,將其值修改爲1的。當然也可以通過命令行echo 1 > /proc/sys/net/ipv4/ip_forward實現。

 

   Step 7.在進行ARP欺騙前,先檢查物理機的聯網狀態,Ping一下百度。

沒有包丟失,可以ping通,物理機可以正常上網。

 

   Step 8.kali linux中利用arpspoof工具,對物理機發起AR欺騙攻擊。

輸入arpspoof -i eth0 -t 192.168.43.64 192.168.43.1。其中,-i後面的參數是網卡名稱,-t後面的參數是目的主機和網關,要截獲目的主機發往網關的數據包。

從圖中可以看出,此時虛擬機不斷地向物理機發送ARP應答包,這個應答包將網關的ip地址192.168.43.1和虛擬機的MAC地址0:c:29:cd:6c:36綁定在一起,從而將物理機的ARP緩存表中的網關的MAC地址修改爲虛擬機的MAC地址。虛擬機截獲了物理機和網關之間的數據包。

 

   Step 9.檢查物理機的聯網狀態,Ping一下百度。

沒有包丟失,可以ping通,物理機依舊可以正常上網。

 

Step 10.檢查物理機的ARP緩存表,檢查其是否遭遇了ARP欺騙。

從圖中,可以看出,此時被攻擊主機的ARP緩存表中的網關和攻擊主機的MAC地址是一樣的,均爲攻擊主機的MAC地址。可以認定,物理機遭遇了ARP欺騙。

 

Step 11. 此時,物理機和網關通信的數據包都會流經虛擬機,那麼可以在虛擬機中利用driftnet工具,可以捕獲物理機正在瀏覽的圖片。在虛擬機中打開driftnet

從圖中可以看出,虛擬機正在不斷地捕獲物理機和網卡之間的數據包。

Step 12.在物理機中,打開一個網頁,瀏覽幾張圖片。並在虛擬機中driftnet窗口中監看。

這是物理機正在查看一張風景圖。

 

而虛擬機中driftnet窗口右下角可以看到這張圖片,另外窗口中的其他圖片是物理機登陸的QQ中的圖片,第一行的前三個是羣頭像,其他的是QQ聊天的氣泡圖片,可以判斷,此時這三個羣有消息發送到物理機,而且這些消息使用了窗口顯示的氣泡。

此時,物理機換了一張圖片進行查看。

在虛擬機中的driftnet窗口中,依舊可以看到這張圖片。

實驗小結

(一)實驗中遇到的主要問題及解決方法

   1.問題:一開始查看虛擬機的ip地址時,發現虛擬機的ip地址和物理機的ip地址不在同一個網段中。如圖:

虛擬機的ip地址爲192.168.233.128,而物理機的ip地址爲192.168.43.64。兩者不在同一個局域網中。根據ARP攻擊的侷限性,不在同一個局域網的兩臺主機是無法進行攻擊的。

解決方法:通過查閱資料,發現虛擬機的網絡連接有三種模式:橋接模式、NAT模式、僅主機模式。一開始我們的虛擬機採用了默認的NAT模式,這種模式下虛擬機共享主機的IP地址,Vmware會在主機上創建專用的虛擬網絡,用於主機和虛擬機之間進行通信。而在橋接模式下,虛擬機被當做一個完全獨立的主機,佔用局域網的一個IP地址,將虛擬機的網卡交接到主機的物理網卡上,通過主機的網卡訪問外部的Internet。所以我們應該選擇橋接模式。

 

 

 

2.

   問題:物理機可以ping通虛擬機,虛擬機卻ping不通物理機。

 

 

解決方式:組員積極討論,回想老師在課上提到的“現在系統將不經常用的端口設置爲默認關閉”,大膽猜測:linux系統比較開放,默認開啓ping功能,而win10系統可能會默認關閉ping功能。查看win10系統上的與Ping相關服務的開啓狀態。

果然,win10默認關閉的ICMP的回顯請求,啓用該規則之後,兩臺主機就可以成功ping通了。

(二)實驗心得

       通過上面的兩個小實驗,我們對ARP攻擊有了一個更加直觀、更加深刻的瞭解。另外,通過自己動手實踐,發現書上講的知識還是要動手做一做才行,因爲書上的機器環境可能和你自己的不一樣,要通過自己的積極實踐、不斷查閱資料,才能不斷解決問題,加深對知識的理解。最後,對於老師課上講的東西,不僅僅要認真記錄,更要去理解,只有在理解的基礎上,才能達到舉一反三、觸類旁通的效果。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章