1. 什麼是ARP?
ARP(AddressResolutionProtocol)地址解析協議用於將計算機的網絡IP地址轉化為物理MAC地址。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。在每台安裝有TCP/IP協議的電腦裡都有一個ARP緩存表,表裡的IP地址與MAC地址是一一對應的,如果系統ARP緩存表被修改不停的通知路由器一系列錯誤的內網IP或者干脆偽造一個假的網關進行欺騙的話,網絡就肯定會出現大面積的掉線問題。ARP攻擊在現今的網絡中頻頻出現,有效的防范ARP形式的網絡攻擊已成為確保網絡暢通必要條件。
2. ARP的原理。
我在網上找到了一段很生動的描述:
通常主機在發送一個ip包之前,它要到該轉換表中尋找和ip包對應的mac地址。如果沒有找到,該主機就發送一個ARP廣播包,看起來象這樣子:
"我是主機xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip為xxx.xxx.xxx.xx1的主機請告之你的mac來"
ip為xxx.xxx.xxx.xx1的主機響應這個廣播,應答ARP廣播為:
"我是xxx.xxx.xxx.xx1,我的mac為xxxxxxxxxx2"
於是,主機刷新自己的ARP緩存,然後發出該ip包。
了解這些常識後,現在就可以談在網絡中如何實現ARP欺騙了,可以看看這樣一個例子:
一個入侵者想非法進入某台主機,他知道這台主機的防火牆只對192.0.0.3(假設)這個ip開放23口(telnet),而他必須要使用telnet來進入這台主機,所以他要這麼做:
1、他先研究192.0.0.3這台主機,發現這台95的機器使用一個oob就可以讓他死掉。
2、於是,他送一個洪水包給192.0.0.3的139口,於是,該機器應包而死。
3、這時,主機發到192.0.0.3的ip包將無法被機器應答,系統開始更新自己的arp對應表。將192.0.0.3的項目搽去。
4、這段時間裡,入侵者把自己的ip改成192.0.0.3
5、他發一個ping(icmp 0)給主機,要求主機更新主機的arp轉換表。
6、主機找到該ip,然後在arp表中加入新的ip-->mac對應關系。
7、防火牆失效了,入侵的ip變成合法的mac地址,可以telnet了。
有人也許會說,這其實就是冒用ip嘛。是冒用了ip,但決不是ip欺騙,ip欺騙的原理比這要復雜的多,實現的機理也完全不一樣。3. 實戰ARP
我給大家演示一下ARP入侵是如何實現的。給大家揭開這個謎團。當然,只是一筆帶過,這篇文章只是讓大家識別並防范。決不會教大家利用並入侵。
圖一,防火牆攔截了我本機發出的真實ARP信息(IP:192.168.1.23):
圖二,偽裝IP和MAC。大家記一下和下面的對比: