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

病毒、木馬ARP攻擊行為的原理區(qū)分及處理_ARP原理

[摘要]1. 頻繁的出現(xiàn)地址沖突的現(xiàn)象   2. 上網(wǎng)速度很慢甚至上不了網(wǎng)   經(jīng)分析, 這大部分是由于病毒進行ARP地址欺騙造成的。 由于ARP協(xié)議的固有的缺陷, 病毒通過發(fā)送假的ARP數(shù)據(jù)包,...

1.

頻繁的出現(xiàn)地址沖突的現(xiàn)象

  2.

上網(wǎng)速度很慢甚至上不了網(wǎng)

  經(jīng)分析, 這大部分是由于病毒進行ARP地址欺騙造成的。 由于ARP協(xié)議的固有的缺陷, 病毒通過發(fā)送假的ARP數(shù)據(jù)包, 使得同網(wǎng)段的計算機誤以為中毒計算機是網(wǎng)關(guān), 造成其它計算機上網(wǎng)中斷(第一種情況)。 或是假冒網(wǎng)絡(luò)中特定的機器對這臺機器通信的數(shù)據(jù)進行截獲(第二種情況)。 為了避免中毒計算機對網(wǎng)絡(luò)造成影響, 趨勢科技已經(jīng)提供相關(guān)的防御工具KB(62735), 由于ARP病毒攻擊的復(fù)雜多變性, 現(xiàn)在針對兩種基本的攻擊行為的原理進行分析, 并提出相應(yīng)的解決思路。

  上網(wǎng)速度很慢甚至上不了網(wǎng)

  我們首先要了解一下ARP(Address

Resolution

Protocol)地址解析協(xié)議, 它是一種將IP地址轉(zhuǎn)化成物理地址的協(xié)議。 ARP具體說來就是將網(wǎng)絡(luò)層(TCP/IP協(xié)議的IP層, 也就是相當于OSI

的第三層)地址(32位)解析為數(shù)據(jù)鏈路層(TCP/IP協(xié)議的MAC層, 也就是相當于OSI的第二層)的MAC地址(48位)[RFC826]。 ARP

協(xié)議是屬于鏈路層的協(xié)議, 在以太網(wǎng)中的數(shù)據(jù)幀從一個主機到達網(wǎng)內(nèi)的另一臺主機是根據(jù)48位的以太網(wǎng)地址(硬件地址)來確定接口的, 而不是根據(jù)32位的IP

地址。 內(nèi)核(如驅(qū)動)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。 當然, 點對點(如兩臺直聯(lián)的計算機)的連接是不需要ARP協(xié)議的。 為了解釋ARP協(xié)議的作用, 就必須理解數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸過程。 這里舉一個簡單的ping例子。

  假設(shè)我們的計算機A的IP地址是192.168.1.50, 要測試與B機器的連通性, 執(zhí)行這個命令:ping

192.168.1.51。 該命令會通過ICMP協(xié)議發(fā)送ICMP數(shù)據(jù)包。 該過程需要經(jīng)過下面的步驟:

  1、應(yīng)用程序構(gòu)造數(shù)據(jù)包, 該示例是產(chǎn)生ICMP包, 被提交給內(nèi)核(網(wǎng)絡(luò)驅(qū)動程序);

  2、內(nèi)核檢查是否能夠轉(zhuǎn)化該IP地址為MAC地址, 也就是在本地的ARP緩存中查看IP-MAC對應(yīng)表;

  3、如果存在該IP-MAC對應(yīng)關(guān)系, 那么數(shù)據(jù)包直接發(fā)出;如果不存在該IP-MAC對應(yīng)關(guān)系, 那么接續(xù)下面的步驟;

  4、內(nèi)核進行ARP廣播, 目的地的MAC地址是BB-BB-BB-BB-BB-BB, ARP命令類型為Request, 其中包含有自己的MAC地址;(下面會講到具體包格式)

  5、當B主機接收到該ARP請求后, 就發(fā)送一個ARP的Reply命令, 其中包含自己的MAC地址;

  6、B獲得A主機的IP-MAC地址對應(yīng)關(guān)系, 并保存到ARP緩存中;

  7、B內(nèi)核將把IP轉(zhuǎn)化為MAC地址, 然后封裝在以太網(wǎng)頭結(jié)構(gòu)中, 再把數(shù)據(jù)發(fā)送出去;

  使用arp

-a命令就可以查看本地的ARP緩存內(nèi)容, 所以, 執(zhí)行一個本地的ping命令后, ARP緩存就會存在一個目的IP的記錄了。 當然, 如果你的數(shù)據(jù)包是發(fā)送到不同網(wǎng)段的目的地, 那么就一定存在一條網(wǎng)關(guān)的IP-MAC地址對應(yīng)的記錄。

  知道了ARP協(xié)議的作用, 就能夠很清楚地知道, 數(shù)據(jù)包的向外傳輸依靠ARP協(xié)議, 當然, 也就是依賴ARP緩存。 要知道, ARP協(xié)議的所有操作都是內(nèi)核自動完成的, 同其他的應(yīng)用程序沒有任何關(guān)系。 ARP協(xié)議并不只在發(fā)送了ARP請求才接收ARP應(yīng)答。 而ARP協(xié)議的固有缺陷就在這里, 當計算機接收到

ARP應(yīng)答數(shù)據(jù)包的時候, 就會對本地的ARP緩存進行更新, 將應(yīng)答中的IP和MAC地址存儲在ARP緩存中。 因此,

B向A發(fā)送一個自己偽造的ARP應(yīng)答, 而這個應(yīng)答中的數(shù)據(jù)為發(fā)送方IP地址是192.168.1.52(C的IP地址), MAC地址是BB-BB-BB-

BB-BB-BB(C的MAC地址本來應(yīng)該是CC-CC-CC-CC-CC-CC, 這里被偽造了)。 當A接收到B偽造的ARP應(yīng)答, 就會更新本地的ARP

緩存, 將本地的IP-MAC對應(yīng)表更換為接收到的數(shù)據(jù)格式, 由于這一切都是A的系統(tǒng)內(nèi)核自動完成的, A可不知道被偽造了。

  某些病毒就是利用這個原理, 向受害者發(fā)送源硬件地址為隨機產(chǎn)生貌似來自網(wǎng)關(guān)的ARP應(yīng)答包, 于是在受害者緩存里, 網(wǎng)關(guān)的IP是正確的, 可對應(yīng)的硬件地址卻是錯誤的或者是中毒機器。 該計算機向外發(fā)送的數(shù)據(jù)包總是發(fā)送到了錯誤的網(wǎng)關(guān)硬件地址上或是中毒機器。

  而如果病毒想要截獲某臺機器上網(wǎng)的所有通信而不被察覺, 只要同時再向網(wǎng)關(guān)發(fā)送冒充此機器的相應(yīng)的數(shù)據(jù)包即可實現(xiàn)。

  頻繁出現(xiàn)地址沖突的現(xiàn)象

  主機A在連接網(wǎng)絡(luò)(或更改IP地址)的時候就會向網(wǎng)絡(luò)發(fā)送ARP包廣播自己的IP地址。 如果網(wǎng)絡(luò)中存在相同IP地址的主機B, 那么B就會通過

ARP

reply該地址, 當A接收到這個reply后, A就會跳出IP地址沖突的警告, 當然B也會有警告。 因此用如果病毒發(fā)出的是ARP的Request包就會使用戶一直遭受IP地址沖突警告的困擾。

  下面就以上分析做一個模擬病毒進行ARP攻擊的行為的實驗, 了解此類病毒是如何產(chǎn)生危害的。

  實驗描述:此實驗?zāi)7翧RP攻擊的一種, 機器不斷提示地址沖突, 運行變慢, 無法上網(wǎng)的情況, 其他情況可自行參考模擬

  分析:不同病毒在中毒機器上運行, 發(fā)送的ARP包是有一定的周期的, 受影響的系統(tǒng)產(chǎn)生的開銷不一。 先模擬中毒機B以較大的發(fā)送頻率發(fā)送到A機器上(未中毒), 如系統(tǒng)內(nèi)核處理會不斷處理接到的ARP包, 這時盜用者機器上會不斷提示IP沖突,

