明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ARP攻擊原理及處理方法

[摘要]故障原因局域網(wǎng)內(nèi)有人使用ARP欺騙的木馬程序(比如:傳奇盜號(hào)的軟件,某些傳奇外掛中也被惡意加載了此程序)。故障原理要了解故障原理,我們先來(lái)了解一下ARP協(xié)議。在局域網(wǎng)中,通過(guò)ARP協(xié)議來(lái)完成IP地址轉(zhuǎn)換為第二層物理地址(即MAC地址)的。ARP協(xié)議對(duì)網(wǎng)絡(luò)安全具有重要的意義。通過(guò)偽造IP地址和MAC...

  故障原因

  局域網(wǎng)內(nèi)有人使用ARP欺騙的木馬程序(比如:傳奇盜號(hào)的軟件,某些傳奇外掛中也被惡意加載了此程序)。

  故障原理

  要了解故障原理,我們先來(lái)了解一下ARP協(xié)議。

  在局域網(wǎng)中,通過(guò)ARP協(xié)議來(lái)完成IP地址轉(zhuǎn)換為第二層物理地址(即MAC地址)的。ARP協(xié)議對(duì)網(wǎng)絡(luò)安全具有重要的意義。通過(guò)偽造IP地址和MAC地址實(shí)現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞。

  ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫(xiě)。在局域網(wǎng)中,網(wǎng)絡(luò)中實(shí)際傳輸?shù)氖?ldquo;幀”,幀里面是有目標(biāo)主機(jī)的MAC地址的。在以太網(wǎng)中,一個(gè)主機(jī)要和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。但這個(gè)目標(biāo)MAC地址是如何獲得的呢?它就是通過(guò)地址解析協(xié)議獲得的。所謂“地址解析”就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。ARP協(xié)議的基本功能就是通過(guò)目標(biāo)設(shè)備的IP地址,查詢(xún)目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。

  每臺(tái)安裝有TCP/IP協(xié)議的電腦里都有一個(gè)ARP緩存表,表里的IP地址與MAC地址是一一對(duì)應(yīng)的,如下表所示。

  主機(jī) 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

  我們以主機(jī)A(192.168.16.1)向主機(jī)B(192.168.16.2)發(fā)送數(shù)據(jù)為例。當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會(huì)在自己的ARP緩存表中尋找是否有目標(biāo)IP地址。如果找到了,也就知道了目標(biāo)MAC地址,直接把目標(biāo)MAC地址寫(xiě)入幀里面發(fā)送就可以了;如果在ARP緩存表中沒(méi)有找到相對(duì)應(yīng)的IP地址,主機(jī)A就會(huì)在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播,目標(biāo)MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出這樣的詢(xún)問(wèn):“192.168.16.2的MAC地址是什么?”網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng)ARP詢(xún)問(wèn),只有主機(jī)B接收到這個(gè)幀時(shí),才向主機(jī)A做出這樣的回應(yīng):“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。這樣,主機(jī)A就知道了主機(jī)B的MAC地址,它就可以向主機(jī)B發(fā)送信息了。同時(shí)它還更新了自己的ARP緩存表,下次再向主機(jī)B發(fā)送信息時(shí),直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機(jī)制,在一段時(shí)間內(nèi)如果表中的某一行沒(méi)有使用,就會(huì)被刪除,這樣可以大大減少ARP緩存表的長(zhǎng)度,加快查詢(xún)速度。

  從上面可以看出,ARP協(xié)議的基礎(chǔ)就是信任局域網(wǎng)內(nèi)所有的人,那么就很容易實(shí)現(xiàn)在以太網(wǎng)上的ARP欺騙。對(duì)目標(biāo)A進(jìn)行欺騙,A去Ping主機(jī)C卻發(fā)送到了DD-DD-DD-DD-DD-DD這個(gè)地址上。如果進(jìn)行欺騙的時(shí)候,把C的MAC地址騙為DD-DD-DD-DD-DD-DD,于是A發(fā)送到C上的數(shù)據(jù)包都變成發(fā)送給D的了。這不正好是D能夠接收到A發(fā)送的數(shù)據(jù)包了么,嗅探成功。

  A對(duì)這個(gè)變化一點(diǎn)都沒(méi)有意識(shí)到,但是接下來(lái)的事情就讓A產(chǎn)生了懷疑。因?yàn)锳和C連接不上了。D對(duì)接收到A發(fā)送給C的數(shù)據(jù)包可沒(méi)有轉(zhuǎn)交給C。

  做“man in the middle”,進(jìn)行ARP重定向。打開(kāi)D的IP轉(zhuǎn)發(fā)功能,A發(fā)送過(guò)來(lái)的數(shù)據(jù)包,轉(zhuǎn)發(fā)給C,好比一個(gè)路由器一樣。不過(guò),假如D發(fā)送ICMP重定向的話(huà)就中斷了整個(gè)計(jì)劃。

  D直接進(jìn)行整個(gè)包的修改轉(zhuǎn)發(fā),捕獲到A發(fā)送給C的數(shù)據(jù)包,全部進(jìn)行修改后再轉(zhuǎn)發(fā)給C,而C接收到的數(shù)據(jù)包完全認(rèn)為是從A發(fā)送來(lái)的。不過(guò),C發(fā)送的數(shù)據(jù)包又直接傳遞給A,倘若再次進(jìn)行對(duì)C的ARP欺騙。現(xiàn)在D就完全成為A與C的中間橋梁了,對(duì)于A和C之間的通訊就可以了如指掌了。

  故障現(xiàn)象

  當(dāng)局域網(wǎng)內(nèi)某臺(tái)主機(jī)運(yùn)行ARP欺騙的木馬程序時(shí),會(huì)欺騙局域網(wǎng)內(nèi)所有主機(jī)和路由器,讓所有上網(wǎng)的流量必須經(jīng)過(guò)病毒主機(jī)。其他用戶(hù)原來(lái)直接通過(guò)路由器上網(wǎng)現(xiàn)在轉(zhuǎn)由通過(guò)病毒主機(jī)上網(wǎng),切換的時(shí)候用戶(hù)會(huì)斷一次線(xiàn)。

  切換到病毒主機(jī)上網(wǎng)后,如果用戶(hù)已經(jīng)登陸了傳奇服務(wù)器,那么病毒主機(jī)就會(huì)經(jīng)常偽造斷線(xiàn)的假像,那么用戶(hù)就得重新登錄傳奇服務(wù)器,這樣病毒主機(jī)就可以盜號(hào)了。

  由于ARP欺騙的木馬程序發(fā)作的時(shí)候會(huì)發(fā)出大量的數(shù)據(jù)包導(dǎo)致局域網(wǎng)通訊擁塞以及其自身處理能力的限制,用戶(hù)會(huì)感覺(jué)上網(wǎng)速度越來(lái)越慢。當(dāng)ARP欺騙的木馬程序停止運(yùn)行時(shí),用戶(hù)會(huì)恢復(fù)從路由器上網(wǎng),切換過(guò)程中用戶(hù)會(huì)再斷一次線(xiàn)。

  HiPER用戶(hù)快速發(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

  這個(gè)消息代表了用戶(hù)的MAC地址發(fā)生了變化,在ARP欺騙木馬開(kāi)始運(yùn)行的時(shí)候,局域網(wǎng)所有主機(jī)的MAC地址更新為病毒主機(jī)的MAC地址(即所有信息的MAC New地址都一致為病毒主機(jī)的MAC地址),同時(shí)在路由器的“用戶(hù)統(tǒng)計(jì)”中看到所有用戶(hù)的MAC地址信息都一樣。

  如果是在路由器的“系統(tǒng)歷史記錄”中看到大量MAC Old地址都一致,則說(shuō)明局域網(wǎng)內(nèi)曾經(jīng)出現(xiàn)過(guò)ARP欺騙(ARP欺騙的木馬程序停止運(yùn)行時(shí),主機(jī)在路由器上恢復(fù)其真實(shí)的MAC地址)。

  在局域網(wǎng)內(nèi)查找病毒主機(jī)

  在上面我們已經(jīng)知道了使用ARP欺騙木馬的主機(jī)的MAC地址,那么我們就可以使用NBTSCAN工具來(lái)快速查找它。

  NBTSCAN可以取到PC的真實(shí)IP地址和MAC地址,如果有”傳奇木馬”在做怪,可以找到裝有木馬的PC的IP和MAC地址。

  命令:“nbtscan -r 192.168.16.0/24”(搜索整個(gè)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的使用范例:

  假設(shè)查找一臺(tái)MAC地址為“000d870d585f”的病毒主機(jī)。

  1)將壓縮包中的nbtscan.exe 和cygwin1.dll解壓縮放到c:/下。

  2)在Windows開(kāi)始—運(yùn)行—打開(kāi),輸入cmd(windows98輸入“command”),在出現(xiàn)的DOS窗口中輸入:C:/nbtscan -r 192.168.16.1/24(這里需要根據(jù)用戶(hù)實(shí)際網(wǎng)段輸入),回車(chē)。

  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 00-e0-4c-4d-96-c6

  192.168.16.111 LLF ADMINISTRATOR 00-22-55-66-77-88

  192.168.16.121 UTT-HIPER 00-0d-87-26-7d-78

  192.168.16.175 JC 00-07-95-e0-7c-d7

  192.168.16.223 test123 test123 00-0d-87-0d-58-5f

  3)通過(guò)查詢(xún)IP--MAC對(duì)應(yīng)表,查出“000d870d585f”的病毒主機(jī)的IP地址為“192.168.16.223”。

  解決思路

  1、不要把你的網(wǎng)絡(luò)安全信任關(guān)系建立在IP基礎(chǔ)上或MAC基礎(chǔ)上,(rarp同樣存在欺騙的問(wèn)題),理想的關(guān)系應(yīng)該建立在IP+MAC基礎(chǔ)上。

  2、設(shè)置靜態(tài)的MAC-->IP對(duì)應(yīng)表,不要讓主機(jī)刷新你設(shè)定好的轉(zhuǎn)換表。

  3、除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對(duì)應(yīng)表中。

  4、使用ARP服務(wù)器。通過(guò)該服務(wù)器查找自己的ARP轉(zhuǎn)換表來(lái)響應(yīng)其他機(jī)器的ARP廣播。確保這臺(tái)ARP服務(wù)器不被黑。

  5、使用“proxy”代理IP的傳輸。

  6、使用硬件屏蔽主機(jī)。設(shè)置好你的路由,確保IP地址能到達(dá)合法的路徑。(靜態(tài)配置路由ARP條目),注意,使用交換集線(xiàn)器和網(wǎng)橋無(wú)法阻止ARP欺騙。

  7、管理員定期用響應(yīng)的IP包中獲得一個(gè)rarp請(qǐng)求,然后檢查ARP響應(yīng)的真實(shí)性。

  8、管理員定期輪詢(xún),檢查主機(jī)上的ARP緩存。

  9、使用防火墻連續(xù)監(jiān)控網(wǎng)絡(luò)。注意有使用SNMP的情況下,ARP的欺騙有可能導(dǎo)致陷阱包丟失。

  HiPER用戶(hù)的解決方案

  建議用戶(hù)采用雙向綁定的方法解決并且防止ARP欺騙。

  1、在PC上綁定路由器的IP和MAC地址:

  1)首先,獲得路由器的內(nèi)網(wǎng)的MAC地址(例如HiPER網(wǎng)關(guān)地址192.168.16.254的MAC地址為0022aa0022aa)。

  2)編寫(xiě)一個(gè)批處理文件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地址即可。

  將這個(gè)批處理軟件拖到“windows--開(kāi)始--程序--啟動(dòng)”中。

  3)如果是網(wǎng)吧,可以利用收費(fèi)軟件服務(wù)端程序(pubwin或者萬(wàn)象都可以)發(fā)送批處理文件rarp.bat到所有客戶(hù)機(jī)的啟動(dòng)目錄。Windows2000的默認(rèn)啟動(dòng)目錄為“C:/Documents and Settings/All Users「開(kāi)始」菜單程序啟動(dòng)”。

  2、在路由器上綁定用戶(hù)主機(jī)的IP和MAC地址(440以后的路由器軟件版本支持):

  在HiPER管理界面--高級(jí)配置--用戶(hù)管理中將局域網(wǎng)每臺(tái)主機(jī)均作綁定。

 


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。