摘要:網絡病毒無處不在,防不勝防,ARP病毒具有很大危害性,它發送大量的偽造數據包,占用網絡帶寬,通過攻擊網關MAC地址,會造成全網段計算機無法正常上網,它還通過截取數據包方式,盜取用戶帳戶和密碼等信息。要徹底分析ARP病毒,必須從ARP協議和病毒工作原理入手,分析查找病毒源。Sniffer Portable軟件作為流行的抓包工具,功能強大,幾乎所有網絡異常情況,都可以通過它得以及時發現,它支持OSI七層協議,能在各種網絡拓撲環境中抓取數據包并進行解碼,直觀易懂,是網絡技術人員的必備工具之一。
關鍵詞:Sniffer;病毒;ARP; MAC
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)09-11600-03
How to Analyze the Attack of ARP Virus Using Sniffer Portable
YUAN Zi-hai
(Anhui Electric Power Transmission Transformation Co., Hefei 230022, China)
Abstract: Network virus exist in network everywhere, it’s impossible to defend effectively. ARP virus has huge harm to network by sending a large number of spurious packets, which consume network bandwidth. They attack the MAC address of LAN gateway and result in all computers in the LAN can’t surf the net. They also steal account and password by intercept the traffic packets. To thoroughly analyze the ARP virus and find out the origin, administrators have to start with the ARP protocol and the work principle of them. Sniffer Portable software is a popular tool of capturing packets, it has powerful function, and can solve almost all the abnormal network issues. It supports the OSI seven layer protocols, capture packets and analyze it in various network environments. It has friendly interface and become a necessary tool of network administrators.
Key words: Sniffer; Virus; ARP; MAC
1 引言
ARP病毒也叫ARP地址欺騙類病毒,它發作時會向全網發送偽造的ARP應答數據包,通常會造成網絡掉線、但網絡物理連接正常,局域網內部分或全部計算機不能上網,或者網絡連接時斷時續并且網速明顯變慢等現象,嚴重影響到企業局域網的安全運行。Sniffer Portable軟件作為流行的抓包工具,功能強大,幾乎所有網絡異常情況,都可以通過它得以及時發現,它支持OSI七層協議,能在各種網絡拓撲環境中抓取數據包并進行解碼,是分析ARP病毒攻擊的優秀工具之一。
2 ARP協議及病毒攻擊原理
要了解ARP病毒的攻擊原理,我們先來了解一下ARP協議。
2.1 ARP協議工作原理
ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。其功能是實現局域網中從IP地址到MAC地址的轉換。在局域網中,網絡中實際傳輸的是“幀”,幀里面有源和目標主機的MAC地址,幀在網絡中就是靠這個MAC地址進行目標識別和傳輸的。ARP協議通過發送請求廣播包,查詢目標設備的MAC地址,得到應答后將MAC地址插入幀中,就可以在網絡中進行傳輸了。
每臺安裝有TCP/IP協議的計算機里都有一個ARP緩存表,表里的IP地址與MAC地址一一對應,如下表所示:

