1. ARP概念咱們談ARP之前,還是先要知道ARP的概念和工作原理,理解了原理知識,才能更好去面對和分析處理問題。1.1 ARP概念知識ARP,全稱Address Resolution Protocol,中文名為位址解析通訊協定,它工作在資料連結層,在本層和硬體介面聯絡,同時對上層提供服務。IP資料包常通過乙太網路發送,乙太網路裝置並不識別32位IP地址,它們是以48位乙太網路地址傳輸乙太網路資料包。因此,必須把IP目的地址轉換成乙太網路目的地址。在乙太網路中,一個主機要和另一個主機進行直接通訊,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過位址解析通訊協定獲得的。ARP協議用於將網路中的IP位址解析為的硬體地址(MAC地址),以保證通訊的順利進行。1.2 ARP工作原理首先,每台主機都會在自己的ARP緩衝區中建立一個 ARP列表,以表示IP地址和MAC地址的對應關係。當源主機需要將一個資料包要發送到目的主機時,會首先檢查自己 ARP列表中是否存在該 IP地址對應的MAC地址,如果有﹐就直接將資料包發送到這個MAC地址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求資料包裡包括源主機的IP地址、硬體地址、以及目的主機的IP地址。網路中所有的主機收到這個ARP請求後,會檢查資料包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此資料包;如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的資訊,則將其覆蓋,然後給源主機發送一個 ARP響應資料包,告訴對方自己是它需要尋找的MAC地址;源主機收到這個ARP響應資料包後,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,並利用此資訊開始資料的傳輸。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗。例如:A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AAB的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB根據上面的所講的原理,我們簡單說明這個過程:A要和B通訊,A就需要知道B的乙太網路地址,於是A發送一個ARP請求廣播(誰是192.168.10.2 ,請告訴192.168.10.1),當B收到該廣播,就檢查自己,結果發現和自己的一致,然後就向A發送一個ARP單播應答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。1.3 ARP通訊模式通訊模式(Pattern Analysis):在網路分析中,通訊模式的分析是很重要的,不同的協議和不同的應用都會有不同的通訊模式。更有些時候,相同的協議在不同的公司專屬應用程式中也會出現不同的通訊模式。ARP在正常情況下的通訊模式應該是:請求 -> 應答 -> 請求 -> 應答,也就是應該一問一答。2. 常見ARP攻擊類型個人認為常見的ARP攻擊為兩種類型:ARP掃描和ARP欺騙。2.1 ARP掃描(ARP請求風暴)通訊模式(可能):請求 -> 請求 -> 請求 -> 請求 -> 請求 -> 請求 -> 應答 -> 請求 -> 請求 -> 請求...描述:網路中出現大量ARP請求廣播包,幾乎都是對網段內的所有主機進行掃描。大量的ARP請求廣播可能會佔用網路頻寬資源;ARP掃描一般為ARP攻擊的前奏。出現原因(可能):*病毒程式,偵聽程式,掃描程式。*如果網路分析軟體部署正確,可能是我們只鏡像了交換器上的部分連接埠,所以大量ARP請求是來自與非鏡像口串連的其它主機發出的。*如果部署不正確,這些ARP請求廣播包是來自和交換器相連的其它主機。2.2 ARP欺騙ARP協議並不只在發送了ARP請求才接收ARP應答。當電腦接收到ARP應答資料包的時候,就會對本地的ARP緩衝進行更新,將應答中的IP和MAC地址儲存在ARP緩衝中。所以在網路中,有人發送一個自己偽造的ARP應答,網路可能就會出現問題。這可能就是協議設計者當初沒考慮到的!2.2.1 欺騙原理假設一個網路環境中,網內有三台主機,分別為主機A、B、C。主機詳細資料如下描述:A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AAB的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BBC的地址為:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC正常情況下A和C之間進行通訊,但是此時B向A發送一個自己偽造的ARP應答,而這個應答中的資料為發送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這裡被偽造了)。當A接收到B偽造的ARP應答,就會更新本地的ARP緩衝(A被欺騙了),這時B就偽裝成C了。同時,B同樣向C發送一個ARP應答,應答包中發送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本來應該是AA-AA-AA-AA-AA-AA),當C收到B偽造的ARP應答,也會更新本地ARP緩衝(C也被欺騙了),這時B就偽裝成了A。這樣主機A和C都被主機B欺騙,A和C之間通訊的資料都經過了B。主機B完全可以知道他們之間說的什麼:)。這就是典型的ARP欺騙過程。注意:一般情況下,ARP欺騙的某一方應該是網關。2.2.2 兩種情況ARP欺騙存在兩種情況:一種是欺騙主機作為“中間人”,被欺騙主機的資料都經過它中轉一次,這樣欺騙主機可以竊取到被它欺騙的主機之間的通訊資料;另一種讓被欺騙主機直接斷網。第一種:竊取資料(嗅探)通訊模式:應答 -> 應答 -> 應答 -> 應答 -> 應答 -> 請求 -> 應答 -> 應答 ->請求->應答...描述:這種情況就屬於我們上面所說的典型的ARP欺騙,欺騙主機向被欺騙主機發送大量偽造的ARP應答包進行欺騙,當通訊雙方被欺騙成功後,自己作為了一個“中間人“的身份。此時被欺騙的主機雙方還能正常通訊,只不過在通訊過程中被欺騙者“竊聽”了。出現原因(可能):*木馬病毒*嗅探*人為欺騙第二種:導致斷網通訊模式:應答 -> 應答 -> 應答 -> 應答 -> 應答 -> 應答 -> 請求…描述:這類情況就是在ARP欺騙過程中,欺騙者只欺騙了其中一方,如B欺騙了A,但是同時B沒有對C進行欺騙,這樣A實質上是在和B通訊,所以A就不能和C通訊了,另外一種情況還可能就是欺騙者偽造一個不存在地址進行欺騙。對於偽造地址進行的欺騙,在排查上比較有難度,這裡最好是借用TAP裝置(呵呵,這個東東好像有點貴勒),分別捕獲單向資料流進行分析!出現原因(可能):* 木馬病毒*人為破壞*一些網管軟體的控制功能3. 常用的防護方法搜尋網上,目前對於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 Type192.168.10.1 AA-AA-AA-AA-AA-AA static(靜態) |
一般不綁定,在動態情況下:
| Internet Address Physical Address Type192.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問題,還是請參照上面Binder 方法。?D. 欣向路由器日誌收集欣向路由器的系統日誌,等功能。?E. 抓包類似於網路分析軟體的抓包,儲存格式是.cap。3.2.1 Antiarp這個軟體介面比較簡單,以下為我收集該軟體的使用方法。A. 填入網關IP地址,點擊[擷取網關地址]將會顯示出網關的MAC地址。點擊[自動防護]即可保護當前網卡與該網關的通訊不會被第三方監聽。注意:如出現ARP欺騙提示,這說明攻擊者發送了ARP欺騙資料包來擷取網卡的資料包,如果您想追蹤攻擊來源請記住攻擊者的MAC地址,利用MAC地址掃描器可以找出IP 對應的MAC地址。B. IP地址衝突如頻繁的出現IP地址衝突,這說明攻擊者頻繁發送ARP欺騙資料包,才會出現IP衝突的警告,利用Anti ARPSniffer可以防止此類攻擊。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廣播包,對分析也會造成一定的影響。