ARP攻擊

電腦通訊 9547 477 2014-11-23

ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的進行。

基於ARP協議的這一工作特性,黑客向對方計算機不斷發送有欺詐性質的ARP數據包,數據包內包含有與當前設備重複的Mac地址,使對方在回應報文時,由於簡單的地址重複錯誤而導致不能進行正常的網絡通信。一般情況下,受到ARP攻擊的計算機會出現兩種現象:

1.不斷彈出「本機的XXX段硬件地址與網絡中的XXX段地址衝突」的對話框。

2.計算機不能正常上網,出現網絡中斷的症狀。

因為這種攻擊是利用ARP請求報文進行「欺騙」的,所以防火牆會誤以為是正常的請求數據包,不予攔截。因此普通的防火牆很難抵擋這種攻擊。

ARP病毒問題的處理

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地址,然後可報告校網絡中心對其進行查封。

ARP攻擊原理

文主要以以太網為例,說明ARP攻擊的原理。

以太網上的機器通過IP協議通信時,IP包從上層一直下傳到數據鏈路層,數據鏈路層就要構造以太幀了,以太頭中包括目的MAC地址,源MAC地址和協議,源地址是自己網卡的MAC地址,可以得到,協議對於IP包來說是0x0800(網絡序),而目的MAC地址呢?所知道的目前只是目的IP地址,ARP協議就是把IP地址轉換為IP地址的一個底層協議,一般人很少注意。

為得到一個IP地址對應的MAC地址,主機就會發出ARP請求,屬於以太廣播包目的MAC是FF:FF:FF:FF:FF:FF,協議0x0806、表示是ARP協議,在RFC826中定義,RFC中是這樣定義的Ethernettransmissionlayer(notnecessarilyaccessibletotheuser):

48.bit: Ethernet address of destination

48.bit: Ethernet address of sender

16.bit: Protocol type = ether_type$ADDRESS_RESOLUTION Ethernet packet data:

16.bit: (ar$hrd) Hardware address space (e.g., Ethernet, Packet Radio Net.)

16.bit: (ar$pro) Protocol address space. For Ethernet hardware, this is from the set of type

fields ether_typ$

8.bit: (ar$hln) byte length of each hardware address 8.bit: (ar$pln) byte length of each protocol address

16.bit: (ar$op) opcode (ares_op$REQUEST | ares_op$REPLY) nbytes: (ar$sha) Hardware address of sender of this

packet, n from the ar$hln field.

mbytes: (ar$spa) Protocol address of sender of this packet, m from the ar$pln field.

nbytes: (ar$tha) Hardware address of target of this packet (if known).

mbytes: (ar$tpa) Protocol address of target. hardware address space

協議類型字段表示要映射的協議地址類型。它的值與包含IP數據報的以太網數據幀中的類型字段的值相同,這是有意設計的,為0x0800即表示IP包。

接下來的兩個1字節的字段,硬件地址長度和協議地址長度分別指出硬件地址和協議地址的長度,以字節為單位。對於以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4。操作字段指出四種操作類型,它們是ARP請求(值為1)、ARP應答(值為2)、RARP請求(值為3)和ARP應答(值為4)。

接下來的四個字段是發送端的硬件地址(在本例中是以太網地址)、發送端的協議地址(IP地址)、目的端的硬件地址和目的端的協議地址。注意,這裡有一些重複信息:在以太網?的數據幀報頭中和ARP請求數據幀中都有發送端的硬件地址。對於一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。當系統收到一份目的端為本機的ARP請求報文後,它就把硬件地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作字段置為2、最後把它發送回去。

由於ARP欺騙的木馬程序發作的時候會發出大量的數據包導致局域網通訊擁塞以及其自身處理能力的限制,用戶會感覺上網速度越來越慢。當ARP欺騙的木馬程序停止運行時,用戶會恢復從安全網關上網,切換過程中用戶會再斷一次線。



,