1. 程式人生 > >用Cain&Abel進行ARP欺騙和用Wireshark偵測ARP欺騙

用Cain&Abel進行ARP欺騙和用Wireshark偵測ARP欺騙

1.開始前先簡單闡述ARP欺騙的原理:

1).ARP雙向欺騙的原理:

假設主機 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 閘道器 G 192.168.1.1; 在同一區域網,主機A和B通過閘道器G相互通訊,就好比A和B兩個人寫信,由郵遞員G送信,C永遠都不會知道A和B之間說了些什麼話。但是並不是想象中的那麼安全,在ARP快取表機制存在一個缺陷,就是當請求主機收到ARP應答包後,不會去驗證自己是否向對方主機發送過ARP請求包,就直接把這個返回包中的IP地址與MAC地址的對應關係儲存進ARP快取表中,如果原有相同IP對應關係,原有的則會被替換。

這樣C就有了偷聽A和B的談話的可能,繼續思考上面的例子:

C假扮郵遞員,首先要告訴A說:“我就是郵遞員” (C主機向A傳送構造好的返回包,源IP為G 192.168.1.1,源MAC為C自己的MAC地址),愚蠢的A很輕易的相信了,直接把“C是郵遞員”這個資訊記在了腦子裡;

C再假扮A,告訴郵遞員:“我就是A” (C向閘道器G傳送構造好的返回包,源IP為A 192.168.1.2,源MAC地址為自己的MAC地址),智商捉急的郵遞員想都沒想就相信了,以後就把B的來信送給了C,C當然就可以知道A和B之間聊了些什麼

2).ARP單向欺騙的原理:

ARP單向欺騙就更好理解了,C只向A傳送一個返回包,告訴A:G 192.168.1.1 的MAC地址為 5c-63-bf-79-1d-fa(一個錯誤的mac地址),A把這個資訊記錄在了快取表中,而G的快取表不變,也就是說,A把資料包給了C,而G的包還是給A,這樣就是ARP單向欺騙了。

2.演示ARP欺騙。

環境:

路由器:NETGEAR30 IP:10.0.0.1/MAC:A0:40:A0:83:44:2F

實施ARP欺騙的主機(下面簡稱中間人):win10(關閉防火牆) IP:10.0.0.2/MAC:E4:70:B8:C1:8A:63

被ARP欺騙的主機(下面簡稱受害機):win10(關閉防火牆) IP:10.0.0.3/MAC:60:57:18:2F:C4:3E

兩臺主機通過Wifi同路由器連線。出於演示目的,受害機不斷ping路由器,模擬內網通訊。注意,整個過程是真實環境,並不是在虛擬機器中完成。

2.1).不開啟ARP欺騙:

在不開啟ARP欺騙的情況下,中間人肯定收不到受害機發往路由器的資料包(廣播包除外)。我們來看下此時路由器和受害機之間的ICMP通訊情況:

從Packet List中任意選取一組請求和響應包:

Packet detail面板顯示:ICMP請求包的"Ethernet II"楨中源地址MAC和目標地址MAC正是路由器和受害機的MAC地址,符合預期;

ICMP響應包也是同理。

順帶檢查一下受害機的arp表,目前還算正常,顯示路由器10.0.0.1的MAC是A0:40:A0:83:44:2F:

2.2).開啟ARP欺騙

我們藉助Cain&Abel在中間人10.0.0.2上完成ARP欺騙。開啟Cain,切換到Sniffer標籤-選擇混跡在區域網中的網絡卡後,點選Start Sniffer(工具欄上網絡卡形狀的圖示)-點選Add to List(工具欄上+圖示),之後Cain會自動掃描並在列表框中顯示區域網中的主機。

掃描完畢,點選Sniffer標籤頁右下角的APR標籤-點選Add to List-選擇要區域網中要被欺騙的主機及該主機對應的路由器:

配置完畢後,點選工具欄Start APR按鈕(黃黑相間的輻射標誌),此時區域網ARP欺騙已經開始。中間人可以接受到受害者的ICMP包以及來自路由器的迴應:

再次檢視受害機的ARP表,發現它到路由器的表項被篡改了:

雖然路由器和受害機受到ARP欺騙的影響,傻乎乎的把資料發給中間人10.0.0.2,倒也不是發現不了。如果在受害機上開啟Wireshark,還是能看到中間人因為發起ARP欺騙而留下了大量痕跡:

從中可以看到發往/來自10.0.0.1的資料包的MAC地址並不是路由器的MAC,這不僅反映了本機已經受到ARP欺騙的事實,還暴露了中間人的MAC地址,這倒方便網管揪出局域網裡的害群之馬!

參考:

1.中間人攻擊——ARP欺騙的原理、實戰及防禦