我們以主機A(192.168.1.1)向主機B(192.168.1.2)發送數據為例。發送數據時,主機A會在自己的ARP緩存表中查找是否有主機B的IP-MAC條目。如果找到,直接把B對應的MAC地址寫入幀中發送就可以了,否則,A就會在網絡上發送一個ARP請求廣播包,目標MAC地址是“FF-FF-FF-FF-FF-FF”,這表示向同一網段內的所有主機發出這樣的詢問:“嗨!192.168.1.2,你的MAC地址是什么?”。按照ARP協議實現機制,網絡上其他主機并不響應此ARP詢問,只有主機B接收到這個請求后,才向主機A做出這樣的回應:“我是192.168.1.2,我的MAC地址是bb-bb-bb-bb-bb-bb”。這樣,主機A就知道了主機B的MAC地址。A同時將B的MAC地址加入到自己的ARP緩存表中,下次再向主機B發送信息時,直接從ARP緩存表里查找就可以了。
ARP緩存存放的是最近使用的IP地址到MAC地址之間的映射記錄。Windows ARP緩存表中每一條記錄的生存時間默認為60秒。每次發送數據包,ARP協議先從緩存中查找IP-MAC條目,找到就立刻使用,找不到就發送ARP請求廣播包。緩存中的動態IP-MAC條目是根據ARP響應包而動態更新的。ARP協議在發送和沒有發送ARP請求的情況下都能接收ARP應答,只要網絡上有ARP應答包發送到本機,本機就會立即更新緩存中的相應動態IP-MAC條目。
2.2 ARP病毒攻擊原理
如果攻擊者X(MAC地址為xx-xx-xx-xx-xx-xx)向A發送一個偽造的ARP應答包,這個應答中的數據為“192.168.1.2 xx-xx-xx-xx-xx-xx”,即告訴A:B的MAC地址為xx-xx-xx-xx-xx-xx(實際是X自己的MAC地址),這樣A下次發送數據包給B就使用X的MAC地址,結果數據包實際被發送到攻擊者X,這樣X就竊取了A的數據包。
如果主機X持續不斷地向局域網中發送大量虛假的ARP應答包后,就會造成局域網中的機器ARP緩存的崩潰。如果B為局域網網關,那么此時計算機A就不能通過網關上網了。一般此類病毒通過間歇式的發送偽造包,當偽造ARP條目在緩存中老化刪除后,在下一輪攻擊前,被攻擊計算機所有網絡連接又能恢復正常,這就是網絡連接時斷時續的原因。
3 使用SnifferPortableV4.8分析
Sniffer Portable通過提供可以快速識別并解決網絡性能問題的便攜式分析解決方案,來幫助網絡技術人員解決所有LAN和WAN拓撲結構中遇到的困難問題,范圍可覆蓋從10/100M/1000M的以太網到異步傳輸模式(ATM)以及802.11無線網絡等幾乎所有網絡拓撲結構。它可以運行在普通計算機上,使用450多種協議解碼器和強大的專家分析功能,支持OSI各個層次的協議,它甚至可以自動分析多拓撲、多協議網絡。Sniffer通過抓取網絡數據包,再對內容進行解碼,以簡單明了的語言解釋各個幀的內容。它的實時網絡分析有助于迅速檢測和解決網絡故障與性能問題,已成為網絡技術人員的必備工具。Sniffer Portable V4.8可以從Network General官方網站免費下載并試用15天。
使用Sniffer分析ARP病毒攻擊步驟如下:
3.1 配置交換機
例如,我們需要對來自交換機端口A的所有VLan數據包進行分析,以華為S5516三層交換機為例,步驟如下:
(1)將安裝有Sniffer軟件的計算機接入交換機端口B,并設置端口B為trunk模式,這樣可以允許所有VLan數據包通過,此處A端口標記為g1/1, B端口標記為g2/1。
[S5516]interface g2/1//進入端口B配置模式
[S5516-GigabitEthernet2/1]port link-type trunk//將端口設置為trunk模式
[S5516-GigabitEthernet2/1]port trunk permit vlan all//允許所有VLan數據包通過
Please wait... Done.
[S5516-GigabitEthernet2/1]
(2)將待分析的交換機端口A的所有數據包鏡像到端口B。
[S5516]mirror 1 inbound g1/1 mirrored-to g2/1//將進入A的數據包映射到B
[S5516]mirror 2 outbound g1/1 mirrored-to g2/1 //將從A出去的數據包映射到B
3.2 定義Sniffer抓包過濾規則
(1)打開Sniffer Portable, 新建一個配置文件。依次點擊“Capture-Define Filter-profiles-new”,輸入配置名稱,如“FindArp”。依次點擊“Ok-Done”,完成新建配置文件。
(2)定義過濾規則。選中上面新建的配置名稱FindArp,選擇Address選項卡,從左側選擇Hardware(抓取ARP數據包必須選擇此選項),將any分別拖放到station1和station2中,如圖1所示:

圖中定義含義為:抓取任意兩個硬件地址(MAC地址)之間的通訊數據包。
(3)選擇Advanced標簽,在列表中選中ARP,只抓取ARP協議數據包,缺省為抓取所有協議數據包。點“確定”退出。
3.3 抓包
(1)在軟件主頁面中,選擇配置文件FindArp,點擊“Capture-Start”開始抓包,根據網絡流量大小,抓取幾分鐘,點擊“Capture-Stop And Display”停止,并找到系統剛剛保存的數據文件,查看抓取到的數據包。
(2)從軟件窗口最下面選擇Decode標簽,查看解碼結果。
下面以IP地址為10.138.208.5的計算機通過ARP協議尋找IP地址為10.138.208.1的計算機的MAC地址為例予以說明,見圖2。

