ARP病毒入侵原理和解決方案(轉)

BSDLite發表於2007-08-15
ARP病毒入侵原理和解決方案(轉)[@more@]  【故障原因】?

  區域網內有人使用ARP欺騙的木馬程式(比如:傳奇盜號的軟體,某些傳奇外掛中也被惡意載入了此程式)。?

  【故障原理】?

  要了解故障原理,我們先來了解一下ARP協議。?

  在區域網中,透過ARP協議來完成IP地址轉換為第二層實體地址(即MAC地址)的。ARP協議對網路安全具有重要的意義。透過偽造IP地址和MAC地址實現ARP欺騙,能夠在網路中產生大量的ARP通訊量使網路阻塞。?

  ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。在區域網中,網路中實際傳輸的是“幀”,幀裡面是有目標主機的MAC地址的。在乙太網中,一個主機要和另一個主機進行直接通訊,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是透過地址解析協議獲得的。所謂“地址解析”就是主機在傳送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是透過目標裝置的IP地址,查詢目標裝置的MAC地址,以保證通訊的順利進行。?

  每臺安裝有TCP/IP協議的電腦裡都有一個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)傳送資料為例。當傳送資料時,主機A會在自己的ARP快取表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀裡面傳送就可以了;如果在ARP快取表中沒有找到相對應的IP地址,主機A就會在網路上傳送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網段內的所有主機發出這樣的詢問:“192.168.16.2的MAC地址是什麼?”網路上其他主機並不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。這樣,主機A就知道了主機B的MAC地址,它就可以向主機B傳送資訊了。同時它還更新了自己的ARP快取表,下次再向主機B傳送資訊時,直接從ARP快取表裡查詢就可以了。ARP快取表採用了老化機制,在一段時間內如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP快取表的長度,加快查詢速度。?

  從上面可以看出,ARP協議的基礎就是信任區域網內所有的人,那麼就很容易實現在乙太網上的ARP欺騙。對目標A進行欺騙,A去Ping主機C卻傳送到了DD-DD-DD-DD-DD-DD這個地址上。如果進行欺騙的時候,把C的MAC地址騙為DD-DD-DD-DD-DD-DD,於是A傳送到C上的資料包都變成傳送給D的了。這不正好是D能夠接收到A傳送的資料包了麼,嗅探成功。?

  A對這個變化一點都沒有意識到,但是接下來的事情就讓A產生了懷疑。因為A和C連線不上了。D對接收到A傳送給C的資料包可沒有轉交給C。?

  做“man in the middle”,進行ARP重定向。開啟D的IP轉發功能,A傳送過來的資料包,轉發給C,好比一個路由器一樣。不過,假如D傳送ICMP重定向的話就中斷了整個計劃。?

  D直接進行整個包的修改轉發,捕獲到A傳送給C的資料包,全部進行修改後再轉發給C,而C接收到的資料包完全認為是從A傳送來的。不過,C傳送的資料包又直接傳遞給A,倘若再次進行對C的ARP欺騙。現在D就完全成為A與C的中間橋樑了,對於A和C之間的通訊就可以瞭如指掌了。?

  【故障現象】?

  當區域網內某臺主機執行ARP欺騙的木馬程式時,會欺騙區域網內所有主機和路由器,讓所有上網的流量必須經過病毒主機。其他使用者原來直接透過路由器上網現在轉由透過病毒主機上網,切換的時候使用者會斷一次線。?

  切換到病毒主機上網後,如果使用者已經登陸了傳奇伺服器,那麼病毒主機就會經常偽造斷線的假像,那麼使用者就得重新登入傳奇伺服器,這樣病毒主機就可以盜號了。?

  由於ARP欺騙的木馬程式發作的時候會發出大量的資料包導致區域網通訊擁塞以及其自身處理能力的限制,使用者會感覺上網速度越來越慢。當ARP欺騙的木馬程式停止執行時,使用者會恢復從路由器上網,切換過程中使用者會再斷一次線。?

  【HiPER使用者快速發現ARP欺騙木馬】?

  在路由器的“系統歷史記錄”中看到大量如下的資訊(440以後的路由器軟體版本中才有此提示):?

  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地址)。?

  【在區域網內查詢病毒主機】?

  在上面我們已經知道了使用ARP欺騙木馬的主機的MAC地址,那麼我們就可以使用NBTSCAN(下載地址:工具來快速查詢它。?

  NBTSCAN可以取到PC的真實IP地址和MAC地址,如果有”傳奇木馬”在做怪,可以找到裝有木馬的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(這裡需要根據使用者實際網段輸入),回車。  ?

  C:Documents and SettingsALAN>C:

  btscan -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)透過查詢IP--MAC對應表,查出“000d870d585f”的病毒主機的IP地址為“192.168.16.223”。?

  【解決思路】?

  1、不要把你的網路安全信任關係建立在IP基礎上或MAC基礎上,(rarp同樣存在欺騙的問題),理想的關係應該建立在IP+MAC基礎上。?

  2、設定靜態的MAC--&gtIP對應表,不要讓主機重新整理你設定好的轉換表。?

  3、除非很有必要,否則停止使用ARP,將ARP做為永久條目儲存在對應表中。?

  4、使用ARP伺服器。透過該伺服器查詢自己的ARP轉換表來響應其他機器的ARP廣播。確保這臺ARP伺服器不被黑。?

  5、使用""proxy""代理IP的傳輸。?

  6、使用硬體遮蔽主機。設定好你的路由,確保IP地址能到達合法的路徑。(靜態配置路由ARP條目),注意,使用交換集線器和網橋無法阻止ARP欺騙。?

  7、管理員定期用響應的IP包中獲得一個rarp請求,然後檢查ARP響應的真實性。?

  8、管理員定期輪詢,檢查主機上的ARP快取。?

  9、使用防火牆連續監控網路。注意有使用SNMP的情況下,ARP的欺騙有可能導致陷阱包丟失。?

  【HiPER使用者的解決方案】?

  建議使用者採用雙向繫結的方法解決並且防止ARP欺騙。?

  1、在PC上繫結路由器的IP和MAC地址:?

  1)首先,獲得路由器的內網的MAC地址(例如HiPER閘道器地址192.168.16.254的MAC地址為0022aa0022aa區域網埠MAC地址>)。?

  2)編寫一個批處理檔案rarp.bat內容如下:?

  @echo off?

  arp -d?

  arp -s 192.168.16.254 00-22-aa-00-22-aa?

  將檔案中的閘道器IP地址和MAC地址更改為您自己的閘道器IP地址和MAC地址即可。?

  將這個批處理軟體拖到“windows--開始--程式--啟動”中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959508/,如需轉載,請註明出處,否則將追究法律責任。

相關文章