ARP緩存感染攻擊解析
對(duì)人們?nèi)鲋e,即所謂的“社會(huì)工程”,還包含了策略(已獲罪的黑客Kevin Mitnick有具體實(shí)施),例如假扮成一個(gè)公司的雇員這樣就可以和真正的雇員交換公司機(jī)密。要騙過(guò)計(jì)算機(jī)則包括許多不同的技術(shù),一個(gè)常用的是——ARP緩存中毒(ARP Cache Poisoning)——這是本文的核心。ARP中毒能讓局域網(wǎng)內(nèi)的黑客在其網(wǎng)內(nèi)造成巨大的網(wǎng)絡(luò)破壞。由于它通常是“不可治愈”的,因此每一個(gè)網(wǎng)絡(luò)管理員都應(yīng)該明白這種攻擊究竟是如何進(jìn)行的。
回顧ARP
在“計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ):什么是NIC, MAC和ARP?” ( 參見(jiàn)譯者的這篇譯文 ) 一文中,我們解釋了地址解析協(xié)議 (ARP, Address Resolution Protocol) 是如何將網(wǎng)絡(luò)設(shè)備的MAC地址和其IP地址關(guān)聯(lián)起來(lái)的,這樣在同一個(gè)局域網(wǎng)內(nèi)的設(shè)備就能相互知道彼此的存在。ARP基本上就是一種網(wǎng)絡(luò)上的點(diǎn)名。
ARP,一個(gè)十分簡(jiǎn)單的協(xié)議,僅僅只包含了4種消息類(lèi)型:
1. ARP請(qǐng)求。計(jì)算機(jī)A詢(xún)問(wèn)整個(gè)局域網(wǎng),“Who has this IP address?” (“誰(shuí)的IP地址是這個(gè)?”,英文為本來(lái)報(bào)文里的ASCII碼消息,譯者注)
2. ARP響應(yīng)。計(jì)算機(jī)B告訴計(jì)算機(jī)A,“I have that IP. My MAC address is [whatever it is].” (我的IP地址是那個(gè)。我的MAC地址是[XX:XX:XX:XX:XX:XX])
4. 反向ARP請(qǐng)求。和ARP請(qǐng)求的概念一樣,但是計(jì)算機(jī)A詢(xún)問(wèn),“Who has this MAC address?” (誰(shuí)的MAC地址是這個(gè)?)
4. 反向ARP響應(yīng)。計(jì)算機(jī)B告訴計(jì)算機(jī)A,“I have that MAC. My IP address is [whatever it is]” (我的MAC地址是那個(gè)。我的IP地址是XXX. XXX. XXX. XXX)
所有的網(wǎng)絡(luò)設(shè)備都有一個(gè)ARP映射表,就是內(nèi)存里的一小段存儲(chǔ)著目前該設(shè)備已經(jīng)匹配的IP地址和MAC地址對(duì)。ARP映射表確保該設(shè)備不會(huì)向它已經(jīng)通訊過(guò)的設(shè)備重復(fù)發(fā)送ARP請(qǐng)求。