圖中所示為Sniffer對捕捉到的ARP/RARP幀進行解碼的結果。其中“Opcode 1(ARP request)”表明這是一個ARP請求幀,即發送方IP地址為10.138.208.5、MAC為000F1FA5D8A8的計算機,請求目標IP地址為10.138.208.1的計算機的MAC地址,在請求中將目標MAC地址設為全0。
圖3所示為10.138.208.1的應答ARP數據包。

圖中“Opcode 2 (ARP reply)”表明這是一個ARP應答幀,即發送方計算機IP地址為10.138.208.1,MAC地址為0011258D4AF9,目標地址為上面剛剛發送請求的10.138.208.5計算機。
經過這種“請求-應答”方式,計算機10.138.208.5就查詢到了10.138.208.1的MAC地址。
3.4 異常分析
若計算機A和B(B也可以是網關)出現通訊異常、網絡時斷時續故障,可以從A本機運行命令“arp–a”,記下ARP緩存中B的MAC地址,再從B本機運行“ipconfig/all”命令,記下B的真實MAC地址,如果這兩個MAC地址不同,肯定受到了ARP病毒攻擊。此時,打開Sniffer軟件的Display菜單,選擇Find Frame在Detail Text中搜索A中偽造的MAC地址,找到ARP應答包中發送方具有該偽造MAC地址的IP地址。若局域網采用固定IP地址分配,根據IP地址記錄表,就能找到對應計算機的使用人員;若采用動態分配IP地址,立即從交換機中逐級查找此偽造MAC地址所在端口,就能輕松找到病毒源。
4 其他防范措施
(1)當出現ARP病毒攻擊時,可以臨時采取靜態IP-MAC綁定以緩解燃眉之急,在命令提示符下輸入諸如:
C:\\>arp-s 192.168.1.1 aa-aa-aa-aa-aa-aa
其中192.168.1.1為要和對方通訊的主機IP地址,aa-aa-aa-aa-aa-aa為對方真實MAC地址。靜態綁定后ARP協議將不再根據ARP應答包修改緩存中192.168.1.1的MAC地址,直到計算機重啟或手動取消靜態綁定為止。
(2)做好IP-MAC地址的綁定工作,在交換機和客戶端都要綁定,這是可以使局域網免疫ARP病毒攻擊的好辦法。
(3)在網絡正常時保存好全網的IP-MAC地址對照表,這樣在查找ARP中毒計算機時很方便。
(4)部署網絡流量檢測設備,時刻監視全網的ARP廣播包,查看其MAC地址是否正確。
(5)及時更新殺毒軟件病毒庫,并開啟實時監控功能,定期全網殺毒。
(6)養成良好的網絡使用習慣,有效防范各種病毒。
5 結束語
網絡病毒無處不在,防不勝防,ARP病毒具有很大危害性,它發送大量的偽造數據包,占用網絡帶寬,通過攻擊網關,會造成全網段計算機無法正常上網,它還通過截取數據包的方式,盜取用戶帳戶和密碼等信息。要仔細分析ARP病毒,必須從ARP協議和病毒工作原理入手進行分析。Sniffer Portable作為流行的抓包工具,功能強大,幾乎所有網絡異常情況,都可以通過它得以及時發現,文中通過Siffer對ARP協議數據包進行詳盡解碼分析,短時間內就能很快地發現病毒源。熟練掌握Sniffer分析方法是網絡技術人員的必備技能之一。
參考文獻:
[1] 范建華 譯. TCP/IP詳解 卷1:協議[M]. 北京:機械工業出版社, 2000.86-208.
[2] Douglas E Comer. Internetworking with TCP/IP. Vol 1[M]. 5th Edition. USA:Prentice Hall, 2005.25-237.
[3] 秦志光,張鳳荔. 計算機病毒原理與防范[M]. 北京:人民郵電出版社,2007.8-139.