ARP病毒攻擊技術區分與防備
發表時間:2023-07-16 來源:明輝站整理相關軟件相關文章人氣:
[摘要]一、ARP Spoofing攻擊原理分析在局域網中, 通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)的。 ARP協議對網絡安全具有重要的意義。 通過偽造IP地址和MAC地址實現...
一、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 ARPAVlan256 Internet 172.20.156.50000b.cd85.a193 ARPAVlan256 Internet 172.20.156.254 0000b.cd85.a193 ARPAVlan256 Internet 172.20.156.53 0000b.cd85.a193 ARPAVlan256 Internet 172.20.156.33 0000b.cd85.a193 ARPAVlan256 Internet 172.20.156.130000b.cd85.a193 ARPAVlan256 Internet 172.20.156.150000b.cd85.a193 ARPAVlan256 Internet 172.20.156.140000b.cd85.a193 ARPAVlan256
|
二、ARP病毒分析
當局域網內某臺主機運行ARP欺騙的木馬程序時, 會欺騙局域網內所有主機和路由器, 讓所有上網的流量必須經過病毒主機。 其他用戶原來直接通過路由器上網現在轉由通過病毒主機上網, 切換的時候用戶會斷一次線。 切換到病毒主機上網后, 如果用戶已經登陸了傳奇服務器, 那么病毒主機就會經常偽造斷線的假像, 那么用戶就得重新登錄傳奇服務器, 這樣病毒主機就可以盜號了。
由于ARP欺騙的木馬程序發作的時候會發出大量的數據包導致局域網通訊擁塞以及其自身處理能力的限制, 用戶會感覺上網速度越來越慢。 當ARP欺騙的木馬程序停止運行時, 用戶會恢復從路由器上網, 切換過程中用戶會再斷一次線。
在路由器的“系統歷史記錄”中看到大量如下的信息:
MAC Chged 10.128.103.124
MAC Old 00:01:6c:36:d1:7f
MAC 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_START ServiceType= SERVICE_KERNEL_DRIVER DesiredAccess= SERVICE_ALL_ACCESS DisplayName = "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病毒的防御。
上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。