中間人攻擊——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快取表中。
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快取表中預設已經存在了閘道器IP、MAC地址的記錄
看一下目標主機的ARP快取表
目標IP與本機IP
再進行arp欺騙之前必須要開啟IP轉發,否則當欺騙成功之後,目標機會斷網,這樣會被對方察覺
sysctl -w net.ipv4.ip_forward=1 或者 echo 1 > /proc/sys/net/ipv4/ip_forward
已經成功開啟IP轉發
向目標192.168.124.133傳送返回包,包含內容:
源ip:192.168.124.2
源MAC:00:0c:29:86:a1:04
此時再來看目標主機ARP快取
可以看出目標主機arp快取已經發生了變化,在快取表中所記錄的閘道器(192.168.124.2)的MAC已經變為了攻擊者的MAC
以上就是一次簡單的ARP欺騙了
2.2 ARP欺騙的危害
區域網之間主機通訊會收到影響,如果是閘道器欺騙,上網際網路也會受影響
黑客利用ARP欺騙可以竊取使用者敏感資訊、掛馬等
在這裡我簡單演示一下ARP欺騙嗅探Telnet賬戶密碼
3 怎樣防範ARP欺騙
1.在主機繫結閘道器MAC與IP地址為靜態(預設為動態),命令:arp -s 閘道器IP 閘道器MAC
2.在閘道器繫結主機MAC與IP地址
3.使用ARP防火牆
本文由i春秋學院提供,原文地址: http://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=1739&highlight=防?from=bky