明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

深入剖析ARP地址欺騙病毒原理及欺騙過程_ARP原理

[摘要]一、ARP病毒 ARP地址欺騙類病毒(以下簡(jiǎn)稱ARP病毒)是一類特殊的病毒, 該病毒一般屬于木馬(Trojan)病毒, 不具備主動(dòng)傳播的特性, 不會(huì)自我復(fù)制。 但是由于其發(fā)作的時(shí)候會(huì)向全網(wǎng)發(fā)送偽...

一、ARP病毒

ARP地址欺騙類病毒(以下簡(jiǎn)稱ARP病毒)是一類特殊的病毒, 該病毒一般屬于木馬(Trojan)病毒, 不具備主動(dòng)傳播的特性, 不會(huì)自我復(fù)制。 但是由于其發(fā)作的時(shí)候會(huì)向全網(wǎng)發(fā)送偽造的ARP數(shù)據(jù)包, 干擾全網(wǎng)的運(yùn)行, 因此它的危害比一些蠕蟲還要嚴(yán)重得多。

二、ARP病毒發(fā)作時(shí)的現(xiàn)象

網(wǎng)絡(luò)掉線, 但網(wǎng)絡(luò)連接正常, 內(nèi)網(wǎng)的部分PC機(jī)不能上網(wǎng), 或者所有電腦不能上網(wǎng), 無法打開網(wǎng)頁(yè)或打開網(wǎng)頁(yè)慢, 局域網(wǎng)時(shí)斷時(shí)續(xù)并且網(wǎng)速較慢等。

三、ARP病毒原理

3.1  網(wǎng)絡(luò)模型簡(jiǎn)介

眾所周知, 按照OSI (Open Systems Interconnection Reference Model 開放系統(tǒng)互聯(lián)參考模型) 的觀點(diǎn), 可將網(wǎng)絡(luò)系統(tǒng)劃分為7層結(jié)構(gòu), 每一個(gè)層次上運(yùn)行著不同的協(xié)議和服務(wù), 并且上下層之間互相配合, 完成網(wǎng)絡(luò)數(shù)據(jù)交換的功能, 如圖1:

 

深入剖析ARP地址欺騙病毒原理及欺騙過程

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

 

深入剖析ARP地址欺騙病毒原理及欺騙過程

上圖中, 藍(lán)色字體表示該層的名稱, 綠色字表示運(yùn)行在該層上的協(xié)議。 由圖2可見, 我們即將要討論的ARP協(xié)議, 就是工作在網(wǎng)際層上的協(xié)議。

3.2  ARP協(xié)議簡(jiǎn)介

我們大家都知道, 在局域網(wǎng)中, 一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行通信, 必須要知道目標(biāo)主機(jī)的IP地址, 但是最終負(fù)責(zé)在局域網(wǎng)中傳送數(shù)據(jù)的網(wǎng)卡等物理設(shè)備是不識(shí)別IP地址的, 只能識(shí)別其硬件地址即MAC地址。 MAC地址是48位的, 通常表示為12個(gè)16進(jìn)制數(shù), 每2個(gè)16進(jìn)制數(shù)之間用“-”或者冒號(hào)隔開, 如:00-0B-2F-13-1A-11就是一個(gè)MAC地址。 每一塊網(wǎng)卡都有其全球唯一的MAC地址, 網(wǎng)卡之間發(fā)送數(shù)據(jù), 只能根據(jù)對(duì)方網(wǎng)卡的MAC地址進(jìn)行發(fā)送, 這時(shí)就需要一個(gè)將高層數(shù)據(jù)包中的IP地址轉(zhuǎn)換成低層MAC地址的協(xié)議, 而這個(gè)重要的任務(wù)將由ARP協(xié)議完成。

