蠕蟲病毒危害極大,在校園網中只要有一臺計算機感染了蠕蟲病毒,就有可能引起網絡阻塞,嚴重的還會導致網絡癱瘓。對于蠕蟲病毒的檢測,普通用戶通常通過更新殺毒軟件的病毒庫并查殺病毒來判斷電腦是否感染了蠕蟲病毒。但很多時候,感染蠕蟲病毒后普通用戶根本沒有察覺或是察覺后也不一定想到是病毒的原因。這樣,豈不是要網絡管理員逐一去更新每臺計算機的病毒庫并查殺病毒?這顯然是不現實的!況且即使更新了殺毒軟件的病毒庫,也未必一定能檢測出最新的蠕蟲病毒。
我們可以使用一款網絡協議分析工具——Wireshark來找出校園網內感染了蠕蟲病毒的計算機。Wireshark的前身是Ethereal,它非常小巧,免費而且開源。接下來介紹一下用Wireshark查找病毒的過程。
一、Wireshark的下載及安裝
去官方網站下載一個Wireshark安裝包(目前版本為0.99.3,下載地址:http://www.wireshark.org/download/win32/wireshark-setup-0.99.3.exe),在校園網中的一臺計算機上安裝好,安裝過程非常簡單,不再贅述。
二、使用Wireshark截取數據包
運行Wireshark,單擊菜單“Capture”下的“Start”命令,即開始截取網絡中的數據包了(如圖1)。在截取過程中,通過截取界面可以看到所截包的類型,了解當前網絡中各類數據包所占比例,通過這個比例基本上可以判斷當前網絡是否運轉正常。比如,如果發現ARP協議類型的數據包比例過大(40%以上,甚至60~70%),那說明校園網中極可能已經有計算機感染蠕蟲病毒了。

圖1
注意:如果安裝Wireshark的計算機不止一個網絡接口,則無法直接使用“Capture”菜單下的“Start”命令,而應執行菜單“Capture”下的“Interfaces…”命令,在彈出的“Capture Interfaces”對話框(如圖2)中單擊相應網絡接口旁的“Capture”按鈕才能截取數據包。

圖2
要停止截取數據包時,單擊圖1所示界面中的“Stop”即可,此時所截數據包的詳細信息就會顯示在面板中,接下來就可以對數據包進行分析了。
三、分析數據,找出病毒的藏身之處
Wireshark窗口被分成三個部分:最上面為數據包列表,用來顯示截獲的每個數據包的詳細信息;中間為協議樹,用來顯示選定的數據包所屬的協議信息;最下邊是以十六進制形式表示的數據包內容,用來顯示數據包在物理層上傳輸時的最終形式。
使用Wireshark可以很方便地對截獲的數據包進行分析,包括該數據包的源地址、目的地址、所屬協議等。圖3是在Wireshark中對一個TCP數據包進行分析時的情形。可以看出,當前選中數據包的源地址為172.20.3.8,目的地址為172.20.3.3,該數據包所屬的協議是TCP協議,同時從使用的3389端口可以看出172.20.3.8正使用遠程桌面連接訪問172.20.3.3。

圖3
面對Wireshark給出的大量數據,我們常常不知如何下手,此時化繁為簡就顯得尤為重要了。我們可以借助Filter過濾器來過濾出我們感興趣的數據包。如果要查看ARP協議的包,可以在Wireshark窗口的左下角的Filter中輸入arp,回車,Wireshark就會只顯示ARP協議的包,接下來我們就可以仔細分析過濾出來的包而不會被其他無關的數據干擾了。
在局域網中,實際傳輸的是“幀”,幀里面有目標主機的MAC地址。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
蠕蟲病毒在傳播過程中首先會隨機選取某一段IP地址(通常是染毒計算機所在IP地址段),然后通過發送ARP數據包來查詢網內計算機的MAC地址。因此,如果校園網內有計算機感染蠕蟲病毒,使用Wireshark會發現:
(1)病毒傳播時,它會發送大量的ARP數據包,在圖1所示的截取數據包界面會看到ARP類型的包比例較大,ARP包的數量瞬間會增加幾十甚至幾百倍。
(2)查看詳細的數據會發現ARP包非常有規律,染毒計算機會對自身所在IP段按順序逐一進行ARP查詢。圖4就是一臺IP為172.20.3.89的計算機在染毒后Wireshark獲取到的詳細數據。

圖4
一旦鎖定了染毒計算機的IP,接下來的工作就非常簡單了。需要注意的是有時候服務器尤其是DNS服務器會發送較多的ARP查詢數據,但一般不是向網內計算機逐一發送的,不滿足上面的第二個條件,因此可以排除染毒的可能。圖5中的172.20.3.1是一臺提供DNS服務的服務器,它沒有感染病毒。

圖5
此外,通過對Wireshark截取的數據進行分析,還可以查出校園網中哪些用戶在占用大量的帶寬玩網絡游戲。截取數據包后在Filter中輸入udp,回車,查看所有UDP協議數據包。如果發現某個計算機向固定的IP的某個UDP端口連續發送數據包,則用戶很可能在玩網絡游戲或運行著類似的程序。
(作者單位:浙江紹興市第一中學信息處