深入剖析ARP地址欺騙病毒原理及欺騙過程_ARP原理
發(fā)表時間:2023-07-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一、ARP病毒 ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒, 該病毒一般屬于木馬(Trojan)病毒, 不具備主動傳播的特性, 不會自我復(fù)制。 但是由于其發(fā)作的時候會向全網(wǎng)發(fā)送偽...
一、ARP病毒
ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒, 該病毒一般屬于木馬(Trojan)病毒, 不具備主動傳播的特性, 不會自我復(fù)制。 但是由于其發(fā)作的時候會向全網(wǎng)發(fā)送偽造的ARP數(shù)據(jù)包, 干擾全網(wǎng)的運行, 因此它的危害比一些蠕蟲還要嚴重得多。
二、ARP病毒發(fā)作時的現(xiàn)象
網(wǎng)絡(luò)掉線, 但網(wǎng)絡(luò)連接正常, 內(nèi)網(wǎng)的部分PC機不能上網(wǎng), 或者所有電腦不能上網(wǎng), 無法打開網(wǎng)頁或打開網(wǎng)頁慢, 局域網(wǎng)時斷時續(xù)并且網(wǎng)速較慢等。
三、ARP病毒原理 3.1 網(wǎng)絡(luò)模型簡介
眾所周知, 按照OSI (Open Systems Interconnection Reference Model 開放系統(tǒng)互聯(lián)參考模型) 的觀點, 可將網(wǎng)絡(luò)系統(tǒng)劃分為7層結(jié)構(gòu), 每一個層次上運行著不同的協(xié)議和服務(wù), 并且上下層之間互相配合, 完成網(wǎng)絡(luò)數(shù)據(jù)交換的功能, 如圖1:

然而, OSI的模型僅僅是一個參考模型, 并不是實際網(wǎng)絡(luò)中應(yīng)用的模型。 實際上應(yīng)用最廣泛的商用網(wǎng)絡(luò)模型即TCP/IP體系模型, 將網(wǎng)絡(luò)劃分為四層, 每一個層次上也運行著不同的協(xié)議和服務(wù), 如圖2:

上圖中, 藍色字體表示該層的名稱, 綠色字表示運行在該層上的協(xié)議。 由圖2可見, 我們即將要討論的ARP協(xié)議, 就是工作在網(wǎng)際層上的協(xié)議。
3.2 ARP協(xié)議簡介
我們大家都知道, 在局域網(wǎng)中, 一臺主機要和另一臺主機進行通信, 必須要知道目標主機的IP地址, 但是最終負責(zé)在局域網(wǎng)中傳送數(shù)據(jù)的網(wǎng)卡等物理設(shè)備是不識別IP地址的, 只能識別其硬件地址即MAC地址。 MAC地址是48位的, 通常表示為12個16進制數(shù), 每2個16進制數(shù)之間用“-”或者冒號隔開, 如:00-0B-2F-13-1A-11就是一個MAC地址。 每一塊網(wǎng)卡都有其全球唯一的MAC地址, 網(wǎng)卡之間發(fā)送數(shù)據(jù), 只能根據(jù)對方網(wǎng)卡的MAC地址進行發(fā)送, 這時就需要一個將高層數(shù)據(jù)包中的IP地址轉(zhuǎn)換成低層MAC地址的協(xié)議, 而這個重要的任務(wù)將由ARP協(xié)議完成。
ARP全稱為Address Resolution Protocol, 地址解析協(xié)議。 所謂“地址解析”就是主機在發(fā)送數(shù)據(jù)包前將目標主機IP地址轉(zhuǎn)換成目標主機MAC地址的過程。 ARP協(xié)議的基本功能就是通過目標設(shè)備的IP地址, 查詢目標設(shè)備的MAC地址, 以保證通信的順利進行。 這時就涉及到一個問題, 一個局域網(wǎng)中的電腦少則幾臺, 多則上百臺, 這么多的電腦之間, 如何能準確的記住對方電腦網(wǎng)卡的MAC地址, 以便數(shù)據(jù)的發(fā)送呢?這就涉及到了另外一個概念, ARP緩存表。 在局域網(wǎng)的任何一臺主機中, 都有一個ARP緩存表, 該表中保存這網(wǎng)絡(luò)中各個電腦的IP地址和MAC地址的對照關(guān)系。 當這臺主機向同局域網(wǎng)中另外的主機發(fā)送數(shù)據(jù)的時候, 會根據(jù)ARP緩存表里的對應(yīng)關(guān)系進行發(fā)送。
下面, 我們用一個模擬的局域網(wǎng)環(huán)境, 來說明ARP欺騙的過程。
3.3 ARP欺騙過程
假設(shè)一個只有三臺電腦組成的局域網(wǎng), 該局域網(wǎng)由交換機(Switch)連接。 其中一個電腦名叫A, 代表攻擊方;一臺電腦叫S, 代表源主機, 即發(fā)送數(shù)據(jù)的電腦;令一臺電腦名叫D, 代表目的主機, 即接收數(shù)據(jù)的電腦。 這三臺電腦的IP地址分別為192.168.0.2, 192.168.0.3, 192.168.0.4。 MAC地址分別為 MAC_A, MAC_S, MAC_D。 其網(wǎng)絡(luò)拓撲環(huán)境如圖3:

