ARP欺騙 - 針對以太網地址解析協(xié)議的攻擊技術
ARP欺騙(英語:ARP spoofing),又稱ARP毒化(ARP poisoning,網絡上多譯為ARP病毒)或ARP攻擊,是針對以太網地址解析協(xié)議(ARP)的一種攻擊技術,通過欺騙局域網內訪問者PC的網關MAC地址,使訪問者PC錯以為攻擊者更改后的MAC地址是網關的MAC,導致網絡不通。此種攻擊可讓攻擊者獲取局域網上的數據包甚至可篡改數據包,且可讓網絡上特定計算機或所有計算機無法正常連線。最早探討ARP欺騙的文章是由Yuri Volobuev所寫的《ARP與ICMP轉向游戲》(ARP and ICMP redirection games)。
釋義
地址解析協(xié)議(Address Resolution Protocol,ARP)是在僅知道主機的IP地址時確定其物理地址的一種協(xié)議。
在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。所以說從某種意義上講ARP協(xié)議是工作在更低于IP協(xié)議的協(xié)議層。這也是為什么ARP欺騙更能夠讓人在神不知鬼不覺的情況下出現(xiàn)網絡故障,他的危害更加隱蔽。
原理
首先我們可以肯定一點的就是發(fā)送ARP欺騙包是通過一個惡毒的程序自動發(fā)送的,正常的TCP/IP網絡是不會有這樣的錯誤包發(fā)送的,而人工發(fā)送又比較麻煩。也就是說當黑客沒有運行這個惡毒程序的話,網絡上通信應該是一切正常的,保留在各個連接網絡計算機上的ARP緩存表也應該是正確的,只有程序啟動開始發(fā)送錯誤ARP信息以及ARP欺騙包時才會讓某些計算機訪問網絡出現(xiàn)問題。接下來我們來闡述下ARP欺騙的原理。
第一步:假設這樣一個網絡,一個Hub或交換機連接了3臺機器,依次是計算機A,B,C。
A的地址為:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA
B的地址為:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB
C的地址為:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC?
第二步:正常情況下在A計算機上運行ARP -A查詢ARP緩存表應該出現(xiàn)如下信息。
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address physical address Type
192.168.1.3 CC-CC-CC-CC-CC-CC dynamic?
第三步:在計算機B上運行ARP欺騙程序,來發(fā)送ARP欺騙包。
B向A發(fā)送一個自己偽造的ARP應答,而這個應答中的數據為發(fā)送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這里被偽造了)。當A接收到B偽造的ARP應答,就會更新本地的ARP緩存(A可不知道被偽造了)。而且A不知道其實是從B發(fā)送過來的,A這里只有192.168.10.3(C的IP地址)和無效的DD-DD-DD-DD-DD-DD mac地址。
第四步:欺騙完畢我們在A計算機上運行ARP -A來查詢ARP緩存信息。你會發(fā)現(xiàn)原來正確的信息現(xiàn)在已經出現(xiàn)了錯誤。
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 DD-DD-DD-DD-DD-DD dynamic?
從上面的介紹我們可以清楚的明白原來網絡中傳輸數據包最后都是要根據MAC地址信息的,也就是說雖然我們日常通訊都是通過IP地址,但是最后還是需要通過ARP協(xié)議進行地址轉換,將IP地址變?yōu)镸AC地址。而上面例子中在計算機A上的關于計算機C的MAC地址已經錯誤了,所以即使以后從A計算機訪問C計算機這個192.168.1.3這個地址也會被ARP協(xié)議錯誤的解析成MAC地址為DD-DD-DD-DD-DD-DD的。
問題也會隨著ARP欺騙包針對網關而變本加厲,當局域網中一臺機器,反復向其他機器,特別是向網關,發(fā)送這樣無效假冒的ARP應答信息包時,嚴重的網絡堵塞就會開始。由于網關MAC地址錯誤,所以從網絡中計算機發(fā)來的數據無法正常發(fā)到網關,自然無法正常上網。這就造成了無法訪問外網的問題,另外由于很多時候網關還控制著我們的局域網LAN上網,所以這時我們的LAN訪問也就出現(xiàn)問題了。
危害
前面也提到了ARP欺騙可以造成內部網絡的混亂,讓某些被欺騙的計算機無法正常訪問內外網,讓網關無法和客戶端正常通信。實際上他的危害還不僅僅如此,一般來說IP地址的沖突我們可以通過多種方法和手段來避免,而ARP協(xié)議工作在更低層,隱蔽性更高。系統(tǒng)并不會判斷ARP緩存的正確與否,無法像IP地址沖突那樣給出提示。而且很多黑客工具例如網絡剪刀手等,可以隨時發(fā)送ARP欺騙數據包和ARP恢復數據包,這樣就可以實現(xiàn)在一臺普通計算機上通過發(fā)送ARP數據包的方法來控制網絡中任何一臺計算機的上網與否,甚至還可以直接對網關進行攻擊,讓所有連接網絡的計算機都無法正常上網。這點在以前是不可能的,因為普通計算機沒有管理權限來控制網關,而現(xiàn)在卻成為可能,所以說ARP欺騙的危害是巨大的,而且非常難對付,非法用戶和惡意用戶可以隨時發(fā)送ARP欺騙和恢復數據包,這樣就增加了網絡管理員查找真兇的難度。
