標籤:arp協議 sso 其他 關係 更新 span 快取 操作 需要
一. ARP資料包結構
(1)硬體類型:指明發送方想知道的硬體介面類型,乙太網路的值為1;
(2)協議類型:指明發送方提供的高層協議類型;它的值為 0x0800 即表示 IP地址。
(3)硬體地址長度和協議長度: 指明硬體地址和高層協議地址的長度,這樣ARP報文就可以在任意硬體和任意協議的網路中使用;對於乙太網路上IP地址的ARP請求或應答來說,它們的值分別為6和4。
(4)op:操作欄位用來表示這個報文的類型,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;
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 對應關係是否與本地的記錄發生變化
用python寫了一個小工具用於檢測ARP欺騙攻擊,有興趣的可以參考一下,歡迎指正交流
http://www.cnblogs.com/ssooking/p/6116253.html
淺析ARP協議及ARP攻擊