現(xiàn)在, S電腦要給D電腦發(fā)送數(shù)據(jù)了, 在S電腦內(nèi)部, 上層的TCP和UDP的數(shù)據(jù)包已經(jīng)傳送到了最底層的網(wǎng)絡(luò)接口層, 數(shù)據(jù)包即將要發(fā)送出去, 但這時還不知道目的主機D電腦的MAC地址MAC_D。 這時候, S電腦要先查詢自身的ARP緩存表, 查看里面是否有192.168.0.4這臺電腦的MAC地址, 如果有, 那很好辦, 就將MAC_D封裝在數(shù)據(jù)包的外面。 直接發(fā)送出去即可。 如果沒有, 這時S電腦要向全網(wǎng)絡(luò)發(fā)送一個ARP廣播包, 大聲詢問:“我的IP是192.168.0.3, 硬件地址是MAC_S, 我想知道IP地址為192.168.0.4的主機的硬件地址是多少?” 這時, 全網(wǎng)絡(luò)的電腦都收到該ARP廣播包了, 包括A電腦和D電腦。 A電腦一看其要查詢的IP地址不是自己的, 就將該數(shù)據(jù)包丟棄不予理會。 而D電腦一看IP地址是自己的, 則回答S電腦:“我的IP地址是192.168.0.4, 我的硬件地址是MAC_S”需要注意的是, 這條信息是單獨回答的, 即D電腦單獨向S電腦發(fā)送的, 并非剛才的廣播。 現(xiàn)在S電腦已經(jīng)知道目的電腦D的MAC地址了, 它可以將要發(fā)送的數(shù)據(jù)包上貼上目的地址MAC_D, 發(fā)送出去了。 同時它還會動態(tài)更新自身的ARP緩存表, 將192.168.0.4-MAC_D這一條記錄添加進去, 這樣, 等S電腦下次再給D電腦發(fā)送數(shù)據(jù)的時候, 就不用大聲詢問發(fā)送ARP廣播包了。 這就是正常情況下的數(shù)據(jù)包發(fā)送過程。
這樣的機制看上去很完美, 似乎整個局域網(wǎng)也天下太平, 相安無事。 但是, 上述數(shù)據(jù)發(fā)送機制有一個致命的缺陷, 即它是建立在對局域網(wǎng)中電腦全部信任的基礎(chǔ)上的, 也就是說它的假設(shè)前提是:無論局域網(wǎng)中那臺電腦, 其發(fā)送的ARP數(shù)據(jù)包都是正確的。 那么這樣就很危險了!因為局域網(wǎng)中并非所有的電腦都安分守己, 往往有非法者的存在。 比如在上述數(shù)據(jù)發(fā)送中, 當S電腦向全網(wǎng)詢問“我想知道IP地址為192.168.0.4的主機的硬件地址是多少?”后, D電腦也回應(yīng)了自己的正確MAC地址。 但是當此時, 一向沉默寡言的A電腦也回話了:“我的IP地址是192.168.0.4, 我的硬件地址是MAC_A” , 注意, 此時它竟然冒充自己是D電腦的IP地址, 而MAC地址竟然寫成自己的!由于A電腦不停地發(fā)送這樣的應(yīng)答數(shù)據(jù)包, 本來S電腦的ARP緩存表中已經(jīng)保存了正確的記錄:192.168.0.4-MAC_D, 但是由于A電腦的不停應(yīng)答, 這時S電腦并不知道A電腦發(fā)送的數(shù)據(jù)包是偽造的, 導(dǎo)致S電腦又重新動態(tài)更新自身的ARP緩存表, 這回記錄成:192.168.0.4-MAC_A, 很顯然, 這是一個錯誤的記錄(這步也叫ARP緩存表中毒), 這樣就導(dǎo)致以后凡是S電腦要發(fā)送給D電腦, 也就是IP地址為192.168.0.4這臺主機的數(shù)據(jù), 都將會發(fā)送給MAC地址為MAC_A的主機, 這樣, 在光天化日之下, A電腦竟然劫持了由S電腦發(fā)送給D電腦的數(shù)據(jù)!這就是ARP欺騙的過程。
如果A這臺電腦再做的“過分”一些, 它不冒充D電腦, 而是冒充網(wǎng)關(guān), 那后果會怎么樣呢?我們大家都知道, 如果一個局域網(wǎng)中的電腦要連接外網(wǎng), 也就是登陸互聯(lián)網(wǎng)的時候, 都要經(jīng)過局域網(wǎng)中的網(wǎng)關(guān)轉(zhuǎn)發(fā)一下, 所有收發(fā)的數(shù)據(jù)都要先經(jīng)過網(wǎng)關(guān), 再由網(wǎng)關(guān)發(fā)向互聯(lián)網(wǎng)。 在局域網(wǎng)中, 網(wǎng)關(guān)的IP地址一般為192.168.0.1。 如果A這臺電腦向全網(wǎng)不停的發(fā)送ARP欺騙廣播, 大聲說:“我的IP地址是192.168.0.1, 我的硬件地址是MAC_A”這時局域網(wǎng)中的其它電腦并沒有察覺到什么, 因為局域網(wǎng)通信的前提條件是信任任何電腦發(fā)送的ARP廣播包。 這樣局域網(wǎng)中的其它電腦都會更新自身的ARP緩存表, 記錄下192.168.0.1-MAC_A這樣的記錄, 這樣, 當它們發(fā)送給網(wǎng)關(guān), 也就是IP地址為192.168.0.1這臺電腦的數(shù)據(jù), 結(jié)果都會發(fā)送到MAC_A這臺電腦中!這樣, A電腦就將會監(jiān)聽整個局域網(wǎng)發(fā)送給互聯(lián)網(wǎng)的數(shù)據(jù)包!
實際上, 這種病毒早就出現(xiàn)過, 這就是ARP地址欺騙類病毒。 一些傳奇木馬(Trojan/PSW.LMir)具有這樣的特性, 該木馬一般通過傳奇外掛、網(wǎng)頁木馬等方式使局域網(wǎng)中的某臺電腦中毒, 這樣中毒電腦便可嗅探到整個局域網(wǎng)發(fā)送的所有數(shù)據(jù)包, 該木馬破解了《傳奇》游戲的數(shù)據(jù)包加密算法, 通過截獲局域網(wǎng)中的數(shù)據(jù)包, 分析數(shù)據(jù)包中的用戶隱私信息, 盜取用戶的游戲帳號和密碼。 在解析這些封包之后, 再將它們發(fā)送到真正的網(wǎng)關(guān)。 這樣的病毒有一個令網(wǎng)吧游戲玩家聞之色變的名字:“傳奇網(wǎng)吧殺手” !
四、ARP病毒新的表現(xiàn)形式
由于現(xiàn)在的網(wǎng)絡(luò)游戲數(shù)據(jù)包在發(fā)送過程中, 均已采用了強悍的加密算法, 因此這類ARP病毒在解密數(shù)據(jù)包的時候遇到了很大的難度。 現(xiàn)在又新出現(xiàn)了一種ARP病毒, 與以前的一樣的是, 該類ARP病毒也是向全網(wǎng)發(fā)送偽造的ARP欺騙廣播, 自身偽裝成網(wǎng)關(guān)。 但區(qū)別是, 它著重的不是對網(wǎng)絡(luò)游戲數(shù)據(jù)包的解密, 而是對于HTTP請求訪問的修改。
HTTP是應(yīng)用層的協(xié)議, 主要是用于WEB網(wǎng)頁訪問。 還是以上面的局域網(wǎng)環(huán)境舉例, 如果局域網(wǎng)中一臺電腦S要請求某個網(wǎng)站頁面, 如想請求www.sina.com.cn這個網(wǎng)頁, 這臺電腦會先向網(wǎng)關(guān)發(fā)送HTTP請求, 說:“我想登陸www.sina.com.cn網(wǎng)頁, 請你將這個網(wǎng)頁下載下來, 并發(fā)送給我。 ”這樣, 網(wǎng)關(guān)就會將www.sina.com.cn頁面下載下來, 并發(fā)送給S電腦。 這時, 如果A這臺電腦通過向全網(wǎng)發(fā)送偽造的ARP欺騙廣播, 自身偽裝成網(wǎng)關(guān), 成為一臺ARP中毒電腦的話, 這樣當S電腦請求WEB網(wǎng)頁時, A電腦先是“好心好意”地將這個頁面下載下來, 然后發(fā)送給S電腦, 但是它在返回給S電腦時, 會向其中插入惡意網(wǎng)址連接!該惡意網(wǎng)址連接會利用MS06-014和MS07-017等多種系統(tǒng)漏洞, 向S電腦種植木馬病毒!同樣, 如果D電腦也是請求WEB頁面訪問, A電腦同樣也會給D電腦返回帶毒的網(wǎng)頁, 這樣, 如果一個局域網(wǎng)中存在這樣的ARP病毒電腦的話, 頃刻間, 整個網(wǎng)段的電腦將會全部中毒!淪為黑客手中的僵尸電腦!
案例:
某企業(yè)用戶反映, 其內(nèi)部局域網(wǎng)用戶無論訪問那個網(wǎng)站, 在經(jīng)過對該局域網(wǎng)分析之后, 發(fā)現(xiàn)該局域網(wǎng)中有ARP病毒電腦導(dǎo)致其它電腦訪問網(wǎng)頁時, 返回的網(wǎng)頁帶毒, 并且該帶毒網(wǎng)頁通過MS06-014和MS07-017漏洞給電腦植入一個木馬下載器, 而該木馬下載器又會下載10多個惡性網(wǎng)游木馬, 可以盜取包括魔獸世界, 傳奇世界, 征途, 夢幻西游, 邊鋒游戲在內(nèi)的多款網(wǎng)絡(luò)游戲的帳號和密碼, 對網(wǎng)絡(luò)游戲玩家的游戲裝備造成了極大的損失。 被ARP病毒電腦篡改的網(wǎng)頁如圖4:

圖4 被ARP病毒插入的惡意網(wǎng)址連接
從圖4中可以看出, 局域網(wǎng)中存在這樣的ARP病毒電腦之后, 其它客戶機無論訪問什么網(wǎng)頁, 當返回該網(wǎng)頁時, 都會被插入一條惡意網(wǎng)址連接, 如果用戶沒有打過相應(yīng)的系統(tǒng)補丁, 就會感染木馬病毒。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。