ARP病毒全析

一:下面是一位前輩的分析資料:

· ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒,該病毒一般屬於木馬(Trojan)病毒,不具備主動傳播的特性,不會自我複製。但是由於其發作的時候會向全網發送僞造的ARP數據包,干擾全網的運行,因此它的危害比一些蠕蟲還要嚴重得多。
二、ARP病毒發作時的現象
網絡掉線,但網絡連接正常,內網的部分PC機不能上網,或者所有電腦不能上網,無法打開網頁或打開網頁慢,局域網時斷時續並且網速較慢等。
三、ARP病毒原理
3.1 網絡模型簡介
衆所周知,按照OSI (Open Systems Interconnection Reference Model 開放系統互聯參考模型) 的觀點,可將網絡系統劃分爲7層結構,每一個層次上運行着不同的協議和服務,並且上下層之間互相配合,完成網絡數據交換的功能,如圖1:



圖1 OSI網絡體系模型
然而,OSI的模型僅僅是一個參考模型,並不是實際網絡中應用的模型。實際上應用最廣泛的商用網絡模型即TCP/IP體系模型,將網絡劃分爲四層,每一個層次上也運行着不同的協議和服務,如圖2。

圖2 TCP/IP四層體系模型及其配套協議
上圖中,藍色字體表示該層的名稱,綠色字表示運行在該層上的協議。由圖2可見,我們即將要討論的ARP協議,就是工作在網際層上的協議。

3.2 ARP協議簡介

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

ARP全稱爲Address Resolution Protocol,地址解析協議。所謂“地址解析”就是主機在發送數據包前將目標主機IP地址轉換成目標主機MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。這時就涉及到一個問題,一個局域網中的電腦少則幾臺,多則上百臺,這麼多的電腦之間,如何能準確的記住對方電腦網卡的MAC地址,以便數據的發送呢?這就涉及到了另外一個概念,ARP緩存表。在局域網的任何一臺主機中,都有一個ARP緩存表,該表中保存這網絡中各個電腦的IP地址和MAC地址的對照關係。當這臺主機向同局域網中另外的主機發送數據的時候,會根據ARP緩存表裏的對應關係進行發送。

下面,我們用一個模擬的局域網環境,來說明ARP欺騙的過程。

3.3 ARP欺騙過程

假設一個只有三臺電腦組成的局域網,該局域網由交換機(Switch)連接。其中一個電腦名叫A,代表攻擊方;一臺電腦叫S,代表源主機,即發送數據的電腦;令一臺電腦名叫D,代表目的主機,即接收數據的電腦。這三臺電腦的IP地址分別爲192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分別爲MAC_A,MAC_S,MAC_D。其網絡拓撲環境如圖 3。

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

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

如果A這臺電腦再做的“過分”一些,它不冒充D電腦,而是冒充網關,那後果會怎麼樣呢?我們大家都知道,如果一個局域網中的電腦要連接外網,也就是登陸互聯網的時候,都要經過局域網中的網關轉發一下,所有收發的數據都要先經過網關,再由網關發向互聯網。在局域網中,網關的IP地址一般爲192.168.0.1。如果A這臺電腦向全網不停的發送ARP欺騙廣播,大聲說:“我的IP地址是 192.168.0.1,我的硬件地址是MAC_A”這時局域網中的其它電腦並沒有察覺到什麼,因爲局域網通信的前提條件是信任任何電腦發送的ARP廣播包。這樣局域網中的其它電腦都會更新自身的ARP緩存表,記錄下192.168.0.1-MAC_A這樣的記錄,這樣,當它們發送給網關,也就是IP地址爲192.168.0.1這臺電腦的數據,結果都會發送到MAC_A這臺電腦中!這樣,A電腦就將會監聽整個局域網發送給互聯網的數據包!

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

四、ARP病毒新的表現形式

