百科解釋
我們知道,當我們在瀏覽器里面輸入網(wǎng)址時,DNS服務器會自動把它解析為IP地址,瀏覽器實際上查找的是IP地址而不是網(wǎng)址。那么IP地址是如何轉換為第二層物理地址(即MAC地址)的呢?在局域網(wǎng)中,這是通過ARP協(xié)議來完成的。ARP協(xié)議對網(wǎng)絡安全具有重要的意義。通過偽造IP地址和MAC地址實現(xiàn)ARP欺騙,能夠在網(wǎng)絡中產(chǎn)生大量的ARP通信量使網(wǎng)絡阻塞。所以網(wǎng)管們應深入理解ARP協(xié)議。
ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。在局域網(wǎng)中,網(wǎng)絡中實際傳輸?shù)氖恰皫,幀里面是有目標主機的MAC地址的。在以太網(wǎng)中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
在每臺安裝有TCP/IP協(xié)議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的,如附表所示。
附表
我們以主機A(192.168.1.5)向主機B(192.168.1.1)發(fā)送數(shù)據(jù)為例。當發(fā)送數(shù)據(jù)時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網(wǎng)絡上發(fā)送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內的所有主機發(fā)出這樣的詢問:“192.168.1.1的MAC地址是什么?”網(wǎng)絡上其他主機并不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC地址,它就可以向主機B發(fā)送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機制,在一段時間內如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
ARP攻擊就是通過偽造IP地址和MAC地址實現(xiàn)ARP欺騙,能夠在網(wǎng)絡中產(chǎn)生大量的ARP通信量使網(wǎng)絡阻塞,攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網(wǎng)絡中斷或中間人攻擊。
ARP攻擊主要是存在于局域網(wǎng)網(wǎng)絡中,局域網(wǎng)中若有一個人感染ARP木馬,則感染該ARP木馬的系統(tǒng)將會試圖通過“ARP欺騙”手段截獲所在網(wǎng)絡內其它計算機的通信信息,并因此造成網(wǎng)內其它計算機的通信故障。
RARP的工作原理:
1. 發(fā)送主機發(fā)送一個本地的RARP廣播,在此廣播包中,聲明自己的MAC地址并且請求任何收到此請求的RARP服務器分配一個IP地址;
2. 本地網(wǎng)段上的RARP服務器收到此請求后,檢查其RARP列表,查找該MAC地址對應的IP地址;
3. 如果存在,RARP服務器就給源主機發(fā)送一個響應數(shù)據(jù)包并將此IP地址提供給對方主機使用;
4. 如果不存在,RARP服務器對此不做任何的響應;
5. 源主機收到從RARP服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務器的響應信息,表示初始化失敗。
ARP和RARP使用相同的報頭結構,如圖所示。
硬件類型字段:指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1;
協(xié)議類型字段:指明了發(fā)送方提供的高層協(xié)議類型,IP為0800(16進制);
硬件地址長度和協(xié)議長度:指明了硬件地址和高層協(xié)議地址的長度,這樣ARP報文就可以在任意硬件和任意協(xié)議的網(wǎng)絡中使用;
操作字段:用來表示這個報文的類型,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;
發(fā)送方的硬件地址(0-3字節(jié)):源主機硬件地址的前3個字節(jié);
發(fā)送方的硬件地址(4-5字節(jié)):源主機硬件地址的后3個字節(jié);
發(fā)送方IP(0-1字節(jié)):源主機硬件地址的前2個字節(jié);
發(fā)送方IP(2-3字節(jié)):源主機硬件地址的后2個字節(jié);
目的硬件地址(0-1字節(jié)):目的主機硬件地址的前2個字節(jié);
目的硬件地址(2-5字節(jié)):目的主機硬件地址的后4個字節(jié);
目的IP(0-3字節(jié)):目的主機的IP地址。
ARP緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp -a”就可以查看ARP緩存表中的內容了,如附圖所示。
用“arp -d”命令可以刪除ARP表中所有的內容;
用“arp -d +空格+ <指定ip地址>” 可以刪除指定ip所在行的內容
用“arp -s”可以手動在ARP表中指定IP地址與MAC地址的對應,類型為static(靜態(tài)),此項存在硬盤中,而不是緩存表,計算機重新啟動后仍然存在,且遵循靜態(tài)優(yōu)于動態(tài)的原則,所以這個設置不對,可能導致無法上網(wǎng).
其實,此起彼伏的瞬間掉線或大面積的斷網(wǎng)大都是ARP欺騙在作怪。ARP欺騙攻擊已經(jīng)成了破壞網(wǎng)吧經(jīng)營的罪魁禍首,是網(wǎng)吧老板和網(wǎng)管員的心腹大患。
從影響網(wǎng)絡連接通暢的方式來看,ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對內網(wǎng)PC的網(wǎng)關欺騙。
第一種ARP欺騙的原理是——截獲網(wǎng)關數(shù)據(jù)。它通知路由器一系列錯誤的內網(wǎng)MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數(shù)據(jù)只能發(fā)送給錯誤的MAC地址,造成正常PC無法收到信息。第二種ARP欺騙的原理是——偽造網(wǎng)關。它的原理是建立假網(wǎng)關,讓被它欺騙的PC向假網(wǎng)關發(fā)數(shù)據(jù),而不是通過正常的路由器途徑上網(wǎng)。在PC看來,就是上不了網(wǎng)了,“網(wǎng)絡掉線了”。
一般來說,ARP欺騙攻擊的后果非常嚴重,大多數(shù)情況下會造成大面積掉線。有些網(wǎng)管員對此不甚了解,出現(xiàn)故障時,認為PC沒有問題,交換機沒掉線的“本事”,電信也不承認寬帶故障。而且如果第一種ARP欺騙發(fā)生時,只要重啟路由器,網(wǎng)絡就能全面恢復,那問題一定是在路由器了。為此,寬帶路由器背了不少“黑鍋”。
作為網(wǎng)吧路由器的廠家,對防范ARP欺騙不得已做了不少份內、份外的工作。一、在寬帶路由器中把所有PC的IP-MAC輸入到一個靜態(tài)表中,這叫路由器IP-MAC綁定。二、力勸網(wǎng)管員在內網(wǎng)所有PC上設置網(wǎng)關的靜態(tài)ARP信息,這叫PC機IP-MAC綁定。一般廠家要求兩個工作都要做,稱其為IP-MAC雙向綁定。
顯示和修改“地址解析協(xié)議”(ARP) 所使用的到以太網(wǎng)的 IP 或令牌環(huán)物理地址翻譯表。該命令只有在安裝了 TCP/IP 協(xié)議之后才可用。
arp -a [inet_addr] [-N [if_addr]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
參數(shù)
-a
通過詢問 TCP/IP 顯示當前 ARP 項。如果指定了 inet_addr,則只顯示指定計算機的 IP 和物理地址。
-g
與 -a 相同。
inet_addr
以加點的十進制標記指定 IP 地址。
-N
顯示由 if_addr 指定的網(wǎng)絡界面 ARP 項。
if_addr
指定需要修改其地址轉換表接口的 IP 地址(如果有的話)。如果不存在,將使用第一個可適用的接口。
-d
刪除由 inet_addr 指定的項。
-s
在 ARP 緩存中添加項,將 IP 地址 inet_addr 和物理地址 ether_addr 關聯(lián)。物理地址由以連字符分隔的6 個十六進制字節(jié)給定。使用帶點的十進制標記指定 IP 地址。項是永久性的,即在超時到期后項自動從緩存刪除。
ether_addr
指定物理地址。
ARP欺騙木馬的中毒現(xiàn)象表現(xiàn)為:使用局域網(wǎng)時會突然掉線,過一段時間后又會恢復正常。比如客戶端狀態(tài)頻頻變紅,用戶頻繁斷網(wǎng),IE瀏覽器頻繁出錯,以及一些常用軟件出現(xiàn)故障等。如果局域網(wǎng)中是通過身份認證上網(wǎng)的,會突然出現(xiàn)可認證,但不能上網(wǎng)的現(xiàn)象(無法ping通網(wǎng)關),重啟機器或在MS-DOS窗口下運行命令arp -d后,又可恢復上網(wǎng)。
ARP欺騙木馬只需成功感染一臺電腦,就可能導致整個局域網(wǎng)都無法上網(wǎng),嚴重的甚至可能帶來整個網(wǎng)絡的癱瘓。該木馬發(fā)作時除了會導致同一局域網(wǎng)內的其他用戶上網(wǎng)出現(xiàn)時斷時續(xù)的現(xiàn)象外,還會竊取用戶密碼。如盜取QQ密碼、盜取各種網(wǎng)絡游戲密碼和賬號去做金錢交易,盜竊網(wǎng)上銀行賬號來做非法交易活動等,這是木馬的慣用伎倆,給用戶造成了很大的不便和巨大的經(jīng)濟損失。
七:常用的維護方法
搜索網(wǎng)上,目前對于ARP攻擊防護問題出現(xiàn)最多是綁定IP和MAC和使用ARP防護軟件,也出現(xiàn)了具有ARP防護功能的路由器。呵呵,我們來了解下這三種方法。
3.1 靜態(tài)綁定
最常用的方法就是做IP和MAC靜態(tài)綁定,在網(wǎng)內把主機和網(wǎng)關都做IP和MAC綁定。
欺騙是通過ARP的動態(tài)實時的規(guī)則欺騙內網(wǎng)機器,所以我們把ARP全部設置為靜態(tài)可以解決對內網(wǎng)PC的欺騙,同時在網(wǎng)關也要進行IP和MAC的靜態(tài)綁定,這樣雙向綁定才比較保險。
方法:
對每臺主機進行IP和MAC地址靜態(tài)綁定。
通過命令,arp -s可以實現(xiàn) “arp –s IP MAC地址 ”。
例如:“arp –s 192.168.10.1 AA-AA-AA-AA-AA-AA”。
如果設置成功會在PC上面通過執(zhí)行 arp -a 可以看到相關的提示:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA static(靜態(tài))
一般不綁定,在動態(tài)的情況下:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(動態(tài))
說明:對于網(wǎng)絡中有很多主機,500臺,1000臺...,如果我們這樣每一臺都去做靜態(tài)綁定,工作量是非常大的。。。。,這種靜態(tài)綁定,在電腦每次重起后,都必須重新在綁定,雖然也可以做一個批處理文件,但是還是比較麻煩的!
3.2 使用ARP防護軟件
目前關于ARP類的防護軟件出的比較多了,大家使用比較常用的ARP工具主要是欣向ARP工具,Antiarp等。它們除了本身來檢測出ARP攻擊外,防護的工作原理是一定頻率向網(wǎng)絡廣播正確的ARP信息。我們還是來簡單說下這兩個小工具。
3.2.1 欣向ARP工具
它有5個功能:
?
A. IP/MAC清單
選擇網(wǎng)卡。如果是單網(wǎng)卡不需要設置。如果是多網(wǎng)卡需要設置連接內網(wǎng)的那塊網(wǎng)卡。
IP/MAC掃描。這里會掃描目前網(wǎng)絡中所有的機器的IP與MAC地址。請在內網(wǎng)運行正常時掃描,因為這個表格將作為對之后ARP的參照。
之后的功能都需要這個表格的支持,如果出現(xiàn)提示無法獲取IP或MAC時,就說明這里的表格里面沒有相應的數(shù)據(jù)。
?
B. ARP欺騙檢測
這個功能會一直檢測內網(wǎng)是否有PC冒充表格內的IP。你可以把主要的IP設到檢測表格里面,例如,路由器,電影服務器,等需要內網(wǎng)機器訪問的機器IP。
(補充)“ARP欺騙記錄”表如何理解:
“Time”:發(fā)現(xiàn)問題時的時間;
“sender”:發(fā)送欺騙信息的IP或MAC;
“Repeat”:欺詐信息發(fā)送的次數(shù);
“ARP info”:是指發(fā)送欺騙信息的具體內容.如下面例子:
time sender Repeat ARP info 22:22:22 192.168.1.22 1433 192.168.1.1 is at 00:0e:03:22:02:e8
這條信息的意思是:在22:22:22的時間,檢測到由192.168.1.22發(fā)出的欺騙信息,已經(jīng)發(fā)送了1433次,他發(fā)送的欺騙信息的內容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8。
打開檢測功能,如果出現(xiàn)針對表內IP的欺騙,會出現(xiàn)提示?梢园凑仗崾静榈絻染W(wǎng)的ARP欺騙的根源。提示一句,任何機器都可以冒充其他機器發(fā)送IP與MAC,所以即使提示出某個IP或MAC在發(fā)送欺騙信息,也未必是100%的準確。所有請不要以暴力解決某些問題。
?
C. 主動維護
這個功能可以直接解決ARP欺騙的掉線問題,但是并不是理想方法。他的原理就在網(wǎng)絡內不停的廣播制定的IP的正確的MAC地址。
“制定維護對象”的表格里面就是設置需要保護的IP。發(fā)包頻率就是每秒發(fā)送多少個正確的包給網(wǎng)絡內所有機器。強烈建議盡量少的廣播IP,盡量少的廣播頻率。一般設置1次就可以,如果沒有綁定IP的情況下,出現(xiàn)ARP欺騙,可以設置到50-100次,如果還有掉線可以設置更高,即可以實現(xiàn)快速解決ARP欺騙的問題。但是想真正解決ARP問題,還是請參照上面綁定方法。
?
D. 欣向路由器日志
收集欣向路由器的系統(tǒng)日志,等功能。
?
E. 抓包
類似于網(wǎng)絡分析軟件的抓包,保存格式是.cap。
3.2.1 Antiarp
這個軟件界面比較簡單,以下為我收集該軟件的使用方法。
A. 填入網(wǎng)關IP地址,點擊[獲取網(wǎng)關地址]將會顯示出網(wǎng)關的MAC地址。點擊[自動防護]即可保護當前網(wǎng)卡與該網(wǎng)關的通信不會被第三方監(jiān)聽。注意:如出現(xiàn)ARP欺騙提示,這說明攻擊者發(fā)送了ARP欺騙數(shù)據(jù)包來獲取網(wǎng)卡的數(shù)據(jù)包,如果您想追蹤攻擊來源請記住攻擊者的MAC地址,利用MAC地址掃描器可以找出IP 對應的MAC地址。
B. IP地址沖突
如頻繁的出現(xiàn)IP地址沖突,這說明攻擊者頻繁發(fā)送ARP欺騙數(shù)據(jù)包,才會出現(xiàn)IP沖突的警告,利用Anti ARP Sniffer可以防止此類攻擊。
C. 您需要知道沖突的MAC地址,Windows會記錄這些錯誤。查看具體方法如下:
右擊[我的電腦]--[管理]--點擊[事件查看器]--點擊[系統(tǒng)]--查看來源為[TcpIP]---雙擊事件可以看到顯示地址發(fā)生沖突,并記錄了該MAC地址,請復制該MAC地址并填入Anti ARP Sniffer的本地MAC地址輸入框中(請注意將:轉換為-),輸入完成之后點擊[防護地址沖突],為了使MAC地址生效請禁用本地網(wǎng)卡然后再啟用網(wǎng)卡,在CMD命令行中輸入Ipconfig /all,查看當前MAC地址是否與本地MAC地址輸入框中的MAC地址相符,如果更改失敗請與我聯(lián)系。如果成功將不再會顯示地址沖突。
注意:如果您想恢復默認MAC地址,請點擊[恢復默認],為了使MAC地址生效請禁用本地網(wǎng)卡然后再啟用網(wǎng)卡。
3.3 具有ARP防護功能的路由器
這類路由器以前聽說的很少,對于這類路由器中提到的ARP防護功能,其實它的原理就是定期的發(fā)送自己正確的ARP信息。但是路由器的這種功能對于真正意義上的攻擊,是不能解決的。
遭受ARP攻擊的最常見的特征就是掉線,一般情況下不需要處理一定時間內可以回復正常上網(wǎng),因為ARP欺騙是有老化時間的,過了老化時間就會自動的回復正!,F(xiàn)在大多數(shù)路由器都會在很短時間內不停廣播自己的正確ARP信息,使受騙的主機回復正常。但是如果出現(xiàn)攻擊性ARP欺騙(其實就是時間很短的量很大的欺騙ARP,1秒有個幾百上千的),它是不斷的發(fā)起ARP欺騙包來阻止內網(wǎng)機器上網(wǎng),即使路由器不斷廣播正確的包也會被他大量的錯誤信息給淹沒。
可能你會有疑問:我們也可以發(fā)送比欺騙者更多更快正確的ARP信息。咳绻粽呙棵氚l(fā)送1000個ARP欺騙包,那我們就每秒發(fā)送1500個正確的ARP信息!
面對上面的疑問,我們仔細想想,如果網(wǎng)絡拓撲很大,網(wǎng)絡中接了很多網(wǎng)絡設備和主機,大量的設備都去處理這些廣播信息,那網(wǎng)絡使用起來好不爽,再說了會影響到我們工作和學習。ARP廣播會造成網(wǎng)絡資源的浪費和占用。如果該網(wǎng)絡出了問題,我們抓包分析,數(shù)據(jù)包中也會出現(xiàn)很多這類ARP廣播包,對分析也會造成一定的影響。