ARP
我們知道,當我們在浏覽器裡面輸入網址時,DNS伺服器會自動把它解析為IP位址,浏覽器實際上查找的是IP位址而不是網址。那麼IP位址是如何轉換為第二層實體位址(即MAC位址)的呢?在區域網路中,這是通過ARP協定來完成的。ARP協定對網絡安全具有重要的意義。通過僞造IP位址和MAC位址實作ARP欺騙,能夠在網絡中産生大量的ARP通信量使網絡阻塞。是以網管們應深入了解ARP協定。
一、什麼是ARP協定
ARP協定是“Address Resolution Protocol”(位址解析協定)的縮寫。在區域網路中,網絡中實際傳輸的是“幀”,幀裡面是有目标主機的MAC位址的。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目标主機的MAC位址。但這個目标MAC位址是如何獲得的呢?它就是通過位址解析協定獲得的。所謂“位址解析”就是主機在發送幀前将目标IP位址轉換成目标MAC位址的過程。ARP協定的基本功能就是通過目标裝置的IP位址,查詢目标裝置的MAC位址,以保證通信的順利進行。
二、ARP協定的工作原理
在每台安裝有TCP/IP協定的電腦裡都有一個ARP快取記錄,表裡的IP位址與MAC位址是一一對應的,如附表所示。
附表
我們以主機A(192.168.1.5)向主機B(192.168.1.1)發送資料為例。當發送資料時,主機A會在自己的ARP快取記錄中尋找是否有目标IP位址。如果找到了,也就知道了目标MAC位址,直接把目标MAC位址寫入幀裡面發送就可以了;如果在ARP快取記錄中沒有找到相對應的IP位址,主機A就會在網絡上發送一個廣播,目标MAC位址是“FF.FF.FF.FF.FF.FF”,這表示向同一網段内的所有主機發出這樣的詢問:“192.168.1.1的MAC位址是什麼?”網絡上其他主機并不響應ARP詢問,隻有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.1.1的MAC位址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC位址,它就可以向主機B發送資訊了。同時它還更新了自己的ARP快取記錄,下次再向主機B發送資訊時,直接從ARP快取記錄裡查找就可以了。ARP快取記錄采用了老化機制,在一段時間内如果表中的某一行沒有使用,就會被删除,這樣可以大大減少ARP快取記錄的長度,加快查詢速度。
ARP攻擊就是通過僞造IP位址和MAC位址實作ARP欺騙,能夠在網絡中産生大量的ARP通信量使網絡阻塞,攻擊者隻要持續不斷的發出僞造的ARP響應包就能更改目标主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
ARP攻擊主要是存在于區域網路網絡中,區域網路中若有一個人感染ARP木馬,則感染該ARP木馬的系統将會試圖通過“ARP欺騙”手段截獲所在網絡内其它計算機的通信資訊,并是以造成網内其它計算機的通信故障。
三、如何檢視ARP快取記錄
ARP快取記錄是可以檢視的,也可以添加和修改。在指令提示符下,輸入“arp -a”就可以檢視ARP快取記錄中的内容了,如附圖所示。
用“arp -d”指令可以删除ARP表中某一行的内容;用“arp -s”可以手動在ARP表中指定IP位址與MAC位址的對應。
四、ARP欺騙
其實,此起彼伏的瞬間掉線或大面積的斷網大都是ARP欺騙在作怪。ARP欺騙攻擊已經成了破壞網吧經營的罪魁禍首,是網吧老闆和網管員的心腹大患。
從影響網絡連接配接通暢的方式來看,ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對内網PC的網關欺騙。
第一種ARP欺騙的原理是——截獲網關資料。它通知路由器一系列錯誤的内網MAC位址,并按照一定的頻率不斷進行,使真實的位址資訊無法通過更新儲存在路由器中,結果路由器的所有資料隻能發送給錯誤的MAC位址,造成正常PC無法收到資訊。第二種ARP欺騙的原理是——僞造網關。它的原理是建立假網關,讓被它欺騙的PC向假網關發資料,而不是通過正常的路由器途徑上網。在PC看來,就是上不了網了,“網絡掉線了”。
一般來說,ARP欺騙攻擊的後果非常嚴重,大多數情況下會造成大面積掉線。有些網管員對此不甚了解,出現故障時,認為PC沒有問題,交換機沒掉線的“本事”,電信也不承認寬帶故障。而且如果第一種ARP欺騙發生時,隻要重新開機路由器,網絡就能全面恢複,那問題一定是在路由器了。為此,寬帶路由器背了不少“黑鍋”。
作為網吧路由器的廠家,對防範ARP欺騙不得已做了不少份内、份外的工作。一、在寬帶路由器中把所有PC的IP-MAC輸入到一個靜态表中,這叫路由器IP-MAC綁定。二、力勸網管員在内網所有PC上設定網關的靜态ARP資訊,這叫PC機IP-MAC綁定。一般廠家要求兩個工作都要做,稱其為IP-MAC雙向綁定。
顯示和修改“位址解析協定”(ARP) 所使用的到以太網的 IP 或令牌環實體位址翻譯表。該指令隻有在安裝了 TCP/IP 協定之後才可用。
arp -a [inet_addr] [-N [if_addr]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
參數
-a
通過詢問 TCP/IP 顯示目前 ARP 項。如果指定了 inet_addr,則隻顯示指定計算機的 IP 和實體位址。
-g
與 -a 相同。
inet_addr
以加點的十進制标記指定 IP 位址。
-N
顯示由 if_addr 指定的網絡界面 ARP 項。
if_addr
指定需要修改其位址轉換表接口的 IP 位址(如果有的話)。如果不存在,将使用第一個可适用的接口。
-d
删除由 inet_addr 指定的項。
-s
在 ARP 緩存中添加項,将 IP 位址 inet_addr 和實體位址 ether_addr 關聯。實體位址由以連字元分隔的6 個十六進制位元組給定。使用帶點的十進制标記指定 IP 位址。項是永久性的,即在逾時到期後項自動從緩存删除。
ether_addr
指定實體位址。
五、遭受ARP攻擊後現象
ARP欺騙木馬的中毒現象表現為:使用區域網路時會突然掉線,過一段時間後又會恢複正常。比如用戶端狀态頻頻變紅,使用者頻繁斷網,IE浏覽器頻繁出錯,以及一些常用軟體出現故障等。如果區域網路中是通過身份認證上網的,會突然出現可認證,但不能上網的現象(無法ping通網關),重新開機機器或在MS-DOS視窗下運作指令arp -d後,又可恢複上網。
ARP欺騙木馬隻需成功感染一台電腦,就可能導緻整個區域網路都無法上網,嚴重的甚至可能帶來整個網絡的癱瘓。該木馬發作時除了會導緻同一區域網路内的其他使用者上網出現時斷時續的現象外,還會竊取使用者密碼。如盜取QQ密碼、盜取各種網絡遊戲密碼和賬号去做金錢交易,盜竊網上銀行賬号來做非法交易活動等,這是木馬的慣用伎倆,給使用者造成了很大的不便和巨大的經濟損失。