技術 > arp
目錄
No. 1
  我們知道,當我們在瀏覽器裏面輸入網址時,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密碼、盜取各種網絡遊戲密碼和賬號去做金錢交易,盜竊網上銀行賬號來做非法交易活動等,這是木馬的慣用伎倆,給用戶造成了很大的不便和巨大的經濟損失。
  六:常用的維護方法
  搜索網上,目前對於arp攻擊防護問題出現最多是綁定ip和mac和使用arp防護軟件,也出現了具有arp防護功能的路由器。呵呵,我們來瞭解下這三種方法。
  3.1 靜態綁定
  最常用的方法就是做ip和mac靜態綁定,在網內把主機和網關都做ip和mac綁定。
  欺騙是通過arp的動態實時的規則欺騙內網機器,所以我們把arp全部設置為靜態可以解决對內網pc的欺騙,同時在網關也要進行ip和mac的靜態綁定,這樣雙嚮綁定纔比較保險。
  方法:
  對每臺主機進行ip和mac地址靜態綁定。
  通過命令,arp -s可以實現 “arp ╟s ip mac地址 ”。
  例如:“arp ╟s 192.168.10.1 aa-aa-aa-aa-aa-aa”。
  如果設置成功會在pc上面通過執行 arp -a 可以看到相關的提示:
  internet address physical address type
  192.168.10.1 aa-aa-aa-aa-aa-aa static(靜態)
  一般不綁定,在動態的情況下:
  internet address physical address type
  192.168.10.1 aa-aa-aa-aa-aa-aa dynamic(動態)
  說明:對於網絡中有很多主機,500臺,1000...,如果我們這樣每一臺都去做靜態綁定,工作量是非常大的。。。。,這種靜態綁定,在電腦每次重起後,都必須重新在綁定,雖然也可以做一個批處理文件,但是還是比較麻煩的!
  3.2 使用arp防護軟件
  目前關於arp類的防護軟件出的比較多了,大傢使用比較常用的arp工具主要是欣嚮arp工具,antiarp等。它們除了本身來檢測出arp攻擊外,防護的工作原理是一定頻率嚮網絡廣播正確的arp信息。我們還是來簡單說下這兩個小工具。
  3.2.1 欣嚮arp工具
  俺使用了該工具,它有5個功能:
  ?
  a. ip/mac清單
  選擇網卡。如果是單網卡不需要設置。如果是多網卡需要設置連接內網的那塊網卡。
  ip/mac掃描。這裏會掃描目前網絡中所有的機器的ip與mac地址。請在內網運行正常時掃描,因為這個表格將作為對之後arp的參照。
  之後的功能都需要這個表格的支持,如果出現提示無法獲取ip或mac時,就說明這裏的表格裏面沒有相應的數據。
  ?
  b. arp欺騙檢測
  這個功能會一直檢測內網是否有pc冒充表格內的ip。你可以把主要的ip設到檢測表格裏面,例如,路由器,電影服務器,等需要內網機器訪問的機器ip。
  (補充)“arp欺騙記錄”表如何理解:
  “time”:發現問題時的時間;
  “sender”:發送欺騙信息的ip或mac;
  “repeat”:欺詐信息發送的次數;
  “arp info”:是指發送欺騙信息的具體內容.如下面例子:
  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發出的欺騙信息,已經發送了1433次,他發送的欺騙信息的內容是:192.168.1.1的mac地址是00:0e:03:22:02:e8。
  打開檢測功能,如果出現針對表內ip的欺騙,會出現提示。可以按照提示查到內網的arp欺騙的根源。提示一句,任何機器都可以冒充其他機器發送ip與mac,所以即使提示出某個ip或mac在發送欺騙信息,也未必是100%的準確。所有請不要以暴力解决某些問題。
  ?
  c. 主動維護
  這個功能可以直接解决arp欺騙的掉綫問題,但是並不是理想方法。他的原理就在網絡內不停的廣播製定的ip的正確的mac地址。
  “製定維護對象”的表格裏面就是設置需要保護的ip。發包頻率就是每秒發送多少個正確的包給網絡內所有機器。強烈建議盡量少的廣播ip,盡量少的廣播頻率。一般設置1次就可以,如果沒有綁定ip的情況下,出現arp欺騙,可以設置到50-100次,如果還有掉綫可以設置更高,即可以實現快速解决arp欺騙的問題。但是想真正解决arp問題,還是請參照上面綁定方法。
  ?
  d. 欣嚮路由器日志
  收集欣嚮路由器的係統日志,等功能。
  ?
  e. 抓包
  類似於網絡分析軟件的抓包,保存格式是.cap。
  3.2.1 antiarp
  這個軟件界面比較簡單,以下為我收集該軟件的使用方法。
  a. 填入網關ip地址,點擊[獲取網關地址]將會顯示出網關的mac地址。點擊[自動防護]即可保護當前網卡與該網關的通信不會被第三方監聽。註意:如出現arp欺騙提示,這說明攻擊者發送了arp欺騙數據包來獲取網卡的數據包,如果您想追蹤攻擊來源請記住攻擊者的mac地址,利用mac地址掃描器可以找出ip 對應的mac地址。
  b. ip地址衝突
  如頻繁的出現ip地址衝突,這說明攻擊者頻繁發送arp欺騙數據包,纔會出現ip衝突的警告,利用anti arp sniffer可以防止此類攻擊。
  c. 您需要知道衝突的mac地址,windows會記錄這些錯誤。查看具體方法如下:
  右擊[我的電腦]--[管理]--點擊[事件查看器]--點擊[係統]--查看來源為[tcpip]---雙擊事件可以看到顯示地址發生衝突,並記錄了該mac地址,請復製該mac地址並填入anti arp sniffer的本地mac地址輸入框中(請註意將:轉換為-),輸入完成之後點擊[防護地址衝突],為了使mac地址生效請禁用本地網卡然後再啓用網卡,在cmd命令行中輸入ipconfig /all,查看當前mac地址是否與本地mac地址輸入框中的mac地址相符,如果更改失敗請與我聯繫。如果成功將不再會顯示地址衝突。
  註意:如果您想恢復默認mac地址,請點擊[恢復默認],為了使mac地址生效請禁用本地網卡然後再啓用網卡。
  3.3 具有arp防護功能的路由器
  這類路由器以前聽說的很少,對於這類路由器中提到的arp防護功能,其實它的原理就是定期的發送自己正確的arp信息。但是路由器的這種功能對於真正意義上的攻擊,是不能解决的。
  arp的最常見的特徵就是掉綫,一般情況下不需要處理一定時間內可以回覆正常上網,因為arp欺騙是有老化時間的,過了老化時間就會自動的回覆正常。現在大多數路由器都會在很短時間內不停廣播自己的正確arp信息,使受騙的主機回覆正常。但是如果出現攻擊性arp欺騙(其實就是時間很短的量很大的欺騙arp,1秒有個幾百上千的),它是不斷的發起arp欺騙包來阻止內網機器上網,即使路由器不斷廣播正確的包也會被他大量的錯誤信息給淹沒。
  可能你會有疑問:我們也可以發送比欺騙者更多更快正確的arp信息啊?如果攻擊者每秒發送1000個arp欺騙包,那我們就每秒發送1500個正確的arp信息!
  面對上面的疑問,我們仔細想想,如果網絡拓撲很大,網絡中接了很多網絡設備和主機,大量的設備都去處理這些廣播信息,那網絡使用起來好不爽,再說了會影響到我們工作和學習。arp廣播會造成網絡資源的浪費和占用。如果該網絡出了問題,我們抓包分析,數據包中也會出現很多這類arp廣播包,對分析也會造成一定的影響。
