要了解故障原理,咱們先來了解一下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地址是一一對應的,以下表所示。html
主機 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-ddwindows
咱們以主機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地址)。網絡
【在局域網內查找病毒主機】ide
在上面咱們已經知道了使用ARP欺騙***的主機的MAC地址,那麼咱們就可使用NBTSCAN(最新nbtscan下載地址:http://www.inetcat.net/software/nbtscan.html,點擊Download NBTscan binaries for Win32 )工具來快速查找它。
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:/nbtscan -r 192.168.16.1/24(這裏須要根據用戶實際網段輸入),回車。工具
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
------------------------------------------------------------------------------spa
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.net
3)經過查詢IP--MAC對應表,查出「000d870d585f」的病毒主機的IP地址爲「192.168.16.223」。
【解決思路】
一、不要把你的網絡安全信任關係創建在IP基礎上或MAC基礎上,(rarp一樣存在欺騙的問題),理想的關係應該創建在IP+MAC基礎上。
二、設置靜態的MAC-->IP對應表,不要讓主機刷新你設定好的轉換表。
三、除非頗有必要,不然中止使用ARP,將ARP作爲永久條目保存在對應表中。
四、使用ARP服務器。經過該服務器查找本身的ARP轉換表來響應其餘機器的ARP廣播。確保這臺ARP服務器不被黑。
五、使用"proxy"代理IP的傳輸。
六、使用硬件屏蔽主機。設置好你的路由,確保IP地址能到達合法的路徑。(靜態配置路由ARP條目),注意,使用交換集線器和網橋沒法阻止ARP欺騙。
七、管理員按期用響應的IP包中得到一個rarp請求,而後檢查ARP響應的真實性。
八、管理員按期輪詢,檢查主機上的ARP緩存。
九、使用防火牆連續監控網絡。注意有使用SNMP的狀況下,ARP的欺騙有可能致使陷阱包丟失。
【HiPER用戶的解決方案】
建議用戶採用雙向綁定的方法解決而且防止ARP欺騙。
一、在PC上綁定路由器的IP和MAC地址:
1)首先,得到路由器的內網的MAC地址(例如HiPER網關地址192.168.16.254的MAC地址爲0022aa0022aa)。
2)編寫一個批處理文件rarp.bat內容以下:
@echo off
arp -d
arp -s 192.168.16.254 00-22-aa-00-22-aa
將文件中的網關IP地址和MAC地址更改成您本身的網關IP地址和MAC地址便可。
將這個批處理軟件拖到「windows--開始--程序--啓動」中。
3) 若是是網吧,能夠利用收費軟件服務端程序(pubwin或者萬象均可以)發送批處理文件rarp.bat到全部客戶機的啓動目錄。Windows2000 的默認啓動目錄爲「C:/Documents and Settings/All Users「開始」菜單程序啓動」。
二、在路由器上綁定用戶主機的IP和MAC地址(440之後的路由器軟件版本支持):
在HiPER管理界面--高級配置--用戶管理中將局域網每臺主機均做綁定。
NBTSCAN的使用方法:
下載nbtscan.rar到硬盤後解壓,而後將cygwin1.dll和nbtscan.exe兩文件拷貝到c:\windows\system32(或system)下,進入MSDOS窗口就能夠輸入命令:
nbtscan -r 218.197.192.0/24 (假設本機所處的網段是218.197.192,掩碼是255.255.255.0;實際使用該命令時,應將斜體字部分改成正確的網段) 。
注:使用nbtscan時,有時由於有些計算機安裝防火牆軟件,nbtscan的輸出不全,但在計算機的arp緩存中卻能有所反應,因此使用nbtscan時,還可同時查看arp緩存,就能獲得比較徹底的網段內計算機IP與MAC的對應關係。
補充一下:
Anti ARP Sniffer 使用說明
1、功能說明:
使用Anti ARP Sniffer能夠防止利用ARP技術進行數據包截取以及防止利用ARP技術發送地址衝突數據包。
2、使用說明:
一、ARP欺騙:
填入網關IP地址,點擊〔獲取網關mac地址〕將會顯示出網關的MAC地址。點擊[自動防禦]便可保護當前網卡與該網關的通訊不會被第三方監聽。
注意:如出現ARP欺騙提示,這說明***者發送了ARP欺騙數據包來獲取網卡的數據包,若是您想追蹤***來源請記住***者的MAC地址,利用MAC地址掃描器能夠找出IP 對應的MAC地址。
二、IP地址衝突
首先點擊「恢復默認」而後點擊「防禦地址衝突」。
如頻繁的出現IP地址衝突,這說明***者頻繁發送ARP欺騙數據包,纔會出現IP衝突的警告,利用Anti ARP Sniffer能夠防止此類***。
首先您須要知道衝突的MAC地址,Windows會記錄這些錯誤。查看具體方法以下:
右擊[個人電腦]-->[管理]-->點擊[事件查看器]-->點擊[系統]-->查看來源爲[TcpIP]--->雙擊 事件能夠看到顯示地址發生衝突,並記錄了該MAC地址,請複製該MAC地址並填入Anti ARP Sniffer的本地MAC地址輸入框中(請注意將:轉換爲-),輸入完成以後點擊[防禦地址衝突],爲了使MAC地址生效請禁用本地網卡而後再啓用網 卡,在CMD命令行中輸入Ipconfig /all,查看當前MAC地址是否與本地MAC地址輸入框中的MAC地址相符,若是更改失敗請與我聯繫。若是成功將再也不會顯示地址衝突。
注意:若是您想恢復默認MAC地址,請點擊[恢復默認],爲了使MAC地址生效請禁用本地網卡而後再啓用網卡。
有關ARP病毒問題的處理說明:
故障現象:機器之前可正常上網的,忽然出現可認證,不能上網的現象(沒法ping通網關),重啓機器或在MSDOS窗口下運行命令ARP -d後,又可恢復上網一段時間。
故障緣由:這是APR病毒欺騙***形成的。
引發問題的緣由通常是由傳奇外掛攜帶的ARP******。當在局域網內使用上述外掛時,外掛攜帶的病毒 會將該機器的MAC地址映射到網關的IP地址上,向局域網內大量發送ARP包,從而導致同一網段地址內的其它機器誤將其做爲網關,這就是爲何掉線時內網 是互通的,計算機卻不能上網的緣由。
臨時處理對策:
步驟一. 在能上網時,進入MS-DOS窗口,輸入命令:arp –a 查看網關IP對應的正確MAC地址,將其記錄下來。
注:若是已經不能上網,則先運行一次命令arp –d將arp緩存中的內容刪空,計算機可暫時恢復上網(***若是不中止的話),一旦能上網就當即將網絡斷掉(禁用網卡或拔掉網線),再運行arp –a。
步驟二. 若是已經有網關的正確MAC地址,在不能上網時,手工將網關IP和正確MAC綁定,可確保計算機再也不被***影響。手工綁定可在MS-DOS窗口下運行如下命令: arp –s 網關IP 網關MAC
例如:假設計算機所處網段的網關爲218.197.192.254,本機地址爲218.197.192.1在計算機上運行arp –a後輸出以下:
C:\Documents and Settings>arp -a
Interface: 218.197.192.1 --- 0x2
Internet Address Physical Address Type
218.197.192.254 00-01-02-03-04-05 dynamic
其中00-01-02-03-04-05就是網關218.197.192.254對應的MAC地址,類型是動態(dynamic)的,所以是可被改變。
被***後,再用該命令查看,就會發現該MAC已經被替換成***機器的MAC,若是你們但願能找出***機器,完全根除***,能夠在此時將該MAC記錄下來,爲之後查找作準備。
手工綁定的命令爲:
arp –s 218.197.192.254 00-01-02-03-04-05
綁定完,可再用arp –a查看arp緩存,
C:\Documents and Settings>arp -a
Interface: 218.197.192.1 --- 0x2
Internet Address Physical Address Type
218.197.192.254 00-01-02-03-04-05 static
這時,類型變爲靜態(static),就不會再受***影響了。可是,須要說明的是,手工綁定在計算機關機重開機後就會失效,須要再綁定。因此,要完全根除***,只有找出網段內被病毒感染的計算機,令其殺毒,方可解決。找出病毒計算機的方法:
若是已有病毒計算機的MAC地址,可以使用NBTSCAN軟件找出網段內與該MAC地址對應的IP,即病毒計算機的IP地址,而後可報告校網絡中心對其進行查封。
解決措施
NBTSCAN的使用方法:
下載nbtscan.rar到硬盤後解壓,而後將cygwin1.dll和nbtscan.exe兩文件拷貝到c:\windows\system32(或system)下,進入MSDOS窗口就能夠輸入命令:
nbtscan -r 218.197.192.0/24 (假設本機所處的網段是218.197.192,掩碼是255.255.255.0;實際使用該命令時,應將斜體字部分改成正確的網段) 。
注:使用nbtscan時,有時由於有些計算機安裝防火牆軟件,nbtscan的輸出不全,但在計算機的arp緩存中卻能有所反應,因此使用nbtscan時,還可同時查看arp緩存,就能獲得比較徹底的網段內計算機IP與MAC的對應關係