由於現在的網絡遊戲數據包在發送過程中,均已採用了強悍的加密算法,因此這類ARP 病毒在解密數據包的時候遇到了很大的難度。現在又新出現了一種ARP病毒,與以前的一樣的是,該類ARP病毒也是向全網發送僞造的ARP欺騙廣播,自身僞裝成網關。但區別是,它着重的不是對網絡遊戲數據包的解密,而是對於HTTP請求訪問的修改。

HTTP是應用層的協議,主要是用於WEB網頁訪問。還是以上面的局域網環境舉例,如果局域網中一臺電腦S要請求某個網站頁面,如想請求www.sina.com.cn這個網頁,這臺電腦會先向網關發送HTTP請求,說:“我想登陸 www.sina.com.cn網頁,請你將這個網頁下載下來,併發送給我。”這樣,網關就會將www.sina.com.cn頁面下載下來,併發送給S 電腦。這時,如果A這臺電腦通過向全網發送僞造的ARP欺騙廣播,自身僞裝成網關,成爲一臺ARP中毒電腦的話,這樣當S電腦請求WEB網頁時,A電腦先是“好心好意”地將這個頁面下載下來,然後發送給S電腦,但是它在返回給S電腦時,會向其中插入惡意網址連接!該惡意網址連接會利用MS06-014和 MS07-017等多種系統漏洞,向S電腦種植木馬病毒!同樣,如果D電腦也是請求WEB頁面訪問,A電腦同樣也會給D電腦返回帶毒的網頁,這樣,如果一個局域網中存在這樣的ARP病毒電腦的話,頃刻間,整個網段的電腦將會全部中毒!淪爲黑客手中的殭屍電腦!

案例:

某企業用戶反映,其內部局域網用戶無論訪問那個網站,KV殺毒軟件均報病毒:Exploit.ANIfile.o 。

在經過對該局域網分析之後,發現該局域網中有ARP病毒電腦導致其它電腦訪問網頁時,返回的網頁帶毒,並且該帶毒網頁通過MS06-014和MS07-017漏洞給電腦植入一個木馬下載器,而該木馬下載器又會下載10多個惡性網遊木馬,可以盜取包括魔獸世界,傳奇世界,征途,夢幻西遊,邊鋒遊戲在內的多款網絡遊戲的帳號和密碼,對網絡遊戲玩家的遊戲裝備造成了極大的損失。被ARP病毒電腦篡改的網頁如圖4。


圖4 被ARP病毒插入的惡意網址連接

從圖4中可以看出,局域網中存在這樣的ARP病毒電腦之後,其它客戶機無論訪問什麼網頁,當返回該網頁時,都會被插入一條惡意網址連接,如果用戶沒有打過相應的系統補丁,就會感染木馬病毒。
五、ARP病毒電腦的定位方法

下面,又有了一個新的課題擺在我們面前:如何能夠快速檢測定位出局域網中的ARP病毒電腦?

面對着局域網中成百臺電腦,一個一個地檢測顯然不是好辦法。其實我們只要利用ARP 病毒的基本原理:發送僞造的ARP欺騙廣播,中毒電腦自身僞裝成網關的特性,就可以快速鎖定中毒電腦。可以設想用程序來實現以下功能:在網絡正常的時候,牢牢記住正確網關的IP地址和MAC地址,並且實時監控着來自全網的ARP數據包,當發現有某個ARP數據包廣播,其IP地址是正確網關的IP地址,但是其MAC地址竟然是其它電腦的MAC地址的時候,這時,無疑是發生了ARP欺騙。對此可疑MAC地址報警,在根據網絡正常時候的IP-MAC地址對照表查詢該電腦,定位出其IP地址,這樣就定位出中毒電腦了。下面詳細說一下幾種不同的檢測ARP中毒電腦的方法。

5.1 命令行法

