ARP

 

ARP,即地址解析協議,實現通過IP地址得知其物理地址。在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互聯網地址是在網際範圍標識主機的一種邏輯地址。爲了讓報文在物理網路上傳送,必須知道對方目的主機的物理地址。這樣就存在把IP地址變換成物理地址的地址轉換問題。以以太網環境爲例,爲了正確地向目的主機傳送報文,必須把目的主機的32位IP地址轉換成爲48位以太網的地址。這就需要在互連層有一組服務將IP地址轉換爲相應物理地址,這組協議就是ARP協議。另有電子防翻滾系統也稱爲ARP。

 

編輯本段地址解析協議

基本功能

  在以太網協議中規定,同一局域網中的一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協議棧中,網絡層和傳輸層只關心目標主機的IP地址。這就導致在以太網中使用IP協議時,數據鏈路層的以太網協議接到上層IP協議提供的數據中,只包含目的主機的IP地址。於是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。所謂地址解析(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。   另外,當發送主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發纔可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網外的路由器的某個端口的MAC地址。於是此後發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送。這種情況稱爲ARP代理(ARP Proxy)

工作原理

  在每檯安裝有TCP/IP協議的電腦裏都有一個ARP緩存表,表裏的IP地址與MAC地址是一一對應的。   
  

ARP工作原理

以主機A(192.168.1.5)向主機B(192.168.1.1)發送數據爲例。當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀裏面發送就可以了;如果在ARP緩存表中沒有找到目標IP地址,主機A就會在網絡上發送一個廣播,A主機MAC地址是“主機A的MAC地址”,這表示向同一網段內的所有主機發出這樣的詢問:“我是192.168.1.5,我的硬件地址是"主機A的MAC地址".請問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或者B向A發送信息時,直接從各自的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被佔用。

數據結構

  [1]ARP協議的數據結構:   typedef structarphdr   {   unsignedshortarp_hrd;/*硬件類型*/   unsignedshortarp_pro;/*協議類型*/   unsignedchararp_hln;/*硬件地址長度*/   unsignedchararp_pln;/*協議地址長度*/   unsignedshortarp_op;/*ARP操作類型*/   unsignedchararp_sha[6];/*發送者的硬件地址*/   unsignedlongarp_spa;/*發送者的協議地址*/   unsignedchararp_tha[6];/*目標的硬件地址*/   unsignedlongarp_tpa;/*目標的協議地址*/   }ARPHDR,*PARPHDR;

RARP 反向地址轉換協議

  反向地址轉換協議用於一種特殊情況,如果站點被初始化後,只有自己的物理網絡地址而沒有IP地址,則他可以通過RARP協議,併發出廣播請求,徵求自己的IP地址,而RARP服務器則沒有負責回答。這樣無IP的站點可以通過RARP協議取得自己的IP地址,這個地址在下一次系統重新開始以前都有效,不用連續廣播請求。RARP廣泛用於獲取無盤工作站的IP地址。

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個字節;

ARP緩存表查看方法

  ARP緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp -a”就可以查看ARP緩存表中的內容了,如附圖所示。   
  

arp -a

用“arp -d”命令可以刪除ARP表中所有的內容;   用“arp -d +空格+ <指定ip地址>” 可以刪除指定ip所在行的內容   用“arp -s”可以手動在ARP表中指定IP地址與MAC地址的對應,類型爲static(靜態),此項存在硬盤中,而不是緩存表,計算機重新啓動後仍然存在,且遵循靜態優於動態的原則,所以這個設置不對,可能導致無法上網.

編輯本段電子防翻滾系統

  ARP英文全稱是Anti Rolling Program,即電子防翻滾功能。它通過感知車輛的位置,調節發動機扭矩及各車輪的制動力,從而防止車輛在高速急轉彎等緊急狀況時發生翻車狀況。如雪佛蘭科帕奇就標配了此係統。

編輯本段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   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防護功能的路由器。呵呵,我們來了解下這三種方法。

靜態綁定

  最常用的方法就是做IPMAC靜態綁定,在網內把主機和網關都做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
  

ARP

這條信息的意思是:在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問題,還是請參照上面綁定方法。 arp   ?   D. 欣向路由器日誌   收集欣向路由器的系統日誌,等功能。   ?   E. 抓包   類似於網絡分析軟件的抓包,保存格式是.cap。

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地址生效請禁用本地網卡然後再啓用網卡。

具有ARP防護功能的路由器

  這類路由器以前聽說的很少,對於這類路由器中提到的ARP防護功能,其實它的原理就是定期的發送自己正確的ARP信息。但是路由器的這種功能對於真正意義上的攻擊,是不能解決的。   ARP的最常見的特徵就是掉線,一般情況下不需要處理一定時間內可以回覆正常上網,因爲ARP欺騙是有老化時間的,過了老化時間就會自動的回覆正常。現在大多數路由器都會在很短時間內不停廣播自己的正確ARP信息,使受騙的主機回覆正常。但是如果出現攻擊性ARP欺騙(其實就是時間很短的量很大的欺騙ARP,1秒有個幾百上千的),它是不斷的發起ARP欺騙包來阻止內網機器上網,即使路由器不斷廣播正確的包也會被他大量的錯誤信息給淹沒。   可能你會有疑問:我們也可以發送比欺騙者更多更快正確的ARP信息啊?如果攻擊者每秒發送1000個ARP欺騙包,那我們就每秒發送1500個正確的ARP信息!   面對上面的疑問,我們仔細想想,如果網絡拓撲很大,網絡中接了很多網絡設備和主機,大量的設備都去處理這些廣播信息,那網絡使用起來好不爽,再說了會影響到我們工作和學習。ARP廣播會造成網絡資源的浪費和佔用。如果該網絡出了問題,我們抓包分析,數據包中也會出現很多這類ARP廣播包,對分析也會造成一定的影響。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章