淺析ARP協議及ARP攻擊


一. ARP數據包結構

 


(1)硬件類型:指明發送方想知道的硬件接口類型,以太網的值為1;
(2)協議類型:指明發送方提供的高層協議類型;它的值為 0x0800 即表示 IP地址。
(3)硬件地址長度和協議長度: 指明硬件地址和高層協議地址的長度,這樣ARP報文就可以在任意硬件和任意協議的網絡中使用;對於以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4。
(4)op:操作字段用來表示這個報文的類型,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;

 

ARP協議解析過程(ARP協議只使用於局域網中)

> 局域網網絡中實際傳輸的是“幀”,幀里面是有目標主機的MAC地址的。
> 在以太網中,主機與主機相互通信,必須要知道目標主機的MAC地址。要想獲得目標主機的MAC地址,需要通過地址解析協議進行解析。
  “地址解析”: 就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
> ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
> 點對點的連接是不需要ARP協議的

 

1. 每台主機都會有一個ARP緩沖區,該緩沖區記錄了IP地址和MAC地址的對應關系,稱為ARP高速緩存表。
2. 當源主機將一個數據包發送到目的主機時,會先檢查自己 ARP緩存表中是否存在該 IP地址對應的MAC地址,如果有﹐就直接將數據包發送到這個MAC地址;
   如果沒有,就以廣播形式向本地網段發起一個ARP請求,查詢此目的主機對應的MAC地址。此ARP請求數據包里包括源主機的IP地址、硬件地址、以及目的主機的IP地址。
3. 網絡中所有的主機收到這個ARP請求后,會檢查數據包中的目的IP是否和自己的IP地址一致。
   如果不相同就忽略此數據包;
   如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP緩存表中,
   如果ARP緩存表中已經存在該IP的信息,則將其覆蓋更新,然后給源主機發送一個 ARP響應數據包,告訴對方自己是它需要查找的MAC地址;
4. 源主機收到這個ARP響應數據包后,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,利用此信息進行數據的傳輸。
  如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。

 

 二. 淺談ARP欺騙攻擊

Gratuitous ARP (免費ARP) 報文
  免費ARP報文是一種特殊的ARP報文,該報文中攜帶的發送端IP地址和目標IP地址都是本機IP地址,
報文源MAC地址是本機MAC,目的MAC地址是廣播地址。開機或者更改了IP地址,會發送免費ARP。

免費ARP具有如下2個作用:
(1)確定其它設備的 IP地址是否與本機 IP地址沖突。
   當其它設備收到免費ARP報文后,如果發現報文中的IP地址和自己的IP地址相同,則給發送免費ARP報文的設備返回一個ARP應答,告知該設備IP地址沖突。
(2)設備改變了硬件地址,通過發送免費ARP報文通知其它設備更新ARP表項.

 

 

如果我們偽造並發送惡意的Gratuitous ARP報文,通知其他主機更新ARP緩存記錄,同時發送偽造的ARP響應數據包,使目標機器更新記錄時與IP對應的MAC地址變成我們指定的MAC地址,就達到了欺騙的目的。

 

ARP攻擊模式

 

 

 

下面分析一下進行ARP欺騙時的報文內容

正常 IP-MAC 對應關系

我們進行ARP欺騙的實驗目標: 192.168.1.151 xxxx:50:96

本機IP-MAC: 192.168.1.150  xxxx:00:f4

 

我們進行ARP雙向欺騙,然后查看ARP數據包情況

欺騙流程:發送惡意Gratuitous ARP報文,通知其他主機更新ARP緩存記錄,同時發送偽造的ARP響應報文

下面就來看看用於欺騙的響應報文的內容(第一個和第二個報文)

(1)對目標主機192.168.1.151的欺騙報文(即圖中的第一個報文)

該響應報文發送給我們要欺騙的目標主機192.168.1.151,告知它網關的MAC地址為 xxxx:00:f4(實際上這個MAC是攻擊者的MAC)

(2)對網關的欺騙報文(即圖中的第二個報文)

該響應報文發送給我們要欺騙的網關192.168.1.1,告知它主機192.168.1.151的MAC地址為 xxxx:00:f4(實際上這個MAC是攻擊者的MAC)

 

實現ARP防護與檢測

一. 防護

(1)綁定MAC

(2)使用ARP防火牆

ARP防火牆原理
軟件定期向網關發送Gratuitous ARP,以通告自己正確的ARP信息
發送頻率過高嚴重占用網絡帶寬
發送頻率過低則達不到防范目的

二. ARP攻擊檢測思路

(1)檢測網絡中是否出現大量Gratuitous ARP報文和ARP響應報文

(2)檢查自己收到的ARP報文中 IP-MAC 對應關系是否與本地的記錄發生變化

小方法:

nbtscan:  能直接掃描到PC的真實IP地址和MAC地址;

tracert -d: 發現第一條是本網段內的另外一台機器的IP,說明可能遭受了ARP攻擊(正常情況下路由跟蹤執行后的輸出第一條就應該是默認網關地址)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM