【正文】
為: 下載后解壓縮,運(yùn)行包內(nèi) 文件,不要關(guān)讓它一直運(yùn)行完,最后查看 report 文檔便知是否中毒。注意有使用 SNMP 的情況下, ARP 的欺騙有可能導(dǎo)致陷阱包丟失。 管理員定期輪詢,檢查主機(jī)上的 ARP 緩存。(靜態(tài) 配置 路由ARP 條目),注意,使用交換 集線器 和 網(wǎng)橋 無法阻止 ARP 欺騙。 使用硬件屏蔽主機(jī)。確保這臺(tái) ARP 服務(wù)器不被黑。 使用 ARP 服務(wù)器。 設(shè) 置靜態(tài)的 MACIP 對(duì)應(yīng)表,不要讓主機(jī)刷新你設(shè)定好的轉(zhuǎn)換表。 常見 ARP 欺騙形式 假冒 ARP reply 包(單播) XXX, I have IP YYY and my MAC is ZZZ! 假冒 ARP reply 包(廣播) Hello everyone! I have IP YYY and my MAC is ZZZ! 向所有人散布虛假的 IP/MAC 假冒 ARP request(廣播) I have IP XXX and my MAC is YYY. Who has IP ZZZ? tell me please! 表面為找 IP ZZZ 的 MAC,實(shí)際是廣播虛假的 IP、 MAC 映射( XXX, YYY) 假冒 ARP request(單播) 已知 IP ZZZ 的 MAC Hello IP ZZZ! I have IP XXX and my MAC is YYY. 假冒中間人 欺騙主機(jī)( MAC 為 MMM)上啟用包轉(zhuǎn)發(fā) 向主機(jī) AAA 發(fā)假冒 ARP Reply: AAA, I have IP BBB and my MAC is MMM, 向主機(jī) BBB 發(fā)假冒 ARP Reply: BBB, I have IP AAA and my MAC is MMM 由于 ARP Cache 的老化機(jī)制,有時(shí)還需要做周期性連續(xù)欺騙。它是無狀態(tài)的協(xié)議,不會(huì)檢查自己是否發(fā)過請(qǐng)求包,也不管(其實(shí)也不知道)是否是合法的應(yīng)答,只要收到目標(biāo) MAC 是自己的 ARP reply 包或 arp 廣播包(包括 ARP request 和 ARP reply),都會(huì)接受并 緩存 。同時(shí)需要注意的是, ARP協(xié)議只使用于本網(wǎng)絡(luò)。 知道了 ARP協(xié)議的作用,就能夠很清楚地知道,數(shù)據(jù)包的向外傳輸很依靠 ARP協(xié)議,當(dāng)然,也就是依賴 ARP緩存。該過程需要經(jīng)過下面的步驟: 應(yīng)用程序構(gòu)造數(shù)據(jù)包,該示例是產(chǎn)生 ICMP包,被提交給內(nèi)核(網(wǎng)絡(luò)驅(qū)動(dòng)程序); 內(nèi)核檢查是否能夠轉(zhuǎn)化該 IP 地址為 MAC 地址,也就是在本地的 ARP緩存中查看 IPMAC對(duì)應(yīng)表; 如果存在該 IPMAC 對(duì)應(yīng)關(guān)系,那么跳到步驟 9;如果不存在該 IPMAC 對(duì)應(yīng)關(guān)系,那么接續(xù)下面的步驟; 內(nèi)核進(jìn)行 ARP廣播,目的地的 MAC地址是 FFFFFFFFFFFF, ARP命令 類型為 REQUEST( 1),其中包含有自己的 MAC地址; 當(dāng) ARP請(qǐng)求后,就發(fā)送一個(gè) ARP的 REPLY( 2)命令,其中包含自己的 MAC地址; 本地獲得 主機(jī)的 IPMAC地址對(duì)應(yīng)關(guān)系,并保存到 ARP緩存中; 內(nèi)核將把 IP轉(zhuǎn)化為 MAC地址,然后封裝在以太網(wǎng)頭結(jié)構(gòu)中,再把數(shù)據(jù)發(fā)送出去; 使用 arpa命令就可以查看本地的 ARP緩存內(nèi)容,所以,執(zhí)行一個(gè)本地的 PING命令后,ARP 緩存就會(huì)存在一個(gè)目的 IP 的記錄 了。 假設(shè)我們的計(jì)算機(jī) IP地址是 ,要執(zhí)行這個(gè)命令: 。 為了解釋 ARP 協(xié)議的作用,就必須理解數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸過程。/*目標(biāo)的硬件地址 */ unsignedlongarp_tpa。/*發(fā)送者的硬件地址 */ unsignedlongarp_spa。/*協(xié)議地址長度 */ unsignedshortarp_op。/*協(xié)議類型 */ unsignedchararp_hln。 ARP協(xié)議的 數(shù)據(jù)結(jié)構(gòu) : Typedefstructarphdr { unsignedshortarp_hrd。內(nèi)核(如驅(qū)動(dòng))必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。現(xiàn)在 D 就完全成為 A 與 C 的中間橋梁了,對(duì)于 A和 C 之間的通訊就可以了如指掌了。 D 直接進(jìn)行整個(gè)包的修改轉(zhuǎn)發(fā),捕獲到 A 發(fā)送給 C 的數(shù)據(jù)包,全部進(jìn)行修改后再轉(zhuǎn)發(fā)給 C,而 C 接收到的數(shù)據(jù)包完全認(rèn)為是從 A 發(fā)送來的。打開 D 的 IP 轉(zhuǎn)發(fā)功能, A 發(fā)送過來的數(shù)據(jù)包,轉(zhuǎn)發(fā)給 C,好比一個(gè)路由器一樣。 D 對(duì)