如何查看arp緩存表
  arp緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp -a”就可以查看arp緩存表中的內容了,如附圖所示。
  用“arp -d”命令可以刪除arp表中所有的內容;
  用“arp -d +空格+ <指定ip地址>” 可以刪除指定ip所在行的內容
  用“arp -s”可以手動在arp表中指定ip地址與mac地址的對應,類型為static(靜態),此項存在硬盤中,而不是緩存表,計算機重新啓動後仍然存在,且遵循靜態優於動態的原則,所以這個設置不對,可能導致無法上網.
什麽是ARP協議
  地址解析協議(Address Resolution Protocol,arp,通過遵循該協議,衹要我們知道了某臺機器的IP地址,即可以知道其物理地址。在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互聯網地址是在網際範圍標識主機的一種邏輯地址。為了讓報文在物理網路上傳送,必須知道對方目的主機的物理地址。這樣就存在把IP地址變換成物理地址的地址轉換問題。以以太網環境為例,為了正確地嚮目的主機傳送報文,必須把目的主機的32位IP地址轉換成為48位以太網的地址。這就需要在互連層有一組服務將IP地址轉換為相應物理地址,這組協議就是arp協議。
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欺騙”手段截獲所在網絡內其它計算機的通信信息,並因此造成網內其它計算機的通信故障。
  Rarp的工作原理:
  1. 發送主機發送一個本地的Rarp廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的Rarp服務器分配一個IP地址;
  2. 本地網段上的Rarp服務器收到此請求後,檢查其Rarp列表,查找該MAC地址對應的IP地址;
  3. 如果存在,Rarp服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;
  4. 如果不存在,Rarp服務器對此不做任何的響應;
  5. 源主機收到從Rarp服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到Rarp服務器的響應信息,表示初始化失敗。
  6.如果在第1-3中被arp病毒攻擊,則服務器做出的反映就會被占用,源主機同樣得不到Rarp服務器的響應信息,此時並不是服務器沒有響應而是服務器返回的源主機的IP被占用。
  arp的數據結構
  arp協議的數據結構:
  typedefstructarphdr
  {
  unsignedshortarp_hrd;/*硬件類型*/
  unsignedshortarp_pro;/*協議類型*/
  unsignedchararp_hln;/*硬件地址長度*/
  unsignedchararp_pln;/*協議地址長度*/
  unsignedshortarp_op;/*arp操作類型*/unsignedchararp_sha;/*發送者的硬件地址*/
  unsignedlongarp_spa;/*發送者的協議地址*/
  unsignedchararp_tha;/*目標的硬件地址*/
  unsignedlongarp_tpa;/*目標的協議地址*/
  }arpHDR,*ParpHDR;
三.ARP和RARP報頭結構
  arp和Rarp使用相同的報頭結構,如圖所示。
  報送格式
  硬件類型字段:指明了發送方想知道的硬件接口類型,以太網的值為1;
  協議類型字段:指明了發送方提供的高層協議類型,IP為0800(16進製);
  硬件地址長度和協議長度:指明了硬件地址和高層協議地址的長度,這樣arp報文就可以在任意硬件和任意協議的網絡中使用;
  操作字段:用來表示這個報文的類型,arp請求為1,arp響應為2,Rarp請求為3,Rarp響應為4;
  發送方的硬件地址(0-2字節):源主機硬件地址的前3個字節;
  發送方的硬件地址(3-5字節):源主機硬件地址的後3個字節;
  發送方IP(0-1字節):源主機硬件地址的前2個字節;
工作原理
  在每臺安裝有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.5,我的硬件地址是"FF.FF.FF.FF.FF.FE".請問IP地址為192.168.1.1的MAC地址是什麽?”網絡上其他主機並不響應arp詢問,衹有主機B接收到這個幀時,纔嚮主機A做出這樣的回應:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC地址,它就可以嚮主機B發送信息了。同時A和B還同時都更新了自己的arp緩存表(因為A在詢問的時候把自己的IP和MAC地址一起告訴了B),下次A再嚮主機B或者BA發送信息時,直接從各自的arp緩存表裏查找就可以了。arp緩存表采用了老化機製(即設置了生存時間TTL),在一段時間內(一般15到20分鐘)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少arp緩存表的長度,加快查詢速度。
  arp攻擊就是通過偽造IP地址和MAC地址實現arp欺騙,能夠在網絡中産生大量的arp通信量使網絡阻塞,攻擊者衹要持續不斷的發出偽造的arp響應包就能更改目標主機arp緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
  arp攻擊主要是存在於局域網網絡中,局域網中若有一個人感染arp木馬,則感染該arp木馬的係統將會試圖通過“arp欺騙”手段截獲所在網絡內其它計算機的通信信息,並因此造成網內其它計算機的通信故障。
  Rarp的工作原理:
  1. 發送主機發送一個本地的Rarp廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的Rarp服務器分配一個IP地址;
  2. 本地網段上的Rarp服務器收到此請求後,檢查其Rarp列表,查找該MAC地址對應的IP地址;
  3. 如果存在,Rarp服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;
  4. 如果不存在,Rarp服務器對此不做任何的響應;
  5. 源主機收到從Rarp服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到Rarp服務器的響應信息,表示初始化失敗。
  6.如果在第1-3中被arp病毒攻擊,則服務器做出的反映就會被占用,源主機同樣得不到Rarp服務器的響應信息,此時並不是服務器沒有響應而是服務器返回的源主機的IP被占用。
  數據結構
  arp協議的數據結構:
  typedef structarphdr
  {
  unsignedshortarp_hrd;/*硬件類型*/
  unsignedshortarp_pro;/*協議類型*/
  unsignedchararp_hln;/*硬件地址長度*/
  unsignedchararp_pln;/*協議地址長度*/
  unsignedshortarp_op;/*arp操作類型*/
  unsignedchararp_sha;/*發送者的硬件地址*/
  unsignedlongarp_spa;/*發送者的協議地址*/
  unsignedchararp_tha;/*目標的硬件地址*/
  unsignedlongarp_tpa;/*目標的協議地址*/
  }arpHDR,*ParpHDR;
電子防翻滾係統
  arp英文全稱是Anti Rolling Program,即電子防翻滾功能。它通過感知車輛的位置,調節發動機扭矩及各車輪的製動力,從而防止車輛在高速急轉彎等緊急狀況時發生翻車狀況。如雪佛蘭科帕奇就標配了此係統。
相關詞
軟件網絡arp防火墻彩影軟件網絡安全流量管理USM統一安全保障體係
等級保護arp攻擊火墻arp欺騙防止arp攻擊計算機安全局域網