ARP全稱為Address Resolution Protocol, 地址解析協(xié)議。 所謂“地址解析”就是主機(jī)在發(fā)送數(shù)據(jù)包前將目標(biāo)主機(jī)IP地址轉(zhuǎn)換成目標(biāo)主機(jī)MAC地址的過程。 ARP協(xié)議的基本功能就是通過目標(biāo)設(shè)備的IP地址, 查詢目標(biāo)設(shè)備的MAC地址, 以保證通信的順利進(jìn)行。 這時(shí)就涉及到一個(gè)問題, 一個(gè)局域網(wǎng)中的電腦少則幾臺(tái), 多則上百臺(tái), 這么多的電腦之間, 如何能準(zhǔn)確的記住對(duì)方電腦網(wǎng)卡的MAC地址, 以便數(shù)據(jù)的發(fā)送呢?這就涉及到了另外一個(gè)概念, ARP緩存表。 在局域網(wǎng)的任何一臺(tái)主機(jī)中, 都有一個(gè)ARP緩存表, 該表中保存這網(wǎng)絡(luò)中各個(gè)電腦的IP地址和MAC地址的對(duì)照關(guān)系。 當(dāng)這臺(tái)主機(jī)向同局域網(wǎng)中另外的主機(jī)發(fā)送數(shù)據(jù)的時(shí)候, 會(huì)根據(jù)ARP緩存表里的對(duì)應(yīng)關(guān)系進(jìn)行發(fā)送。

下面, 我們用一個(gè)模擬的局域網(wǎng)環(huán)境, 來說明ARP欺騙的過程。

3.3  ARP欺騙過程

假設(shè)一個(gè)只有三臺(tái)電腦組成的局域網(wǎng), 該局域網(wǎng)由交換機(jī)(Switch)連接。 其中一個(gè)電腦名叫A, 代表攻擊方;一臺(tái)電腦叫S, 代表源主機(jī), 即發(fā)送數(shù)據(jù)的電腦;令一臺(tái)電腦名叫D, 代表目的主機(jī), 即接收數(shù)據(jù)的電腦。 這三臺(tái)電腦的IP地址分別為192.168.0.2, 192.168.0.3, 192.168.0.4。 MAC地址分別為 MAC_A, MAC_S, MAC_D。 其網(wǎng)絡(luò)拓?fù)洵h(huán)境如圖3:

 

深入剖析ARP地址欺騙病毒原理及欺騙過程

現(xiàn)在, S電腦要給D電腦發(fā)送數(shù)據(jù)了, 在S電腦內(nèi)部, 上層的TCP和UDP的數(shù)據(jù)包已經(jīng)傳送到了最底層的網(wǎng)絡(luò)接口層, 數(shù)據(jù)包即將要發(fā)送出去, 但這時(shí)還不知道目的主機(jī)D電腦的MAC地址MAC_D。 這時(shí)候, S電腦要先查詢自身的ARP緩存表, 查看里面是否有192.168.0.4這臺(tái)電腦的MAC地址, 如果有, 那很好辦, 就將MAC_D封裝在數(shù)據(jù)包的外面。 直接發(fā)送出去即可。 如果沒有, 這時(shí)S電腦要向全網(wǎng)絡(luò)發(fā)送一個(gè)ARP廣播包, 大聲詢問:“我的IP是192.168.0.3, 硬件地址是MAC_S, 我想知道IP地址為192.168.0.4的主機(jī)的硬件地址是多少?” 這時(shí), 全網(wǎng)絡(luò)的電腦都收到該ARP廣播包了, 包括A電腦和D電腦。 A電腦一看其要查詢的IP地址不是自己的, 就將該數(shù)據(jù)包丟棄不予理會(huì)。 而D電腦一看IP地址是自己的, 則回答S電腦:“我的IP地址是192.168.0.4, 我的硬件地址是MAC_S”需要注意的是, 這條信息是單獨(dú)回答的, 即D電腦單獨(dú)向S電腦發(fā)送的, 并非剛才的廣播。 現(xiàn)在S電腦已經(jīng)知道目的電腦D的MAC地址了, 它可以將要發(fā)送的數(shù)據(jù)包上貼上目的地址MAC_D, 發(fā)送出去了。 同時(shí)它還會(huì)動(dòng)態(tài)更新自身的ARP緩存表, 將192.168.0.4-MAC_D這一條記錄添加進(jìn)去, 這樣, 等S電腦下次再給D電腦發(fā)送數(shù)據(jù)的時(shí)候, 就不用大聲詢問發(fā)送ARP廣播包了。 這就是正常情況下的數(shù)據(jù)包發(fā)送過程。

