返回列表 回復 發帖

ARP協議的安全問題和安全威脅

在實現TCP/IP協議的網路環境下,一個IP包走到哪里、要怎麼走是靠路由表定義的,但是,當IP包到達該網路後,哪臺機器回應這個IP包卻是靠該IP包中所包含的硬體MAC地址來識別的。也就是說,只有機器的硬體MAC地址和該IP包中的硬體MAC地址相同的機器才會應答這個IP包,因為在網路中,每一臺主機都會有發送IP包的時候,所以,在每臺主機的記憶體中,都有一個 arp--〉硬體MAC的轉換表。通常是動態的轉換表(該arp表可以手工添加靜態條目)。也就是說,該對應表會被主機在一定的時間間隔後刷新。這個時間間隔就是ARP高速緩存的超時時間。通常主機在發送一個IP包之前,它要到該轉換表中尋找和IP包對應的硬體MAC地址,如果沒有找到,該主機就發送一個 ARP廣播包,於是,主機刷新自己的ARP緩存。然後發出該IP包。

瞭解這些常識後,現在就可以介紹在以太網路中ARP欺騙是如何產生了,可以看看如下一個例子。

1.同網段ARP欺騙分析

如下所示,三臺主機的IP地址和MAC地址分佈如下:

A: IP地址 192.168.0.1 硬體地址 AA:AA:AA:AA:AA:AA;

B: IP地址 192.168.0.2 硬體地址 BB:BB:BB:BB:BB:BB;

C: IP地址 192.168.0.3 硬體地址 CC:CC:CC:CC:CC:CC。

一個位於主機B的入侵者想非法進入主機A,可是這臺主機上安裝有防火牆。通過收集資料他知道這臺主機A的防火牆只對主機C有信任關係(開放23端口(telnet))。而他必須要使用telnet來進入主機A,這個時候他應該如何處理呢?

入侵者必須讓主機A相信主機B就是主機C,如果主機A和主機C之間的信任關係是建立在IP地址之上的。如果單單把主機B的IP地址改的和主機C的一樣,那是不能工作的,至少不能可靠地工作。如果你告訴以太網卡設備驅動程式,自己IP是192.168.0.3,那麼這只是一種純粹的競爭關係,並不能達到目標。我們可以先研究C這臺機器,如果我們能讓這臺機器暫時當掉,競爭關係就可以解除,這個還是有可能實現的。在機器C宕掉的同時,將機器B的IP地址改為192.168.0.3,這樣就可以成功的通過23端口telnet到機器A上面,而成功的繞過防火牆的限制。

上面的這種想法在下面的情況下是沒有作用的,如果主機A和主機C之間的信任關係是建立在硬體地址的基礎上。這個時候還需要用ARP欺騙的手段,讓主機A把自己的ARP緩存中的關於192.168.0.3映射的硬體地址改為主機B的硬體地址。

我們可以人為地製造一個arp_reply的回應包,發送給想要欺騙的主機,這是可以實現的,因為協議並沒有規定必須在接收到arp_echo後才可以發送回應包。這樣的工具很多,我們也可以直接用Wireshark抓一個arp回應包,然後進行修改。

可以人為地製造這個包。可以指定ARP包中的源IP、目標IP、源MAC地址、目標MAC地址。這樣你就可以通過虛假的ARP回應包來修改主機A上的動態ARP緩存達到欺騙的目的。

下麵是具體的步驟。

(1)他先研究192.0.0.3這臺主機,發現這臺主機的漏洞。

(2)根據發現的漏洞使主機C宕掉,暫時停止工作。

(3)這段時間裏,入侵者把自己的IP改成192.0.0.3。

(4)他用工具發一個源IP地址為192.168.0.3源MAC地址為BB:BB:BB:BB:BB:BB的包給主機A,要求主機A更新自己的ARP轉換表。

(5)主機更新了ARP表中關於主機C的IP-->MAC對應關係。

(6)防火牆失效了,入侵的
返回列表