摘要:該文詳細介紹了利用ARP協(xié)議的特性進行欺騙攻擊的原理和過程,ARP病毒是一種地址欺騙的病毒,通過偽造IP地址和MAC地址來完成ARP欺騙,對ARP病毒的攻擊原理做了探討與分析。
關(guān)鍵詞:ARP緩存表;中間人攻擊;局域網(wǎng);MAC地址;IP地址
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2009)05-1064-01
The Analysis of Principles on the Viruses Initiated by the Breakdown of the Local Network Caused by ARP Attack
LIU Xun-zhang
(Fushun CATV Station,F(xiàn)ushun 113006,China)
Abstract: The text indetail introduce the principle and the process of cheating and attacking by using ARP protocol, The ARPvirus is one kind of address deceit vrus, the ARPvirus realizes the ARPdeceit through the forge Ipaddress and the MAC address,The article has made the detailed discussion and the analysis to the ARP virus’s attack principle.
Key words: ARP-cache;middle-people's-attacks;LAN;MAC-address;IP-address
最近,撫順廣電寬帶網(wǎng)“東二街片區(qū)”網(wǎng)絡(luò)總是不穩(wěn)定,經(jīng)常出現(xiàn)斷網(wǎng),或某一時刻網(wǎng)速極慢現(xiàn)象,給網(wǎng)絡(luò)用戶帶來很大不變,起初我們還以為是這一片區(qū)的2016AF-SM交換機有問題,經(jīng)過更換新的交換機,好了一段時間后又頻繁掉線,經(jīng)過我們認真走訪發(fā)現(xiàn)這一片區(qū)內(nèi)有的電腦正常,沒有發(fā)生過掉線現(xiàn)象,于是,我們懷疑是病毒在搗鬼,根據(jù)這一片區(qū)計算機頻繁掉線的現(xiàn)象,我們認為可能是這一片區(qū)某臺電腦中了ARP病毒,由于這種病毒有些殺毒軟件很難根除,病毒發(fā)作時其癥狀表現(xiàn)為計算機網(wǎng)絡(luò)連接正常,但無法打開網(wǎng)頁或由于ARP欺騙的木馬程序發(fā)作時發(fā)出大量的數(shù)據(jù)包導致局域網(wǎng)用戶上網(wǎng)不穩(wěn)定,在CMD 中ping 219.149.28.65 -t總是顯示Request Time Out 或隔幾行顯示一二條Reply From 219.149.28.65:Bytes=32 Time=323ms TTL=252,極大地影響了用戶的正常使用,給整個局域網(wǎng)的安全帶來嚴重隱患。
中毒癥狀:
由于局域網(wǎng)內(nèi)某臺主機運行ARP欺騙的木馬程序時,會欺騙局域網(wǎng)內(nèi)所有的主機和路由器,讓所有上網(wǎng)的流量必須經(jīng)過病毒主機,其他用戶原來直接通過路由器上網(wǎng),現(xiàn)在轉(zhuǎn)由通過病毒主機上網(wǎng)了,切換的時候用戶會斷一次線,切換到病毒主機上網(wǎng)后,如果用戶已經(jīng)登陸了服務(wù)器,病毒主機就會經(jīng)常偽造斷線的假像,由于ARP欺騙的木馬程序發(fā)作時會發(fā)出大量的數(shù)據(jù)包,導致局域網(wǎng)通訊阻塞以及自身處理能力的局限性,用戶會感覺上網(wǎng)網(wǎng)速很慢,網(wǎng)絡(luò)周期性斷開,有時候無法正常上網(wǎng),有時候好了。局域網(wǎng)內(nèi)的ARP包爆增,使用ARP查詢的時候會發(fā)現(xiàn)不正常的MAC地址或者是和錯誤的MAC地址對應(yīng),或者是一個MAC 地址對應(yīng)多個IP地址。該病毒發(fā)作時,僅能影響同網(wǎng)段內(nèi)機器的正常使用。用ARP-a命令檢查ARP表的時候發(fā)現(xiàn)路由器IP和MAC被修改了,這就是ARP病毒攻擊的典型癥狀。
原理分析:
ARP協(xié)議是“Address Resolution Protocol ”的縮寫,ARP地址解析協(xié)議用于將計算機的網(wǎng)絡(luò)IP地址轉(zhuǎn)化為物理MAC地址,ARP協(xié)議對網(wǎng)絡(luò)安全具有重要意義。在局域網(wǎng)中網(wǎng)絡(luò)實際傳輸?shù)氖恰皫保淅锩媸怯心繕酥鳈C的MAC地址,在網(wǎng)絡(luò)中一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC 地址,但這個目標 MAC 地址是如何獲得的呢?它就是通過ARP 協(xié)議獲得的。ARP協(xié)議的基本功能就是通過目標設(shè)備的IP地址,查詢目標設(shè)備的MAC地址,以保證通信的正常進行。
每一個主機都有一個ARP高速緩存,存放最近的IP地址到MAC硬件地址之間的映射記錄,其記錄的生存時間一般為60S,在默認的情況下,ARP從緩存中讀取IP-MAC條目,緩存中的IP-MAC條目是根據(jù)ARP響應(yīng)包動態(tài)變化的。因此,只要網(wǎng)絡(luò)上有ARP響應(yīng)包發(fā)送到本機,就會有更新ARP高速緩存中的IP-MAC條目。攻擊者只要持續(xù)不斷地發(fā)出偽造的ARP響應(yīng)包就能更改目標主機ARP緩存中的IP-MAC條目,通過偽造的IP 地址和MAC 地址來實現(xiàn)ARP欺騙,當攻擊源大量地向局域網(wǎng)中發(fā)送虛假的ARP信息后,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量,使網(wǎng)絡(luò)阻塞,造成網(wǎng)絡(luò)中斷或中間人攻擊。
說起中間人攻擊大家可能馬上想起風靡一時的SMB會話劫持,DNS欺騙等技術(shù),這些都是典型的中間人攻擊手段。其實說它是一種手段不如說它是一種攻擊模式,它可以應(yīng)用于各個領(lǐng)域,比如在現(xiàn)實中,A通過B傳話給C,那么B在傳話給C的時候,可以夸大其詞,也可以填油加醋后傳給C,在這個過程中中間人B無意中就來了一次中間人攻擊,其實“謠言”就是這么來的,在網(wǎng)絡(luò)安全方面,中間人攻擊應(yīng)用很廣泛,下面就以Http協(xié)議代理來介紹一下中間人攻擊。代理服務(wù)的一個典型模型如圖1。
上面可以看出:Client發(fā)出的請和Web 回的數(shù)據(jù)都經(jīng)過Proxy Server轉(zhuǎn)發(fā),這個Proxy Server就是起到了一個Middle Man的作用,如果中間人夠黑,那么整個代理過程的數(shù)據(jù)都可以由這個中間人控制。
每臺安裝有TCP/IP協(xié)議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應(yīng)的,如表1所示。
我們以主機A (192.168.0.1)向主機B(192.168.0.2)發(fā)送數(shù)據(jù)為例。當發(fā)送數(shù)據(jù)時,主機A會在自已的ARP緩存表中尋找是否有目標MAC地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發(fā)送就可以了,ARP緩存表中沒有找到相對應(yīng)的IP地址,主機A就會在網(wǎng)絡(luò)上發(fā)送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機發(fā)出這樣的詢問:“192.168.0.2的地址是什么?”網(wǎng)絡(luò)上其它并不響應(yīng)ARP的詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應(yīng):“192.168.0.2”的MAC地址是“bb-bb-bb-bb-bb-bb”。這樣,主機A 就知道了主機B的MAC地址,它就可以向主機B發(fā)送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找就可以了,ARP協(xié)議并不只在發(fā)送了ARP請求才接收ARP應(yīng)答。當計算機接收到ARP應(yīng)答數(shù)據(jù)包時,就會對本地ARP緩存進行更新,將應(yīng)答中的IP和MAC地址存儲在ARP緩存中。ARP緩存表采用了老化機制,MS Windows高速緩存中的每一條記錄的生存時間 一般為60S,起始時間從被創(chuàng)建時開始算起,在一段時間內(nèi)如果表中某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
從上面可以看出,ARP協(xié)議的基礎(chǔ)就是信任局域網(wǎng)內(nèi)所有的人,那么就很容易實現(xiàn)在以太網(wǎng)上的ARP欺騙。對目標A 進行欺騙,A去PING主機C 卻發(fā)送到了dd-dd-dd-dd-dd-dd這個地址上。如果進行欺騙的時候,把C的MAC地址騙為dd-dd-dd-dd-dd-dd,于是A 發(fā)送到C 上的數(shù)據(jù)包都變成發(fā)送給D的了,這不正好是D能夠接收到A發(fā)送的數(shù)據(jù)包了嗎。
A 對這個變化一點都沒有意識到,但是接下來的事情就讓A 產(chǎn)生了懷疑,因為A和C 連接不上了,D對接收到A發(fā)送C的數(shù)據(jù)包可沒有轉(zhuǎn)交給C。
做“ man in the middle ”進行ARP重定向。打開D的IP轉(zhuǎn)發(fā)功能,A 發(fā)送過來的數(shù)據(jù)包,轉(zhuǎn)發(fā)給C,好比一個路由器一樣,不過,假如D發(fā)送ICMP重定向的話就中斷了整個計劃,D 直接進行整個包的修改轉(zhuǎn)發(fā),捕獲到A發(fā)送給C的數(shù)據(jù)包,全部進行修改后再轉(zhuǎn)發(fā)給C,而C接收到的數(shù)據(jù)包完全認為是從A發(fā)送來的,不過,C發(fā)送的數(shù)據(jù)包又直接傳遞給了A ,倘若再次進行對C的ARP欺騙,現(xiàn)在D就完全成為了A與C的中間橋梁了,對于A 和C 之間的通訊就可以了如指掌了。
Switch上的同樣維護著一個動態(tài)的MAC緩存表,它一般是這樣的,首先,交換機內(nèi)部有一個對應(yīng)的列表,交換機的端口對應(yīng)MAC地址表Portn<->,MAC記錄著每一個端口下面存在那些MAC-Port緩存表是動態(tài)更新的,那么讓整個Switch的端口表都改變,對Switch進行MAC地址欺騙的Flood,不斷發(fā)送大量假MAC地址的數(shù)據(jù)包,Switch就更新MAC-Port緩存,如果能通示這樣的辦法把以前正常的MAC地址和Port對應(yīng)的關(guān)系破壞了,那么Switch就會進行泛洪發(fā)送給每一個端口,讓Switch基本變成一個HUB,向所有的端口發(fā)送數(shù)據(jù)包,要進行嗅探攻擊的目的一樣能夠達到。也將造就Switch MAC-Port緩存的崩潰。
以上是通過在工作中遇到的ARP攻擊造成局域網(wǎng)中斷引發(fā)的病毒原理的分析,另外還可以通過一款名為“Anti Arp Sniffer”的軟件工具來查找感染病毒的電腦,以解決問題,這里不再做敘述。
參考文獻:
[1] Refdom.交換網(wǎng)絡(luò)中的嗅探和ARP欺騙.Http//WWW.Xfocus.Net/.友佳學院.
[2] ARP病毒解決辦法.Http//WWW.LuXinJie.Com/Net/Fhq/116097998231638.Html.
[3] 秦志光,張鳳荔.計算機病毒原理與防范[M].北京:人民郵電出版社,2007.