這樣的機(jī)制看上去很完美, 似乎整個(gè)局域網(wǎng)也天下太平, 相安無事。 但是, 上述數(shù)據(jù)發(fā)送機(jī)制有一個(gè)致命的缺陷, 即它是建立在對(duì)局域網(wǎng)中電腦全部信任的基礎(chǔ)上的, 也就是說它的假設(shè)前提是:無論局域網(wǎng)中那臺(tái)電腦, 其發(fā)送的ARP數(shù)據(jù)包都是正確的。 那么這樣就很危險(xiǎn)了!因?yàn)榫钟蚓W(wǎng)中并非所有的電腦都安分守己, 往往有非法者的存在。 比如在上述數(shù)據(jù)發(fā)送中, 當(dāng)S電腦向全網(wǎng)詢問“我想知道IP地址為192.168.0.4的主機(jī)的硬件地址是多少?”后, D電腦也回應(yīng)了自己的正確MAC地址。 但是當(dāng)此時(shí), 一向沉默寡言的A電腦也回話了:“我的IP地址是192.168.0.4, 我的硬件地址是MAC_A” , 注意, 此時(shí)它竟然冒充自己是D電腦的IP地址, 而MAC地址竟然寫成自己的!由于A電腦不停地發(fā)送這樣的應(yīng)答數(shù)據(jù)包, 本來S電腦的ARP緩存表中已經(jīng)保存了正確的記錄:192.168.0.4-MAC_D, 但是由于A電腦的不停應(yīng)答, 這時(shí)S電腦并不知道A電腦發(fā)送的數(shù)據(jù)包是偽造的, 導(dǎo)致S電腦又重新動(dòng)態(tài)更新自身的ARP緩存表, 這回記錄成:192.168.0.4-MAC_A, 很顯然, 這是一個(gè)錯(cuò)誤的記錄(這步也叫ARP緩存表中毒), 這樣就導(dǎo)致以后凡是S電腦要發(fā)送給D電腦, 也就是IP地址為192.168.0.4這臺(tái)主機(jī)的數(shù)據(jù), 都將會(huì)發(fā)送給MAC地址為MAC_A的主機(jī), 這樣, 在光天化日之下, A電腦竟然劫持了由S電腦發(fā)送給D電腦的數(shù)據(jù)!這就是ARP欺騙的過程。

如果A這臺(tái)電腦再做的“過分”一些, 它不冒充D電腦, 而是冒充網(wǎng)關(guān), 那后果會(huì)怎么樣呢?我們大家都知道, 如果一個(gè)局域網(wǎng)中的電腦要連接外網(wǎng), 也就是登陸互聯(lián)網(wǎng)的時(shí)候, 都要經(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這臺(tái)電腦向全網(wǎng)不停的發(fā)送ARP欺騙廣播, 大聲說:“我的IP地址是192.168.0.1, 我的硬件地址是MAC_A”這時(shí)局域網(wǎng)中的其它電腦并沒有察覺到什么, 因?yàn)榫钟蚓W(wǎng)通信的前提條件是信任任何電腦發(fā)送的ARP廣播包。 這樣局域網(wǎng)中的其它電腦都會(huì)更新自身的ARP緩存表, 記錄下192.168.0.1-MAC_A這樣的記錄, 這樣, 當(dāng)它們發(fā)送給網(wǎng)關(guān), 也就是IP地址為192.168.0.1這臺(tái)電腦的數(shù)據(jù), 結(jié)果都會(huì)發(fā)送到MAC_A這臺(tái)電腦中!這樣, A電腦就將會(huì)監(jiān)聽整個(gè)局域網(wǎng)發(fā)送給互聯(lián)網(wǎng)的數(shù)據(jù)包!

實(shí)際上, 這種病毒早就出現(xiàn)過, 這就是ARP地址欺騙類病毒。 一些傳奇木馬(Trojan/PSW.LMir)具有這樣的特性, 該木馬一般通過傳奇外掛、網(wǎng)頁(yè)木馬等方式使局域網(wǎng)中的某臺(tái)電腦中毒, 這樣中毒電腦便可嗅探到整個(gè)局域網(wǎng)發(fā)送的所有數(shù)據(jù)包, 該木馬破解了《傳奇》游戲的數(shù)據(jù)包加密算法, 通過截獲局域網(wǎng)中的數(shù)據(jù)包, 分析數(shù)據(jù)包中的用戶隱私信息, 盜取用戶的游戲帳號(hào)和密碼。 在解析這些封包之后, 再將它們發(fā)送到真正的網(wǎng)關(guān)。 這樣的病毒有一個(gè)令網(wǎng)吧游戲玩家聞之色變的名字:“傳奇網(wǎng)吧殺手” !

四、ARP病毒新的表現(xiàn)形式

