經(jīng)常有朋友提到網(wǎng)絡中經(jīng)常掉線,出現(xiàn)這種情況我們一般想到的是網(wǎng)絡收到APR病毒攻擊了,今天給大家介紹下ARP病毒的攻擊原理和解決辦法。
【故障原因】
局域網(wǎng)內(nèi)有人使用ARP欺騙的木馬程序(比如:傳奇盜號的軟件,某些傳奇外掛中也被惡意加載了此程序)。
【故障原理】
要了解故障原理,我們先來了解一下ARP協(xié)議。 在局域網(wǎng)中,通過ARP協(xié)議來完成IP地址轉(zhuǎn)換為第二層物理地址(即MAC地址)的。ARP協(xié)議對網(wǎng)絡安全具有重要的意義。通過偽造IP地址和MAC地址實現(xiàn)ARP欺騙,能夠在網(wǎng)絡中產(chǎn)生大量的ARP通信量使網(wǎng)絡阻塞。 ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。在局域網(wǎng)中,網(wǎng)絡中實際傳輸?shù)氖?#8220;幀”,幀里面是有目標主機的MAC地址的。在以太網(wǎng)中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。 每臺安裝有TCP/IP協(xié)議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的,如下表所示路由器設置。
主機 IP地址 MAC地址 A 192.168.16.1 aa-aa-aa-aa-aa-aa B 192.168.16.2 bb-bb-bb-bb-bb-bb C 192.168.16.3 cc-cc-cc-cc-cc-cc D 192.168.16.4 dd-dd-dd-dd-dd-dd
我們以主機A(192.168.16.1)向主機B(192.168.16.2)發(fā)送數(shù)據(jù)為例。當發(fā)送數(shù)據(jù)時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網(wǎng)絡上發(fā)送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機發(fā)出這樣的詢問:“192.168.16.2的MAC地址是什么?”網(wǎng)絡上其他主機并不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。這樣,主機A就知道了主機B的MAC地址,它就可以向主機B發(fā)送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機制,在一段時間內(nèi)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度路由器設置。 從上面可以看出,ARP協(xié)議的基礎就是信任局域網(wǎng)內(nèi)所有的人,那么就很容易實現(xiàn)在以太網(wǎng)上的ARP欺騙。對目標A進行欺騙,A去Ping主機C卻發(fā)送到了DD-DD-DD-DD-DD-DD這個地址上。如果進行欺騙的時候,把C的MAC地址騙為DD-DD-DD-DD-DD-DD,于是A發(fā)送到C上的數(shù)據(jù)包都變成發(fā)送給D的了。這不正好是D能夠接收到A發(fā)送的數(shù)據(jù)包了么,嗅探成功。 A對這個變化一點都沒有意識到,但是接下來的事情就讓A產(chǎn)生了懷疑。因為A和C連接不上了。D對接收到A發(fā)送給C的數(shù)據(jù)包可沒有轉(zhuǎn)交給C。 做“man in the middle”,進行ARP重定向。打開D的IP轉(zhuǎn)發(fā)功能,A發(fā)送過來的數(shù)據(jù)包,轉(zhuǎn)發(fā)給C,好比一個路由器一樣。不過,假如D發(fā)送ICMP重定向的話就中斷了整個計劃。 D直接進行整個包的修改轉(zhuǎn)發(fā),捕獲到A發(fā)送給C的數(shù)據(jù)包,全部進行修改后再轉(zhuǎn)發(fā)給C,而C接收到的數(shù)據(jù)包完全認為是從A發(fā)送來的。不過,C發(fā)送的數(shù)據(jù)包又直接傳遞給A,倘若再次進行對C的ARP欺騙?,F(xiàn)在D就完全成為A與C的中間橋梁了,對于A和C之間的通訊就可以了如指掌了。
【故障現(xiàn)象】
當局域網(wǎng)內(nèi)某臺主機運行ARP欺騙的木馬程序時,會欺騙局域網(wǎng)內(nèi)所有主機和路由器,讓所有上網(wǎng)的流量必須經(jīng)過病毒主機。其他用戶原來直接通過路由器上網(wǎng)現(xiàn)在轉(zhuǎn)由通過病毒主機上網(wǎng),切換的時候用戶會斷一次線。 切換到病毒主機上網(wǎng)后,如果用戶已經(jīng)登陸了傳奇服務器,那么病毒主機就會經(jīng)常偽造斷線的假像,那么用戶就得重新登錄傳奇服務器,這樣病毒主機就可以盜號了衢州網(wǎng)吧維護。 由于ARP欺騙的木馬程序發(fā)作的時候會發(fā)出大量的數(shù)據(jù)包導致局域網(wǎng)通訊擁塞以及其自身處理能力的限制,用戶會感覺上網(wǎng)速度越來越慢。當ARP欺騙的木馬程序停止運行時,用戶會恢復從路由器上網(wǎng),切換過程中用戶會再斷一次線。
【HiPER用戶快速發(fā)現(xiàn)ARP欺騙木馬】
在路由器的“系統(tǒng)歷史記錄”中看到大量如下的信息(440以后的路由器軟件版本中才有此提示): MAC Chged 10.128.103.124 MAC Old 00:01:6c:36:d1:7f MAC New 00:05:5d:60:c7:18 這個消息代表了用戶的MAC地址發(fā)生了變化,在ARP欺騙木馬開始運行的時候,局域網(wǎng)所有主機的MAC地址更新為病毒主機的MAC地址(即所有信息的MAC New地址都一致為病毒主機的MAC地址),同時在路由器的“用戶統(tǒng)計”中看到所有用戶的MAC地址信息都一樣。 如果是在路由器的“系統(tǒng)歷史記錄”中看到大量MAC Old地址都一致,則說明局域網(wǎng)內(nèi)曾經(jīng)出現(xiàn)過ARP欺騙(ARP欺騙的木馬程序停止運行時,主機在路由器上恢復其真實的MAC地址)。
【在局域網(wǎng)內(nèi)查找病毒主機】
在上面我們已經(jīng)知道了使用ARP欺騙木馬的主機的MAC地址,那么我們就可以使用NBTSCAN工具來快速查找它。 NBTSCAN可以取到PC的真實IP地址和MAC地址,如果有”傳奇木馬”在做怪,可以找到裝有木馬的PC的IP/和MAC地址。 命令:“nbtscan -r 192.168.16.0/24”(搜索整個192.168.16.0/24網(wǎng)段, 即 192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 網(wǎng)段,即192.168.16.25-192.168.16.137。輸出結(jié)果第一列是IP地址,最后一列是MAC地址。 NBTSCAN的使用范例: 假設查找一臺MAC地址為“000d870d585f”的病毒主機。 1)將壓縮包中的nbtscan.exe 和cygwin1.dll解壓縮放到c:/下。 2)在Windows開始—運行—打開,輸入cmd(windows98輸入“command”),衢州網(wǎng)吧維護在出現(xiàn)的DOS窗口中輸入:C:/nbtscan -r 192.168.16.1/24(這里需要根據(jù)用戶實際網(wǎng)段輸入),回車。
C:/Documents and Settings/ALAN>C:/nbtscan -r 192.168.16.1/24 Warning: -r option not supported under Windows. Running without it. Doing NBT name scan for addresses from 192.168.16.1/24 IP address NetBIOS Name Server User MAC address ------------------------------------------------------------------------------ 192.168.16.0 Sendto failed: Cannot assign requested address 192.168.16.50 SERVER <server> <unknown> 00-e0-4c-4d-96-c6 192.168.16.111 LLF <server> ADMINISTRATOR 00-22-55-66-77-88 192.168.16.121 UTT-HIPER <server> <unknown> 00-0d-87-26-7d-78 192.168.16.175 JC <server> <unknown> 00-07-95-e0-7c-d7 192.168.16.223 test123 <server> test123 00-0d-87-0d-58-5f 3)通過查詢IP--MAC對應表,查出“000d870d585f”的病毒主機的IP地址為“192.168.16.223”。
【解決思路】
1、不要把你的網(wǎng)絡安全信任關(guān)系建立在IP基礎上或MAC基礎上,(rARP同樣存在欺騙的問題),理想的關(guān)系應該建立在IP+MAC基礎上。 2、設置靜態(tài)的MAC-->IP對應表,不要讓主機刷新你設定好的轉(zhuǎn)換表。 3、除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對應表中。 4、使用ARP服務器。通過該服務器查找自己的ARP轉(zhuǎn)換表來響應其他機器的ARP廣播。確保這臺ARP服務器不被黑。 5、使用"proxy"代理IP的傳輸。 6、使用硬件屏蔽主機。設置好你的路由,確保IP地址能到達合法的路徑。(靜態(tài)配置路由ARP條目),注意,使用交換集線器和網(wǎng)橋無法阻止ARP欺騙。 7、管理員定期用響應的IP包中獲得一個rarp請求,然后檢查ARP響應的真實性。 8、管理員定期輪詢,檢查主機上的ARP緩存。 9、使用防火墻連續(xù)監(jiān)控網(wǎng)絡。注意有使用SNMP的情況下,ARP的欺騙有可能導致陷阱包丟失。
【HiPER用戶的解決方案】
建議用戶采用雙向綁定的方法解決并且防止ARP欺騙。 1、在PC上綁定路由器的IP和MAC地址: 1)首先,獲得路由器的內(nèi)網(wǎng)的MAC地址(例如HiPER網(wǎng)關(guān)地址192.168.16.254的MAC地址為0022aa0022aa<HiPER管理界面--端口配置--局域網(wǎng)端口MAC地址>)。 2)編寫一個批處理文件rARP.bat內(nèi)容如下: @echo off ARP -d ARP -s 192.168.16.254 00-22-aa-00-22-aa 將文件中的網(wǎng)關(guān)IP地址和MAC地址更改為您自己的網(wǎng)關(guān)IP地址和MAC地址即可。 將這個批處理軟件拖到“windows--開始--程序--啟動”中。 3)如果是網(wǎng)吧,可以利用收費軟件服務端程序(pubwin或者萬象都可以)發(fā)送批處理文件rARP.bat到所有客戶機的啟動目錄。Windows2000的默認啟動目錄為“C:/Documents and Settings/All Users「開始」菜單程序啟動”。 2、在路由器上綁定用戶主機的IP和MAC地址(440以后的路由器軟件版本支持): 在HiPER管理界面--高級配置--用戶管理中將局域網(wǎng)每臺主機均作綁定。
|