ARP欺騙原理,千萬(wàn)不要隨意連接免費(fèi)的WIFI!??!
一、ARP攻擊原理分析
1、什么是ARP協(xié)議?
ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫(xiě)。在局域網(wǎng)中,網(wǎng)絡(luò)中實(shí)際傳輸?shù)氖恰皫?,幀里面是有目?biāo)主機(jī)的MAC地址的。在以太網(wǎng)中,一個(gè)主機(jī)要和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。但這個(gè)目標(biāo)MAC地址是如何獲得的呢?它就是通過(guò)地址解析協(xié)議(ARP協(xié)議)獲得的。所謂“地址解析”就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。
此處涉及到OSI七層模型,ARP協(xié)議就是工作在OSI七層模型中的第二層數(shù)據(jù)鏈路層,它在這一層不是采用IP來(lái)通信的,而是采用MAC地址來(lái)通信的,是以 幀 來(lái)傳輸?shù)模?/p>
OSI七層模型:
- 物理層
- 數(shù)據(jù)鏈路層(ARP協(xié)議)
- 網(wǎng)絡(luò)層(網(wǎng)絡(luò)層才是使用IP地址來(lái)通信的)
- 傳輸層
- 會(huì)話(huà)層
- 表示層
- 應(yīng)用層
2、ARP欺騙的危害
ARP欺騙可以造成內(nèi)部網(wǎng)絡(luò)的混亂,讓某些被欺騙的計(jì)算機(jī)無(wú)法正常訪(fǎng)問(wèn)內(nèi)外網(wǎng),讓網(wǎng)關(guān)無(wú)法和客戶(hù)端正常通信,也可以截取全網(wǎng)絡(luò)數(shù)據(jù)包等。實(shí)際上他的危害還不僅僅如此,一般來(lái)說(shuō)IP地址的沖突我們可以通過(guò)多種方法和手段來(lái)避免,而ARP協(xié)議工作在更低層,隱蔽性更高,很難發(fā)現(xiàn)。系統(tǒng)并不會(huì)判斷ARP緩存的正確與否,無(wú)法像IP地址沖突那樣給出提示。
像網(wǎng)絡(luò)執(zhí)法官、聚生網(wǎng)管等軟件可以控制整個(gè)內(nèi)網(wǎng)的流量,可以限制網(wǎng)速、帶寬等,它們都是利用ARP欺騙的方式來(lái)進(jìn)行操作的。做的好的ARP欺騙工具發(fā)送數(shù)據(jù)包是比較穩(wěn)定的,去竊取你的賬戶(hù)密碼等敏感信息時(shí)都很難被發(fā)現(xiàn)。
上述ARP欺騙是常見(jiàn)的ARP欺騙,常見(jiàn)危害,還有其他危害,
例如:通過(guò)ARP在整個(gè)內(nèi)網(wǎng)掛馬插入惡意代碼,在內(nèi)網(wǎng)主機(jī)訪(fǎng)問(wèn)web站點(diǎn)的時(shí)候針對(duì)這些Internet站點(diǎn)全部掛馬;或者是針對(duì)無(wú)線(xiàn)網(wǎng)進(jìn)行釣魚(yú),很多人在火車(chē)站、飛機(jī)場(chǎng)等公共地方使用免費(fèi)WiFi,當(dāng)去連接這些WIFI打開(kāi)釣魚(yú)的web站點(diǎn)的時(shí)候就會(huì)下載木馬到手機(jī)中竊取個(gè)人信息、刷廣告鏈接等。像以前有很便宜的路由器,使用之后經(jīng)常跳出廣告,這些都是利用ARP欺騙來(lái)操作的。
3、ARP欺騙的原理
ARP欺騙的原理就是:把自己的MAC地址偽造成網(wǎng)關(guān)的地址來(lái)欺騙其它的主機(jī)。
圖片
實(shí)施中間人攻擊時(shí),攻擊者??紤]的方式是ARP欺騙或DNS欺騙等。下面以常見(jiàn)ARP欺騙為例來(lái)介紹一下ARP欺騙原理。
一般情況下,ARP欺騙并不是使網(wǎng)絡(luò)無(wú)法正常通信,而是通過(guò)冒充網(wǎng)關(guān)或其他主機(jī)使得到達(dá)網(wǎng)關(guān)或主機(jī)的數(shù)據(jù)流通過(guò)攻擊主機(jī)進(jìn)行轉(zhuǎn)發(fā)。通過(guò)轉(zhuǎn)發(fā)流量可以對(duì)流量進(jìn)行控制和查看,從而控制流量或得到機(jī)密信息。ARP欺騙主機(jī)的流程如下圖所示:
圖片
如上圖所示,當(dāng)主機(jī)A和主機(jī)B之間通信時(shí),如果主機(jī)A在自己的ARP緩存表中沒(méi)有找到主機(jī)B的MAC地址時(shí)(如果找到是不會(huì)廣播的),主機(jī)A將會(huì)向整個(gè)局域網(wǎng)中所有計(jì)算機(jī)發(fā)送ARP廣播,廣播后整個(gè)局域網(wǎng)中的(即在同一個(gè)交換機(jī)下面的)計(jì)算機(jī)都收到了該廣播數(shù)據(jù)包。這時(shí)候,主機(jī)C響應(yīng)主機(jī)A,欺騙說(shuō)我就是主機(jī)B,我的MAC地址是XX-XX-XX-XX-XX-XX,主機(jī)A收到地址后就會(huì)重新更新自己的緩沖表。當(dāng)主機(jī)A再次與主機(jī)B通信時(shí),該數(shù)據(jù)將被轉(zhuǎn)發(fā)到攻擊主機(jī)(主機(jī)C)上,則該數(shù)據(jù)流會(huì)經(jīng)過(guò)主機(jī)C轉(zhuǎn)發(fā)到主機(jī)B。
當(dāng)然,在上述過(guò)程中,在最后主機(jī)C也可能不轉(zhuǎn)發(fā)數(shù)據(jù)給主機(jī)B,那么這種情況就屬于ARP欺騙中的單向ARP欺騙。單向ARP欺騙一般是不會(huì)影響到主機(jī)B的,但是雙向的ARP欺騙是會(huì)影響到主機(jī)B的。
ARP欺騙此處在老師的講解中分為三種:
1)單向ARP欺騙(我的理解是單向ARP欺騙不轉(zhuǎn)發(fā)流量給原有的目標(biāo)主機(jī))
2)雙向ARP欺騙(我的理解是雙向ARP欺騙會(huì)轉(zhuǎn)發(fā)流量給原有的目標(biāo)主機(jī))
3)單向ARP欺騙和雙向ARP欺騙中也是分兩種:欺騙網(wǎng)關(guān) 和 欺騙主機(jī)
什么是雙向ARP欺騙?
答:接著以上述示例為例,如果A要跟B正常通訊,C向A說(shuō)我是才B。C向B說(shuō)我才是A,那么這樣的情況下會(huì)把A跟B的ARP緩存表全部修改了。以后通訊過(guò)程就是 A把數(shù)據(jù)發(fā)送給C,C再發(fā)送給B,B把數(shù)據(jù)發(fā)送C,B再把數(shù)據(jù)給A。
什么是ARP欺騙網(wǎng)關(guān)?
答:上面講解的都是單雙向ARP欺騙主機(jī),是欺騙內(nèi)網(wǎng)主機(jī)自己的攻擊機(jī)才是目標(biāo)主機(jī),而ARP欺騙網(wǎng)關(guān)是欺騙內(nèi)網(wǎng)主機(jī)自己的攻擊機(jī)才是網(wǎng)關(guān)。攻擊者首先是通過(guò)一臺(tái)內(nèi)網(wǎng)主機(jī)發(fā)送廣播包給當(dāng)前交換機(jī)下的所有的內(nèi)網(wǎng)主機(jī)和網(wǎng)關(guān),告訴它們我是網(wǎng)關(guān),此時(shí),它們分別更新其ARP緩存表,會(huì)將攻擊者的MAC地址當(dāng)作網(wǎng)關(guān),當(dāng)內(nèi)網(wǎng)的其他主機(jī)之間進(jìn)行通信的時(shí)候就會(huì)先經(jīng)過(guò)認(rèn)為是網(wǎng)關(guān)的攻擊者的主機(jī),它們之間數(shù)據(jù)都被攻擊主機(jī)截獲。
實(shí)現(xiàn)ARP欺騙攻擊的必備條件:
1)首先攻擊者需要獲取到一臺(tái)內(nèi)網(wǎng)主機(jī)。如果是通過(guò)外網(wǎng)主機(jī)發(fā)起ARP欺騙攻擊是不行的,因?yàn)橥饩W(wǎng)連接內(nèi)網(wǎng)是通過(guò)網(wǎng)絡(luò)層的IP來(lái)通信的,但是ARP工作在數(shù)據(jù)鏈路層。因此,攻擊者需要獲取到一臺(tái)內(nèi)網(wǎng)主機(jī)才能發(fā)起ARP欺騙攻擊。
2)對(duì)方的內(nèi)網(wǎng)沒(méi)有采用ARP防護(hù)。目前,其實(shí)大部分企業(yè)都沒(méi)有采用ARP防護(hù)。
ARP防護(hù)方法介紹:
方法1:在路由器和交換機(jī)上做配置,去將端口、IP地址、MAC地址、網(wǎng)關(guān)全部綁死,但是這種方法有一個(gè)缺點(diǎn):如果公司很大,那么當(dāng)有人的電腦的IP地址一變,就需要再去路由器和交換機(jī)上改這些配置,這樣太麻煩,會(huì)累死人...因此,一般情況下都是針對(duì)幾個(gè)服務(wù)器去綁定以下,個(gè)人服務(wù)器不會(huì)去綁定。
方法2:主機(jī)自身綁定自己的IP和MAC地址,再將網(wǎng)關(guān)的IP和MAC地址綁定好。但是這種方法對(duì)于不懂電腦的小白用戶(hù)顯得麻煩,他們不會(huì)去綁定的..且這種方法的缺點(diǎn)是會(huì)讓電腦變成靜態(tài)的IP地址,但是現(xiàn)在很多電腦都是DHCP自動(dòng)獲取IP的。
補(bǔ)充1:因?yàn)槠髽I(yè)ARP防護(hù)比較困難,于是衍生出安全軟件自身的ARP防火墻功能,但是默認(rèn)情況下,像360安全衛(wèi)士是不啟用ARP防火墻的,需要手動(dòng)開(kāi)啟。
補(bǔ)充2:使用命令 arp -a查看arp緩存表
二、ARP攻擊防范
防范策略:
1、不要隨意登錄免費(fèi)的WIFI,沒(méi)人知道免費(fèi)的WIFI是不是有惡意的攻擊者在搞鬼;
2、使用ARP綁定,避免被ARP欺騙;
手工靜態(tài)綁定IP和MAC地址的方法示例:編寫(xiě)一個(gè)批處理文件命名為xx.bat,將批處理文件放到“Windows→開(kāi)始→程序→啟動(dòng)”中,當(dāng)每次主機(jī)重啟時(shí)都會(huì)執(zhí)行該啟動(dòng)項(xiàng),如果需要立即生效,請(qǐng)直接運(yùn)行此文件或者是在命令行執(zhí)行。批處理文件內(nèi)容如下:
解釋?zhuān)?/p>
①?zèng)]綁定之前,ARP表是dynamic動(dòng)態(tài)的,而綁定后就變成static靜態(tài)了,使用arp -a查看
②ip與MAC地址根據(jù)具體情況修改,要先使用config查看。
3、開(kāi)啟電腦管家或者360安全衛(wèi)士的ARP防火墻或金山貝殼或彩影ARP防火墻;
4、使用https協(xié)議或者其他有保密協(xié)議的連接訪(fǎng)問(wèn)外網(wǎng),避免被坑。
企業(yè)解決ARP攻擊方案參考文檔:
1.https://wenku.baidu.com/view/89772efb7e192279168884868762caaedd33bade.html
解釋?zhuān)喝A為的解決方案就是買(mǎi)設(shè)備,添加認(rèn)證服務(wù)器
2.https://wenku.baidu.com/view/55efed86f71fb7360b4c2e3f5727a5e9856a27cd.html
解釋?zhuān)?/p>
①神州數(shù)碼的解決方案是在交換路由上劃分WLAN來(lái)解決內(nèi)網(wǎng)的ARP廣播風(fēng)暴的問(wèn)題。劃分WALN需要參照文檔敲命令去交換機(jī)中執(zhí)行,但是在企業(yè)里面這樣做會(huì)把人累死,并且,可能還會(huì)出現(xiàn)別人需要換網(wǎng)卡、更改IP地址等各種情況,這種方法是不現(xiàn)實(shí)的!因此會(huì)選擇采用DHCP Snooping和Bing Arp的方式去在內(nèi)網(wǎng)存在DHCP服務(wù)器的情況下去結(jié)合交換機(jī)路由去實(shí)現(xiàn)自動(dòng)化的動(dòng)態(tài)綁定。
②普通的交換機(jī)是沒(méi)用防止網(wǎng)段掃描這個(gè)功能的,但是企業(yè)的交換機(jī)是有的。
③注意:不同廠商的交換機(jī)路由設(shè)備中使用的命令可能是不一樣的,但是方法是一樣的,原理是一樣的。
補(bǔ)充:
①很多人說(shuō)ARP欺騙攻擊就是中間人攻擊,這種說(shuō)法不完全正確,應(yīng)該是中間人攻擊涵蓋了ARP攻擊,因?yàn)橄馜NS欺騙、DHCP欺騙等等也屬于中間人攻擊。
②就算使用上述四條防范策略也是不能完全防范ARP欺騙的,只能說(shuō)解決個(gè)人電腦60%的ARP攻擊,目前能夠徹底解決ARP欺騙的方法就是:在交換路由設(shè)備上劃分WLAN(指局域網(wǎng)),在WLAN里面綁定網(wǎng)關(guān),然后綁定主機(jī)的IP和MAC地址,從而隔離ARP廣播。(不太容易實(shí)現(xiàn),會(huì)累死管理人員)
③通過(guò)實(shí)驗(yàn)測(cè)試安全工具的防御效果證明:安全工具的ARP防火墻是不靠譜的,不能完全防御(當(dāng)然也不是完全沒(méi)用,是能夠解決部分ARP攻擊的,但是依然不靠譜...)
本文轉(zhuǎn)載自微信公眾號(hào)「 快樂(lè)程序猿」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系快樂(lè)程序猿公眾號(hào)。