這種方法比較簡便,不利用第三方工具,利用系統自帶的ARP命令即可完成。上文已經說過,當局域網中發生ARP欺騙的時候,ARP病毒電腦會向全網不停地發送ARP欺騙廣播,這時局域網中的其它電腦就會動態更新自身的ARP緩存表,將網關的MAC地址記錄成ARP病毒電腦的MAC地址,這時候我們只要在其它受影響的電腦中查詢一下當前網關的MAC地址,就知道中毒電腦的MAC地址了,查詢命令爲 ARP -a,需要在cmd命令提示行下輸入。輸入後的返回信息如下:

Internet Address Physical Address Type192.168.0.1 00-50-56-e6-49-56 dynamic
這時,由於這個電腦的ARP表是錯誤的記錄,因此,該MAC地址不是真正網關的MAC地址,而是中毒電腦的MAC地址!這時,再根據網絡正常時,全網的IP—MAC地址對照表,查找中毒電腦的IP地址就可以了。由此可見,在網絡正常的時候,保存一個全網電腦的IP—MAC地址對照表是多麼的重要。可以使用nbtscan 工具掃描全網段的IP地址和MAC地址,保存下來,以備後用。

5.2 工具軟件法

現在網上有很多ARP病毒定位工具,其中做得較好的是Anti ARP Sniffer(現在已更名爲ARP防火牆),下面我就演示一下使用Anti ARP Sniffer這個工具軟件來定位ARP中毒電腦。

首先打開Anti ARP Sniffer 軟件,輸入網關的IP地址之後,再點擊紅色框內的“枚舉MAC”按鈕,即可獲得正確網關的MAC地址,如圖5。


圖5 輸入網關IP地址後,枚舉MAC
接着點擊“自動保護”按鈕,即可保護當前網卡與網關的正常通信。如圖6。

圖6 點擊自動保護按鈕
當局域網中存在ARP欺騙時,該數據包會被Anti ARP Sniffer記錄,該軟件會以氣泡的形式報警。如圖7。

圖7 Anti ARP Sniffer 的攔截記錄
這時,我們再根據欺騙機的MAC地址,對比查找全網的IP-MAC地址對照表,即可快速定位出中毒電腦。
5.3 Sniffer 抓包嗅探法
當局域網中有ARP病毒欺騙時,往往伴隨着大量的ARP欺騙廣播數據包,這時,流量檢測機制應該能夠很好的檢測出網絡的異常舉動,此時Ethereal 這樣的抓包工具就能派上用場。如圖8。

圖8 用Ethereal抓包工具定位出ARP中毒電腦
從圖8中的紅色框內的信息可以看出,192.168.0.109 這臺電腦正向全網發送大量的ARP廣播包,一般的講,局域網中有電腦發送ARP廣播包的情況是存在的,但是如果不停的大量發送,就很可疑了。而這臺192.168.0.109 電腦正是一個ARP中毒電腦。
以上三種方法有時需要結合使用,互相印證,這樣可以快速準確的將ARP中毒電腦定位出來。

七、ARP病毒的網絡免疫措施

由於ARP病毒的種種網絡特性,可以採用一些技術手段進行網絡中ARP病毒欺騙數據包免疫。即便網絡中有ARP中毒電腦,在發送欺騙的ARP數據包,其它電腦也不會修改自身的ARP緩存表,數據包始終發送給正確的網關,用的比較多的辦法是“雙向綁定法” 。

雙向綁定法,顧名思義,就是要在兩端綁定IP-MAC地址,其中一端是在路由器中,把所有PC的IP-MAC輸入到一個靜態表中,這叫路由器IP-MAC綁定。令一端是局域網中的每個客戶機,在客戶端設置網關的靜態ARP信息,這叫PC 機IP-MAC綁定。客戶機中的設置方法如下:

新建記事本,輸入如下命令:
arp -darp -s 192.168.0.1 00-e0-4c-8c-9a-47
其中,“arp –d” 命令是清空當前的ARP緩存表,而“arp -s 192.168.0.1 00-e0-4c-8c-9a-47 ”命令則是將正確網關的IP地址和MAC地址綁定起來,將這個批處理文件放到系統的啓動目錄中,可以實現每次開機自運行,這一步叫做“固化arp表” 。

