企業(yè)ARP欺騙分析及防御:同網(wǎng)段ARP欺騙分析
在實(shí)現(xiàn)TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境下,一個(gè)IP包走到哪里、要怎么走是靠路由表定義的,但是,當(dāng)IP包到達(dá)該網(wǎng)絡(luò)后,哪臺機(jī)器響應(yīng)這個(gè)IP包卻是靠該IP包中所包含的硬件MAC地址來識別的。也就是說,只有機(jī)器的硬件MAC地址和該IP包中的硬件MAC地址相同的機(jī)器才會(huì)應(yīng)答這個(gè)IP包,因?yàn)樵诰W(wǎng)絡(luò)中,每一臺主機(jī)都會(huì)有發(fā)送IP包的時(shí)候,所以,在每臺主機(jī)的內(nèi)存中,都有一個(gè)arp--〉硬件MAC的轉(zhuǎn)換表。通常是動(dòng)態(tài)的轉(zhuǎn)換表(該arp表可以手工添加靜態(tài)條目)。也就是說,該對應(yīng)表會(huì)被主機(jī)在一定的時(shí)間間隔后刷新。這個(gè)時(shí)間間隔就是ARP高速緩存的超時(shí)時(shí)間。通常主機(jī)在發(fā)送一個(gè)IP包之前,它要到該轉(zhuǎn)換表中尋找和IP包對應(yīng)的硬件MAC地址,如果沒有找到,該主機(jī)就發(fā)送一個(gè)ARP廣播包,于是,主機(jī)刷新自己的ARP緩存。然后發(fā)出該IP包。
了解這些常識后,現(xiàn)在就可以介紹在以太網(wǎng)絡(luò)中ARP欺騙是如何產(chǎn)生了,可以看看如下一個(gè)例子。
同網(wǎng)段ARP欺騙分析
如下所示,三臺主機(jī)的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。
一個(gè)位于主機(jī)B的入侵者想非法進(jìn)入主機(jī)A,可是這臺主機(jī)上安裝有防火墻。通過收集資料他知道這臺主機(jī)A的防火墻只對主機(jī)C有信任關(guān)系(開放23端口(telnet))。而他必須要使用telnet來進(jìn)入主機(jī)A,這個(gè)時(shí)候他應(yīng)該如何處理呢?
入侵者必須讓主機(jī)A相信主機(jī)B就是主機(jī)C,如果主機(jī)A和主機(jī)C之間的信任關(guān)系是建立在IP地址之上的。如果單單把主機(jī)B的IP地址改的和主機(jī)C的一樣,那是不能工作的,至少不能可靠地工作。如果你告訴以太網(wǎng)卡設(shè)備驅(qū)動(dòng)程序,自己IP是192.168.0.3,那么這只是一種純粹的競爭關(guān)系,并不能達(dá)到目標(biāo)。我們可以先研究C這臺機(jī)器,如果我們能讓這臺機(jī)器暫時(shí)當(dāng)?shù)?,競爭關(guān)系就可以解除,這個(gè)還是有可能實(shí)現(xiàn)的。在機(jī)器C宕掉的同時(shí),將機(jī)器B的IP地址改為192.168.0.3,這樣就可以成功的通過23端口telnet到機(jī)器A上面,而成功的繞過防火墻的限制。
上面的這種想法在下面的情況下是沒有作用的,如果主機(jī)A和主機(jī)C之間的信任關(guān)系是建立在硬件地址的基礎(chǔ)上。這個(gè)時(shí)候還需要用ARP欺騙的手段,讓主機(jī)A把自己的ARP緩存中的關(guān)于192.168.0.3映射的硬件地址改為主機(jī)B的硬件地址。
我們可以人為地制造一個(gè)arp_reply的響應(yīng)包,發(fā)送給想要欺騙的主機(jī),這是可以實(shí)現(xiàn)的,因?yàn)閰f(xié)議并沒有規(guī)定必須在接收到arp_echo后才可以發(fā)送響應(yīng)包。這樣的工具很多,我們也可以直接用Wireshark抓一個(gè)arp響應(yīng)包,然后進(jìn)行修改。
可以人為地制造這個(gè)包??梢灾付ˋRP包中的源IP、目標(biāo)IP、源MAC地址、目標(biāo)MAC地址。這樣你就可以通過虛假的ARP響應(yīng)包來修改主機(jī)A上的動(dòng)態(tài)ARP緩存達(dá)到欺騙的目的。
下面是具體的步驟:
他先研究192.0.0.3這臺主機(jī),發(fā)現(xiàn)這臺主機(jī)的漏洞。
根據(jù)發(fā)現(xiàn)的漏洞使主機(jī)C宕掉,暫時(shí)停止工作。
這段時(shí)間里,入侵者把自己的IP改成192.0.0.3。
他用工具發(fā)一個(gè)源IP地址為192.168.0.3源MAC地址為BB:BB:BB:BB:BB:BB的包給主機(jī)A,要求主機(jī)A更新自己的ARP轉(zhuǎn)換表。
主機(jī)更新了ARP表中關(guān)于主機(jī)C的IP-->MAC對應(yīng)關(guān)系。
防火墻失效了,入侵的IP變成合法的MAC地址,可以telnet了。
上面就是一個(gè)ARP的欺騙過程,這是在同網(wǎng)段發(fā)生的情況,但是,提醒注意的是,在B和C處于不同網(wǎng)段的時(shí)候,上面的方法是不起作用的。