則A機器上的系統(tǒng)開銷將大大增加,很容易無法響應(yīng)用戶操作。 而這一切由于ARP處于網(wǎng)絡(luò)協(xié)議的底層, 對一般防火墻等高層軟件是透明的, 盜用者無從察覺, 只能看到機器不端彈出沖突信息, 系統(tǒng)很快慢下來, 最終沒有任何響應(yīng)。

  實驗內(nèi)容:

  1.首先

讓我們先了解一下ARP協(xié)議的數(shù)據(jù)結(jié)構(gòu):

  typedefstructarphdr

  {

  unsignedshortarp_hrd;//硬件類型

使用的硬件(網(wǎng)絡(luò)訪問層)類型一般為

0806(ARP)

  unsignedshortarp_pro;//協(xié)議類型

解析過程中的協(xié)議使用以太類型的值一般為000110M以太網(wǎng))

  unsignedchararp_hln;//硬件地址長度

對于以太網(wǎng)和令牌環(huán)來說, 其長度為6字節(jié)

  unsignedchararp_pln;//協(xié)議地址長度

IP的長度是4字節(jié)

  unsignedshortarp_op;ARP操作類型

指定當前執(zhí)行操作的字段

1為請求, 2為應(yīng)答

  unsignedchararp_sha[6];/*發(fā)送者的硬件地址

  unsignedlongarp_spa;//發(fā)送者的協(xié)議地址

  unsignedchararp_tha[6];//目標的硬件地址

  unsignedlongarp_tpa;//目標的協(xié)議地址

  }ARPHDR,*PARPHDR;

  下面, 假設(shè)中毒機器的硬件地址是AA-AA-AA-AA-AA-AA,IP地址是192.168.1.5, 受影響機器B的硬件地址是BB-

BB-

BB-BB-BB-BB, IP地址是192.168.1.51.為了便于說明, 我們在B機器上用Sniffer

Pro工具先獲得發(fā)送目標為192.168.1.51的

ARP數(shù)據(jù)包,

  由于A中病毒不斷發(fā)送ARP請求包, 我們很容易獲得。 如圖:

  

ARP請求包

  現(xiàn)在我們結(jié)合圖中上半部分的協(xié)議解析來分析下半部分的代碼的意義,

  共有四行每行都標了號

  00行, ff

ff

ff

ff

ff

ff

廣播地址, 每個同網(wǎng)段用戶都能收到。

  aa

aa

aa

aa

aa

aa

發(fā)送方的硬件地址

  08

06

指使用ARP協(xié)議

  10行, 00

01

10M

以太網(wǎng)

  08

00

使用IP協(xié)議

  06

硬件地址使用6字節(jié)表示

  04

協(xié)議(IP)地址使用4字節(jié)表示

  00

01

ARP請求包

  aa

aa

aa

aa

aa

aa

發(fā)送方硬件地址

  c0

a8

01

32發(fā)送方IP地址

  20行, 00

00

00

00

00

00

目標硬件地址

  c0

a8

01

33

目標IP地址

  其他數(shù)據(jù)與本文無關(guān), 暫不討論。

  仔細看一下不難發(fā)現(xiàn), IP為192.168.1.5的A的IP地址被”篡改”了, A網(wǎng)絡(luò)中宣布自己假冒是192.168.1.50。

  使得與192.168.1.50通信的數(shù)據(jù)發(fā)到了192.168.1.5上, 而真正的192.168.1.50則運行緩慢甚至無法上網(wǎng)。

  2.

下面利用獲取的數(shù)據(jù)包, 通過SnifferPro的構(gòu)造并發(fā)送數(shù)據(jù)包的功能對它進行簡單的修改, 我們可以模擬一種病毒攻擊方式:

  對照前邊捕獲的數(shù)據(jù)包我們看到改動處有(紅線標注):

  

數(shù)據(jù)包

  1.aa

aa

aa

aa

aa

aa

硬件目的地址中毒機器A(DLC, 數(shù)據(jù)鏈路層地址)

  2.bb

bb

bb

bb

bb

bb(第一組)

源硬件地址為受影響機器B(DLC)

  3

bb

bb

bb

bb

bb

bb(第二組)

源硬件地址為受影響機器B

(ARP)

  4

(c0

a8

01)32

目的IP地址為中毒機器A(ARP)

  最后, 我們通過Sniffer的發(fā)包工具利用不間斷發(fā)送(Continuously)將其發(fā)送給192.168.1.50, 將使其很快癱瘓。 筆者實驗環(huán)境如下:TP-LINK

R402M路由器, A機器配置1.8G.RAM

1.0G

。 B機器配置CPU1.0G,RAM128M,B機器發(fā)送數(shù)據(jù)包15秒左右, A機器進入“無法響應(yīng)”狀態(tài)。 可見, 如果病毒大規(guī)模爆發(fā), 造成的網(wǎng)絡(luò)擁塞影響是十分嚴重的。

  最后, 提供幾種防御ARP攻擊行為的思路:

  首先, 需要了解一下一般解決方法, 很多人知道如何捆綁MAC地址和IP地址, 進入“MS-DOS方式”或“命令提示符”, 在命令提示符下輸入命令:ARP

-

s

X.X.X.X

YY-YY-YY-YY-YY-YY, 即可把MAC地址和IP地址捆綁在一起。 這樣, 就不會出現(xiàn)IP地址被盜用而不能正常使用網(wǎng)絡(luò)的情況。 從前面的分析我們知道, 即使我們知道了正確的網(wǎng)關(guān)硬件地址, 由于盜用者不斷發(fā)送偽造ARP包, 網(wǎng)關(guān)卻不知道合法用戶的硬件地址, 而且合法用戶端主機會不斷產(chǎn)生IP沖突的警告。 事實上, ARP命令是對局域網(wǎng)的上網(wǎng)代理服務(wù)器來說的, 如我們提出的KB(62735)中的”APR解決方案”細節(jié)內(nèi)容不在本文論述范圍內(nèi)。

  一般說來, 在網(wǎng)絡(luò)關(guān)鍵設(shè)備上使用的解決盜用的方法大體上有3種方案:采用路由器將網(wǎng)卡MAC地址與IP地址綁定;采用高端交換機將交換機端口、網(wǎng)卡

MAC

地址與IP地址三者綁定;代理服務(wù)器與防火墻相結(jié)合的辦法。 這幾種方法各有優(yōu)缺點, 采用路由器將網(wǎng)卡MAC地址與IP地址綁定的方法, 只能解決靜態(tài)地址的修改, 對于成對修改IP-MAC地址就無能為力。 采用高端交換機將交換機端口、網(wǎng)卡MAC地址與IP地址三者綁定的方法, 可以解決成對修改IP-MAC地址的問題, 但高端交換機費用昂貴, 而且解決沖突具有滯后性。

  當我們遇到ARP類病毒時,

  1

采用IP-MAC

綁定方法預(yù)防, 如利用KB(62735)解決方案部署中ipmac_binds_tools.exe

防御工具

  2

一旦發(fā)現(xiàn)無法解決的ARP病毒較復(fù)雜的攻擊行為, 請用戶使用工具抓取病毒爆發(fā)時網(wǎng)絡(luò)中的數(shù)據(jù)包, 根據(jù)以上ARP病毒的原理, 分析數(shù)據(jù)包找到頻繁發(fā)送ARP的REQUEST或REPLY請求的機器, 從而找到病毒源頭進行查殺毒。


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