天天看點

ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙

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

​1.1 什麼是網關

首先來簡單解釋一下什麼是網關,網關工作在OSI七層模型中的傳輸層或者應用層,用于高層協定的不同網絡之間的連接配接,簡單地說,網關就好比是一個房間通向另一個房間的一扇門。

1.2 ARP協定是什麼

ARP(Address Resolution Protocol)位址轉換協定,工作在OSI模型的資料鍊路層,在以太網中,網絡裝置之間互相通信是用MAC位址而不是IP位址,ARP協定就是用來把IP位址轉換為MAC位址的。而RARP和ARP相反,它是反向位址轉換協定,把MAC位址轉換為IP位址。

假設A(192.168.1.2)與B(192.168.1.3)在同一區域網路,A要和B實作通信。A首先會發送一個資料包到廣播位址(192.168.1.255),該資料包中包含了源IP(A)、源MAC、目的IP(B)、目的MAC,這個資料包會被發放給區域網路中所有的主機,但是隻有B主機會回複一個包含了源IP(B)、源MAC、目的IP(A)、目的MAC的資料包給A,同時A主機會将傳回的這個位址儲存在ARP快取記錄中,這應該就是通過ping 主機然後 arp -a檢視區域網路内主機的原理。

1.3 ARP欺騙原理

上面提到過了ARP快取記錄,在每台主機都有一個ARP快取記錄,緩存表中記錄了IP位址與MAC位址的對應關系,而區域網路資料傳輸依靠的是MAC位址。

假設主機 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之間聊了些什麼

上面ABCG的故事就是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.1 實戰ARP欺騙

ARP欺騙又被稱為ARP毒化,屬于中間人攻擊,我用虛拟機來模拟一下ARP欺騙的全過程

首先,看一下

  

ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙

ARP快取記錄中預設已經存在了網關IP、MAC位址的記錄

看一下目标主機的ARP快取記錄

ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙

再進行arp欺騙之前必須要開啟IP轉發,否則當欺騙成功之後,目标機會斷網,這樣會被對方察覺

sysctl -w net.ipv4.ip_forward=1 或者 echo 1 > /proc/sys/net/ipv4/ip_forward

  可以使用 cat /proc/sys/net/ipv4/ip_forword 檢視是否開啟ip轉發

ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙
ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙

使用driftnet 工具檢視被攻擊主機上浏覽的圖檔

ARP欺騙原理,實戰和防禦2.1 實戰ARP欺騙 3 怎樣防範ARP欺騙

3 怎樣防範ARP欺騙

1.在主機綁定網關MAC與IP位址為靜态(預設為動态),指令:arp -s 網關IP 網關MAC

2.在網關綁定主機MAC與IP位址

3.使用ARP防火牆

繼續閱讀