谷德威天津思科培訓之安全部分ARP病毒***技術分析與防禦

谷德威天津思科培訓之安全部分ARP病毒***技術分析與防禦
ARP病毒***技術分析與防禦
一、ARP Spoofing***原理分析
在局域網中,通過ARP協議來完成IP地址轉換爲第二層物理地址(即MAC地址)的。ARP協議對網絡安全具有重要的意義。通過僞造IP地址和MAC地址實現 ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞或者實現“man in the middle” 進行ARP重定向和嗅探***。
用僞造源MAC地址發送ARP響應包,對ARP高速緩存機制的***。
每個主機都用一個ARP高速緩存存放最近IP地址到MAC硬件地址之間的映射記錄。MS Windows高速緩存中的每一條記錄(條目)的生存時間一般爲60秒,起始時間從被創建時開始算起。
默認情況下,ARP從緩存中讀取IP-MAC條目,緩存中的IP-MAC條目是根據ARP響應包動態變化的。因此,只要網絡上有ARP響應包發送到本機,即會更新ARP高速緩存中的IP-MAC條目。
***者只要持續不斷的發出僞造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人***。
ARP 協議並不只在發送了ARP請求才接收ARP應答。當計算機接收到ARP應答數據包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和 MAC地址存儲在ARP緩存中。因此,B向A發送一個自己僞造的ARP應答,而這個應答中的數據爲發送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這裏被僞造了)。當A接收到B僞造的ARP應答,就會更新本地的ARP緩存(A可不知道被僞造了)。
當***源大量向局域網中發送虛假的ARP信息後,就會造成局域網中的機器ARP緩存的崩潰。
Switch 上同樣維護着一個動態的MAC緩存,它一般是這樣,首先,交換機內部有一個對應的列表,交換機的端口對應MAC地址表Port n <-> Mac記錄着每一個端口下面存在那些MAC地址,這個表開始是空的,交換機從來往數據幀中學習。因爲MAC-PORT緩存表是動態更新的,那麼讓整個 Switch的端口表都改變,對Switch進行MAC地址欺騙的Flood,不斷髮送大量假MAC地址的數據包,Switch就更新MAC-PORT緩存,如果能通過這樣的辦法把以前正常的MAC和Port對應的關係破壞了,那麼Switch就會進行泛洪發送給每一個端口,讓Switch基本變成一個 HUB,向所有的端口發送數據包,要進行嗅探***的目的一樣能夠達到。也將造成Switch MAC-PORT緩存的崩潰,如下下面交換機中日誌所示:
Internet 172.20.156.10000b.cd85.a193 ARPAVlan256Internet 172.20.156.50000b.cd85.a193 ARPAVlan256Internet 172.20.156.254 0000b.cd85.a193 ARPAVlan256Internet 172.20.156.53 0000b.cd85.a193 ARPAVlan256Internet 172.20.156.33 0000b.cd85.a193 ARPAVlan256Internet 172.20.156.130000b.cd85.a193 ARPAVlan256Internet 172.20.156.150000b.cd85.a193 ARPAVlan256Internet 172.20.156.140000b.cd85.a193 ARPAVlan256
二、ARP病毒分析
當局域網內某臺主機運行 ARP欺騙的***程序時,會欺***域網內所有主機和路由器,讓所有上網的流量必須經過病毒主機。其他用戶原來直接通過路由器上網現在轉由通過病毒主機上網,切換的時候用戶會斷一次線。切換到病毒主機上網後,如果用戶已經登陸了傳奇服務器,那麼病毒主機就會經常僞造斷線的假像,那麼用戶就得重新登錄傳奇服務器,這樣病毒主機就可以盜號了。
由於ARP欺騙的***程序發作的時候會發出大量的數據包導致局域網通訊擁塞以及其自身處理能力的限制,用戶會感覺上網速度越來越慢。當ARP欺騙的***程序停止運行時,用戶會恢復從路由器上網,切換過程中用戶會再斷一次線。
在路由器的“系統歷史記錄”中看到大量如下的信息:
MAC Chged 10.128.103.124MAC Old 00:01:6c:36:d1:7fMAC New 00:05:5d:60:c7:18
這個消息代表了用戶的MAC地址發生了變化,在ARP欺騙***開始運行的時候,局域網所有主機的MAC地址更新爲病毒主機的MAC地址(即所有信息的MAC New地址都一致爲病毒主機的MAC地址),同時在路由器的“用戶統計”中看到所有用戶的MAC地址信息都一樣。
如果是在路由器的“系統歷史記錄”中看到大量MAC Old地址都一致,則說明局域網內曾經出現過ARP欺騙(ARP欺騙的***程序停止運行時,主機在路由器上恢復其真實的MAC地址)。
BKDR_NPFECT.A病毒引起ARP欺騙之實測分析
Part1. 病毒現象
中毒機器在局域網中發送假的APR應答包進行APR欺騙, 造成其他客戶機無法獲得網關和其他客戶機的網卡真實MAC地址,導致無法上網和正常的局域網通信.
Part2. 病毒原理分析:
病毒的組件
本文研究的病毒樣本有三個組件構成:
%windows%\SYSTEM32\LOADHW.EXE(108,386 bytes) ….. ”病毒組件釋放者”
%windows%\System32\drivers\npf.sys(119,808 bytes) ….. ”發ARP欺騙包的驅動程序”
%windows%\System32\msitinit.dll (39,952 bytes)…”命令驅動程序發ARP欺騙包的控制者”
病毒運作基理:
1.LOADHW.EXE 執行時會釋放兩個組件npf.sys 和msitinit.dll .
LOADHW.EXE釋放組件後即終止運行.
注意: 病毒假冒成winPcap的驅動程序,並提供winPcap的功能. 客戶若原先裝有winPcap,
npf.sys將會被病毒文件覆蓋掉.
2.隨後msitinit.dll將npf.sys註冊(並監視)爲內核級驅動設備: "NetGroup Packet Filter Driver"
msitinit.dll 還負責發送指令來操作驅動程序npf.sys (如發送APR欺騙包, 抓包, 過濾包等)
以下從病毒代碼中提取得服務相關值:
BinaryPathName = "system32\drivers\npf.sys"StartType = SERVICE_AUTO_STARTServiceType= SERVICE_KERNEL_DRIVERDesiredAccess= SERVICE_ALL_ACCESSDisplayName = "NetGroup Packet Filter Driver"ServiceName = "Npf"
3. npf.sys 負責監護msitinit.dll. 並將LOADHW.EXE註冊爲自啓動程序:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
dwMyTest =LOADHW.EXE
注: 由於該項位於RunOnce下,該註冊表啓動項在每次執行後,即會被系統自動刪除.
Part3. 反病毒應急響應解決方案
按以下順序刪除病毒組件
1) 刪除 ”病毒組件釋放者”
%windows%\SYSTEM32\LOADHW.EXE
2) 刪除 ”發ARP欺騙包的驅動程序” (兼 “病毒守護程序”)
%windows%\System32\drivers\npf.sys
a. 在設備管理器中, 單擊”查看”-->”顯示隱藏的設備”
b. 在設備樹結構中,打開”非即插即用….”
c. 找到” NetGroup Packet Filter Driver” ,若沒找到,請先刷新設備列表
d. 右鍵點擊” NetGroup Packet Filter Driver” 菜單,並選擇”卸載”.
e. 重啓windows系統,
f.刪除%windows%\System32\drivers\npf.sys
3) 刪除 ”命令驅動程序發ARP欺騙包的控制者”
%windows%\System32\msitinit.dll
2. 刪除以下”病毒的假驅動程序”的註冊表服務項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Npf
三、定位ARP***源頭和防禦方法
1.定位ARP***源頭
主動定位方式:因爲所有的ARP***源都會有其特徵——網卡會處於混雜模式,可以通過ARPKiller這樣的工具掃描網內有哪臺機器的網卡是處於混雜模式的,從而判斷這臺機器有可能就是“元兇”。定位好機器後,再做病毒信息收集,提交給趨勢科技做分析處理。
標註:網卡可以置於一種模式叫混雜模式(promiscuous),在這種模式下工作的網卡能夠收到一切通過它的數據,而不管實際上數據的目的地址是不是它。這實際就是Sniffer工作的基本原理:讓網卡接收一切它所能接收的數據。
被動定位方式:在局域網發生ARP***時,查看交換機的動態ARP表中的內容,確定***源的MAC地址;也可以在局域居於網中部署Sniffer工具,定位ARP***源的MAC。
也可以直接Ping網關IP,完成Ping後,用ARP –a查看網關IP對應的MAC地址,此MAC地址應該爲欺騙的MAC。
使用NBTSCAN可以取到PC的真實IP地址、機器名和MAC地址,如果有”ARP***”在做怪,可以找到裝有ARP***的PC的IP、機器名和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整個192.168.16.0/24網段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 網段,即192.168.16.25-192.168.16.137。輸出結果第一列是IP地址,最後一列是MAC地址。
NBTSCAN的使用範例:
假設查找一臺MAC地址爲“000d870d585f”的病毒主機。
1)將壓縮包中的nbtscan.exe 和cygwin1.dll解壓縮放到c:下。
2)在Windows開始—運行—打開,輸入cmd(windows98輸入“command”),在出現的DOS窗口中輸入:C: btscan -r 192.168.16.1/24(這裏需要根據用戶實際網段輸入),回車。
3)通過查詢IP--MAC對應表,查出“000d870d585f”的病毒主機的IP地址爲“192.168.16.223”。
通過上述方法,我們就能夠快速的找到病毒源,確認其MAC——〉機器名和IP地址。
2.防禦方法
a.使用可防禦ARP***的三層交換機,綁定端口-MAC-IP,限制ARP流量,及時發現並自動阻斷ARP***端口,合理劃分VLAN,徹底阻止盜用IP、MAC地址,杜絕ARP的***。
b.對於經常爆發病毒的網絡,進行Internet訪問控制,限制用戶對網絡的訪問。此類ARP***程序一般都是從Internet下載到用戶終端,如果能夠加強用戶上網的訪問控制,就能極大的減少該問題的發生。
c.在發生ARP***時,及時找到病毒***源頭,並收集病毒信息,可以使用趨勢科技的SIC2.0,同時收集可疑的病毒樣本文件,一起提交到趨勢科技的TrendLabs進行分析,TrendLabs將以最快的速度提供病毒碼文件,從而可以進行ARP病毒的防禦。
更多技術資料訪問 谷德威(天津) www.gdinformation.com  www.ciscotj.com
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章