由于現(xiàn)在的網(wǎng)絡(luò)游戲數(shù)據(jù)包在發(fā)送過程中, 均已采用了強(qiáng)悍的加密算法, 因此這類ARP病毒在解密數(shù)據(jù)包的時(shí)候遇到了很大的難度。 現(xiàn)在又新出現(xiàn)了一種ARP病毒, 與以前的一樣的是, 該類ARP病毒也是向全網(wǎng)發(fā)送偽造的ARP欺騙廣播, 自身偽裝成網(wǎng)關(guān)。 但區(qū)別是, 它著重的不是對(duì)網(wǎng)絡(luò)游戲數(shù)據(jù)包的解密, 而是對(duì)于HTTP請(qǐng)求訪問的修改。

HTTP是應(yīng)用層的協(xié)議, 主要是用于WEB網(wǎng)頁(yè)訪問。 還是以上面的局域網(wǎng)環(huán)境舉例, 如果局域網(wǎng)中一臺(tái)電腦S要請(qǐng)求某個(gè)網(wǎng)站頁(yè)面, 如想請(qǐng)求www.sina.com.cn這個(gè)網(wǎng)頁(yè), 這臺(tái)電腦會(huì)先向網(wǎng)關(guān)發(fā)送HTTP請(qǐng)求, 說:“我想登陸www.sina.com.cn網(wǎng)頁(yè), 請(qǐng)你將這個(gè)網(wǎng)頁(yè)下載下來, 并發(fā)送給我。 ”這樣, 網(wǎng)關(guān)就會(huì)將www.sina.com.cn頁(yè)面下載下來, 并發(fā)送給S電腦。 這時(shí), 如果A這臺(tái)電腦通過向全網(wǎng)發(fā)送偽造的ARP欺騙廣播, 自身偽裝成網(wǎng)關(guān), 成為一臺(tái)ARP中毒電腦的話, 這樣當(dāng)S電腦請(qǐng)求WEB網(wǎng)頁(yè)時(shí), A電腦先是“好心好意”地將這個(gè)頁(yè)面下載下來, 然后發(fā)送給S電腦, 但是它在返回給S電腦時(shí), 會(huì)向其中插入惡意網(wǎng)址連接!該惡意網(wǎng)址連接會(huì)利用MS06-014和MS07-017等多種系統(tǒng)漏洞, 向S電腦種植木馬病毒!同樣, 如果D電腦也是請(qǐng)求WEB頁(yè)面訪問, A電腦同樣也會(huì)給D電腦返回帶毒的網(wǎng)頁(yè), 這樣, 如果一個(gè)局域網(wǎng)中存在這樣的ARP病毒電腦的話, 頃刻間, 整個(gè)網(wǎng)段的電腦將會(huì)全部中毒!淪為黑客手中的僵尸電腦!

案例:

某企業(yè)用戶反映, 其內(nèi)部局域網(wǎng)用戶無論訪問那個(gè)網(wǎng)站, 在經(jīng)過對(duì)該局域網(wǎng)分析之后, 發(fā)現(xiàn)該局域網(wǎng)中有ARP病毒電腦導(dǎo)致其它電腦訪問網(wǎng)頁(yè)時(shí), 返回的網(wǎng)頁(yè)帶毒, 并且該帶毒網(wǎng)頁(yè)通過MS06-014和MS07-017漏洞給電腦植入一個(gè)木馬下載器, 而該木馬下載器又會(huì)下載10多個(gè)惡性網(wǎng)游木馬, 可以盜取包括魔獸世界, 傳奇世界, 征途, 夢(mèng)幻西游, 邊鋒游戲在內(nèi)的多款網(wǎng)絡(luò)游戲的帳號(hào)和密碼, 對(duì)網(wǎng)絡(luò)游戲玩家的游戲裝備造成了極大的損失。 被ARP病毒電腦篡改的網(wǎng)頁(yè)如圖4:

 

深入剖析ARP地址欺騙病毒原理及欺騙過程

 圖4 被ARP病毒插入的惡意網(wǎng)址連接

從圖4中可以看出, 局域網(wǎng)中存在這樣的ARP病毒電腦之后, 其它客戶機(jī)無論訪問什么網(wǎng)頁(yè), 當(dāng)返回該網(wǎng)頁(yè)時(shí), 都會(huì)被插入一條惡意網(wǎng)址連接, 如果用戶沒有打過相應(yīng)的系統(tǒng)補(bǔ)丁, 就會(huì)感染木馬病毒。

 


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。