“雙向綁定法”一般在網吧裏面應用的居多。

除此之外,很多交換機和路由器廠商也推出了各自的防禦ARP病毒的軟硬產品,如:華爲的H3C AR 18-6X 系列全千兆以太網路由器就可以實現局域網中的ARP病毒免疫,該路由器提供MAC和IP地址綁定功能,可以根據用戶的配置,在特定的IP地址和MAC地址之間形成關聯關係。對於聲稱從這個IP地址發送的報文,如果其MAC地址不是指定關係對中的地址,路由器將予以丟棄,是避免IP地址假冒攻擊的一種方式。
八、ARP病毒KV解決方案
針對ARP病毒日益猖獗的情況,江民科技推出了整體解決方案:
1.KV殺毒軟件每週7天不間斷升級病毒庫,單機版網絡版同步升級,實時攔截來自網絡上的各種ARP病毒。
2.針對局域網用戶,建議統一部署KV網絡版殺毒軟件,KV網絡版具有全網統一升級病毒庫,統一全網殺毒的強大功能,可以徹底查殺來自局域網中的ARP病毒。
3.“KV未知病毒掃描”功能可以識別出絕大多數ARP病毒,KV未知病毒掃描程序採用獨特的行爲判定技術,可以徹底檢測出本機中已知和未知的ARP病毒,協助網絡管理員快速清除ARP病毒。
4.特針對企業用戶,提供“ARP病毒應急響應服務” ,江民科技網絡安全工程師可以上門處理企業用戶內網中的ARP病毒,確保快速恢復企業網絡的數據通訊安全。
5.KV新版防火牆特增加了ARP病毒防禦功能,可以攔截來自局域網中的ARP欺騙數據包,保護本機聯網安全。設置界面如圖11。

圖11 KV新版防火牆增加了ARP攻擊防護功能
KV新版防火牆增加了ARP攻擊防護功能,該功能使用方法也很簡單,安裝完KV防火牆之後,點擊“設置”按鈕,然後勾選“啓用攻擊防護功能” ,再點擊“自動檢測本機網絡設置” ,程序就會自動獲得本機和網關的IP地址和MAC地址,然後點擊確定即可。KV防火牆就會實時檢測來自網絡中的ARP數據包,發現有異常的數據包欺騙,就會予以攔截,保障本機網絡通信安全。
九、關於ARP病毒的網絡安全建議
1.在網絡正常時候保存好全網的IP—MAC地址對照表,這樣在查找ARP中毒電腦時很方便。
2.都全網的電腦都打上MS06-014和MS07-017這兩個補丁,包括所有的客戶端和服務器,以免感染網頁木馬。
3.部署網絡流量檢測設備,時刻監視全網的ARP廣播包,查看其MAC地址是否正確。
4.做好IP—MAC地址的綁定工作,對於從這個IP地址發送的報文,如果其MAC地址不是指定關係對中的地址,予以丟棄。
5.部署網絡版的殺毒軟件,定期升級病毒庫,定期全網殺毒。

二:處理方法

上面已經提到了相關的解決方法,但是在實際中我發現這個病毒並沒有什麼套路。手動殺毒對一般電腦用戶的話存在一定的難度。下面我主要列出一些工具可以很方便的解決問題。

a.sreng。利用它刪除掉沒有經過微軟認證的驅動和服務。驅動名稱大概爲ncp.sys(注:這個也不是固定的)

b.AntiARP.這個軟件是防止arp欺騙的最好的軟件。

c.360專殺(http://dl.360safe.com/kill_arp.exe

d.瑞星的名爲:MagistrKiller.exe專殺。下載地址不提供了。

e:趨勢將此病毒叫做:克鄰大盜。也提供了相關的工具,但是最近網站上不提供下載了。NND不知道搞什麼。

可以baidu的到。本人用了一個樣本它也沒有查到。對其效果不敢恭維。不過還是可以那來試試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章