ARP攻擊的原理與解決方法

2021-04-12 22:12:12 字數 4034 閱讀 9837

arp攻擊的原理與解決方法(第三版)含如何在區域網內查詢病毒主機

【故障原因】

區域網內有人使用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欺騙的木馬程式時,會欺**域網內所有主機和路由器,讓所有上網的流量必須經過病毒主機。其他使用者原來直接通過路由器上網現在轉由通過病毒主機上網,切換的時候使用者會斷一次線。

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

【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位址,如果有」arp攻擊」在做怪,可以找到裝有arp攻擊的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的欺騙有可能導致陷阱包丟失。

【hiper使用者的解決方案】

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

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「開始」選單程式啟動」。

在hiper管理介面--高階配置--使用者管理中將區域網每台主機均作繫結。 

什麼是arp攻擊?arp攻擊的解決方法有哪些?

arp攻擊是屬於區域網內的一種攻擊方式,通過偽造ip位址和mac位址實現arp欺騙,能夠在網路中產生大量的arp通訊量使網路阻塞。arp攻擊一般可以導致網內其他機器出現 ip位址衝突 或不能上網的症狀。遇到arp攻擊,可以解決的方法有 arp防火牆安裝 目前市場上,大多數都是安全輔助軟體均內建arp...

ARP解決方法 ARP工具 快速解決ARP

試了1個小時,咱這論壇的上傳功能實在是不會玩,大家去欣向下吧。2。抓包看包工具。ethereal setup 0.10.8。欣向arp工具。欣全向arp工具.exe 共分5大功能 軟體中所有需要儲存檔案的功能都會儲存在軟體所在的目錄中 1。ip mac清單 a。選擇網絡卡。如果是單網絡卡不需要設定。...

SYN 攻擊原理及解決方法

原理 syn foold攻擊主要針對tcp通訊三次握手期間做的手腳,所以要弄懂這個攻擊的原理我們首先必須知道tcp三次握手的詳細過程 由上圖可知tcp三次握手顧名思義要經過三個步驟,這三個步驟分別是 客戶端向服務端傳送syn j 同步訊號假設序號為j 相當於通知服務端我要開始建立連線了 服務端收到客...