ARP防火墻綁定網關MAC地址預防ARP攻擊和P2P終結者
【故障原理】
要了解故障原理,我們先來了解一下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之間的通訊就可以了如指掌了。#p#
【故障現象】
當局域網內某臺主機運行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地址)。#p#
【在局域網內查找病毒主機】
在上面我們已經知道了使用ARP欺騙木馬的主機的MAC地址,那么我們就可以使用NBTSCAN(下載地址:http://www.utt.com.cn/upload/nbtscan.rar)工具來快速查找它。
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(這里需要根據用戶實際網段輸入),回車。
3)通過查詢IP--MAC對應表,查出“000d870d585f”的病毒主機的IP地址為“192.168.16.223”。
【解決思路】
1、不要把你的網絡安全信任關系建立在IP基礎上或MAC基礎上,(rarp同樣存在欺騙的問題),理想的關系應該建立在IP+MAC基礎上。
2、設置靜態的MAC-->IP對應表,不要讓主機刷新你設定好的轉換表。
3、除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對應表中。
4、使用ARP服務器。通過該服務器查找自己的ARP轉換表來響應其他機器的ARP廣播。確保這臺ARP服務器不被黑。
5、使用"proxy"代理IP的傳輸。
6、使用硬件屏蔽主機。設置好你的路由,確保IP地址能到達合法的路徑。(靜態配置路由ARP條目),注意,使用交換集線器和網橋無法阻止ARP欺騙。
7、管理員定期用響應的IP包中獲得一個rarp請求,然后檢查ARP響應的真實性。
8、管理員定期輪詢,檢查主機上的ARP緩存。
9、使用防火墻連續監控網絡。注意有使用SNMP的情況下,ARP的欺騙有可能導致陷阱包丟失。#p#
【HiPER用戶的解決方案】
建議用戶采用雙向綁定的方法解決并且防止ARP欺騙。
1、在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 SettingsAll Users「開始」菜單程序啟動”。
2、在路由器上綁定用戶主機的IP和MAC地址(440以后的路由器軟件版本支持):
在HiPER管理界面--高級配置--用戶管理中將局域網每臺主機均作綁定。
例
一、有人惡意破壞網絡。
這種事情,一般會出現在網吧,或是一些人為了找到更好的網吧上網座位,強行讓別人斷線。
又或是通過ARP欺騙偷取內網帳號密碼。
二,病毒木馬
如:傳奇網吧殺手等,通過ARP欺騙網絡內的機器,假冒網關。從而偷取對外連接傳奇服務器的密碼。
ARP欺騙的原理如下:
假設這樣一個網絡,一個交換機接了3臺機器
HostA HostB HostC 其中
A的地址為:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA ---------網關
B的地址為:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB -------- 黑客
C的地址為:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC ---------被欺騙者
正常情況下 C:\arp -a
Interface: 192.168.1.3 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.1 BB-BB-BB-BB-BB-BB dynamic
現在假設HostB開始了罪惡的ARP欺騙:假冒A像c發送ARP欺騙包
B向C發送一個自己偽造的ARP欺騙包,而這個應答中的數據為發送方IP地址是192.168.1.1(網關的IP地址),MAC地址
是BB-BB-BB-BB-BB-BB (A的MAC地址本來應該是AA-AA-AA-AA-AA-AA,這里被偽造了)。當C接收到B偽造的ARP應答,就會更新
本地的ARP緩存(C可不知道被偽造了)。而且C不知道其實是從B發送過來的,這樣C就受到了B的欺騙了,凡是發往A的數據就會發往B,
這時候那么是比較可怕的,你的上網數據都會先流向B,在通過B去上網,如果這時候B上裝了SNIFFER軟件,那么你的所有出去的密碼都將被截獲。
為了以后出現問題的時候好查找,我建議大家平時建立一個MAC和IP的對應表,把局域網內所有網卡的MAC地址和IP、地理位置統統裝入數據庫
,以便當以后發現ARP 欺騙時找出欺騙者的機器。#p#
二、防范措施和解決方法。
方法一
通過arp –s 來綁定網關的MAC 地址和IP 地址。
這種方法對于XP 和2003系統是有用的,使用arp –s 來綁定的話。那么在ARP表中顯示的是一條靜態的記錄。
這樣就不會被動態的ARP 欺騙包給欺騙,而修改。
那么在2000的系統上也是可以使用arp -s來進行綁定得,在SP4的2000系統上需要下載2000 Rollup v2更新補丁包,ARP的補丁已經包含在里面 了,大小應該在38MB那樣。
http://download.microsoft.com/download/7/e/9/7e969f31-e33d-45a2-9d1a-fecbcde29a0e/Windows2000-KB891861-v2-x86-CHS.EXE
并且裝好后,下面幾個文件不能小于下面的版本號。
Date Time Version Size File name
--------------------------------------------------------
19-Jun-2003 20:05 5.0.2195.6602 108,816 Msafd.dll
02-Jun-2004 22:44 5.0.2195.6938 318,832 Tcpip.sys
19-Jun-2003 20:05 5.0.2195.6601 17,680 Wshtcpip.dll
19-Jun-2003 20:05 5.0.2195.6687 120,240 Afd.sys
19-Jun-2003 20:05 5.0.2195.6655 16,240 Tdi.sys
相關文章,大家可以看微軟的KB .http://support.microsoft.com/kb/842168
例:arp -s 192.168.1.1 00-0B-AD-DD-22-35
方法二
有些木馬或是一些駭客總是使用本地網卡上的網關來做欺騙。網關是通往外網或是和不同網絡互聯的一個中間設備。
而通過添加路由表中的記錄,設置優先級高于網關默認路由,那么網關的路由在級別高的路由可用時將不會生效。
施行方法:1.先手動修改客戶機的網關地址為任意ip地址,最好是同一網段中,沒使用的一個IP,以免被懷疑。
2.手動添加或是通過批處理,或是腳本來添加永久對出口路由。
此中方法可以欺騙過大部份,菜鳥或是所謂的駭客和大部份ARP欺騙木馬。
缺點是: 如果以后網關以后網卡或是機器改變。那么以后還得重新修改已有得路由。
route delete 0.0.0.0 -----刪除到默認得路由
route add 0.0.0.0 mask 0.0.0.0 192.168.1.254 metric 1 --- 添加路由
route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.254 metric 1 ------參數-p 就是添加永久的記錄。
route change --修改路由
http://www.99191.com/dispbbs.asp?BoardID=33&ID=2631&replyID=6840&skin=1
方法 三
1. 如果你但前使用得交換機器有網卡和MAC地址綁定功能,那么將你所在得網得IP地址和MAC 地址進行綁定。
但有時候,我們可能沒有這些設備那么要想做就很困難了。
另類方法思路--如何全面解決讓ARP欺騙,ARP木馬無法在本機器安裝,運行。
大部分監控,arp 欺騙軟件,都會使用到一個winpcap驅動。那么現在的思路就是讓其無法在本地計算機安裝。
這樣arp欺騙軟件就無法被使用了使用了,此方法可以用于任何程序的安裝。
需要的條件:
1.所在的系統盤為NTFS 分區格式。
2.知道所要安裝的文件所要在系統中生成的文件。
3.使用注冊表和文件安裝監視軟件來監視安裝所生成的文件。
方法四:
利用些別人做好的ARP 監控工具。
。
實驗:
作業:
1.使用arp -s 來添加一條arp靜態記錄,使用arp -a 查看添加的記錄。使用arp -d 來刪除剛添加的那條記錄
2.使用route print 來查看現有的路由表,使用route add -p 來添加一條永久記錄,最后使用route delete來刪除剛建的那條記錄。
3.使用組策略禁止本地系統中的記事本程序。
4.利用注冊表和文件安裝監視軟件,來查找組策略中設置后,對注冊表中鍵值的修改。
并通過修改注冊表,禁止記事本軟件(notepad.exe)的執行。#p#
如何檢查和處理“ ARP 欺騙”木馬的方法
1 .檢查本機的“ ARP 欺騙”木馬染毒進程
同時按住鍵盤上的“ CTRL ”和“ ALT ”鍵再按“ DEL ”鍵,選擇“任務管理器”,點選“進程”標簽。察看其中是否有一個名為“ MIR0.dat ”的進程。如果有,則說明已經中毒。右鍵點擊此進程后選擇“結束進程”。參見右圖。
2 .檢查網內感染“ ARP 欺騙”木馬染毒的計算機
在“開始” - “程序” - “附件”菜單下調出“命令提示符”。輸入并執行以下命令:
ipconfig
記錄網關 IP 地址,即“ Default Gateway ”對應的值,例如“ 59.66.36.1 ”。再輸入并執行以下命令:
arp –a
在“ Internet Address ”下找到上步記錄的網關 IP 地址,記錄其對應的物理地址,即“ Physical Address ”值,例如“ 00-01-e8-1f-35-54 ”。在網絡正常時這就是網關的正確物理地址,在網絡受“ ARP 欺騙”木馬影響而不正常時,它就是木馬所在計算機的網卡物理地址。
也可以掃描本子網內的全部 IP 地址,然后再查 ARP 表。如果有一個 IP 對應的物理地址與網關的相同,那么這個 IP 地址和物理地址就是中毒計算機的 IP 地址和網卡物理地址。
3 .設置 ARP 表避免“ ARP 欺騙”木馬影響的方法
本方法可在一定程度上減輕中木馬的其它計算機對本機的影響。用上邊介紹的方法確定正確的網關 IP 地址和網關物理地址,然后在 “命令提示符”窗口中輸入并執行以下命令:
arp –s 網關 IP 網關物理地址
4.態ARP綁定網關
步驟一:
在能正常上網時,進入MS-DOS窗口,輸入命令:arp -a,查看網關的IP對應的正確MAC地址, 并將其記錄下來。
注意:如果已經不能上網,則先運行一次命令arp -d將arp緩存中的內容刪空,計算機可暫時恢復上網(攻擊如果不停止的話)。一旦能上網就立即將網絡斷掉(禁用網卡或拔掉網線),再運行arp -a。
步驟二:
如果計算機已經有網關的正確MAC地址,在不能上網只需手工將網關IP和正確的MAC地址綁定,即可確保計算機不再被欺騙攻擊。
要想手工綁定,可在MS-DOS窗口下運行以下命令:
arp -s 網關IP 網關MAC
例如:假設計算機所處網段的網關為192.168.1.1,本機地址為192.168.1.5,在計算機上運行arp -a后輸出如下:
Cocuments and Settings>arp -a
Interface:192.168.1.5 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-01-02-03-04-05 dynamic
其中,00-01-02-03-04-05就是網關192.168.1.1對應的MAC地址,類型是動態(dynamic)的,因此是可被改變的。
被攻擊后,再用該命令查看,就會發現該MAC已經被替換成攻擊機器的MAC。如果希望能找出攻擊機器,徹底根除攻擊,可以在此時將該MAC記錄下來,為以后查找該攻擊的機器做準備。
手工綁定的命令為:
arp -s 192.168.1.1 00-01-02-03-04-05
綁定完,可再用arp -a查看arp緩存:
Cocuments and Settings>arp -a
Interface: 192.168.1.5 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-01-02-03-04-05 static
這時,類型變為靜態(static),就不會再受攻擊影響了。
但是,需要說明的是,手工綁定在計算機關機重啟后就會失效,需要再次重新綁定。所以,要徹底根除攻擊,只有找出網段內被病毒感染的計算機,把病毒殺掉,才算是真正解決問題。#p#
5 .作批處理文件
在客戶端做對網關的arp綁定,具體操作步驟如下:
步驟一:
查找本網段的網關地址,比如192.168.1.1,以下以此網關為例。在正常上網時,“開始→運行→cmd→確定”,輸入:arp -a,點回車,查看網關對應的Physical Address。
比如:網關192.168.1.1 對應00-01-02-03-04-05。
步驟二:
編寫一個批處理文件rarp.bat,內容如下:
@echo off
arp -d
arp -s 192.168.1.1 00-01-02-03-04-05
保存為:rarp.bat。
步驟三:
運行批處理文件將這個批處理文件拖到“Windows→開始→程序→啟動”中,如果需要立即生效,請運行此文件。
注意:以上配置需要在網絡正常時進行
6.使用安全工具軟件
及時下載Anti ARP Sniffer軟件保護本地計算機正常運行。具體使用方法可以在網上搜索。
如果已有病毒計算機的MAC地址,可使用NBTSCAN等軟件找出網段內與該MAC地址對應的IP,即感染病毒的計算機的IP地址,然后報告單位的網絡中心對其進行查封。
或者利用單位提供的集中網絡防病毒系統來統一查殺木馬。另外還可以利用木馬殺客等安全工具進行查殺。
7.應急方案
網絡管理管理人員利用上面介紹的ARP木馬檢測方法在局域網的交換機上查出受感染該病毒的端口后,立即關閉中病毒的端口,通過端口查出相應的用戶并通知其徹底查殺病毒。而后,做好單機防范,在其徹底查殺病毒后再開放相應的交換機端口,重新開通上網。
附錄一
清華大學校園網絡安全響應小組編的一個小程序
下載地址: ftp://166.111.8.243/tools/ArpFix.rar
清華大學校園網絡安全響應小組編了一個小程序,它可以保護您的計算機在同一個局域網內部有ARP欺騙木馬計算機的攻擊時,保持正常上網。具體使用方法:
1、 程序運行后請先選擇網卡,選定網卡后點擊“選定”按鈕。
2、 選定網卡后程序會自動獲取您機器的網關地址。
3、獲得網關地址后請點擊獲取MAC地址按鈕獲取正確的網關MAC地址。
4、 確認網關的MAC地址后請點擊連接保護,程序開始保護您的機器。
5、 點擊程序右上角的叉,程序自動隱藏到系統托盤內。
6、要完全退出程序請在系統托盤中該程序圖標上點擊右鍵選擇EXIT。
注意:
1、這個程序只是一個ARP攻擊保護程序,即受ARP木馬攻擊時保持自己計算機的MAC地址不被惡意篡改,從而在遭受攻擊時網絡不會中斷。本程序并不能清除已經感染的ARP木馬,要預防感染或殺除木馬請您安裝正版的殺毒軟件!
附錄二
Anti Arp Sniffer 的用法
下載地址:http://www.wipe.edu.cn/Files/wlzx/Antiarp.rar