局域网arp攻击_网络安全基础之ARP攻击和防御
本文轉(zhuǎn)載于 SegmentFault 社區(qū)
作者:吳小風(fēng)
前言
在看這篇文章之前,請大家先看下交換機(jī)的工作原理,不知大家有沒有想過數(shù)據(jù)鏈路層中頭部協(xié)議數(shù)據(jù)幀的目的MAC地址是如何獲取的呢?這就是今天的主角ARP協(xié)議,通過廣播來獲取IP地址對應(yīng)的MAC地址。
問:廣播有很多種,交換機(jī)可以廣播,ARP協(xié)議可以廣播,IP地址可以廣播等等,有啥區(qū)別嗎?
答:交換機(jī)廣播和ARP協(xié)議廣播比較容易混淆,因?yàn)槎际墙粨Q機(jī)上發(fā)生的事情,下面我們來看下這部分,IP地址廣播請看路由部分博客
交換機(jī)廣播
上圖會(huì)在下面闡述ARP原理和攻擊的時(shí)候同樣用到 ,結(jié)合上圖我們來看下交換機(jī)廣播的場合:
現(xiàn)做出如下假設(shè):三個(gè)小圓圈表示局域網(wǎng)內(nèi)的三臺網(wǎng)絡(luò)設(shè)備,IP地址分別為10.0.0.1、10.0.0.2、10.0.0.3;MAC地址分別為AA、BB、CC(簡寫,實(shí)際MAC長度為6個(gè)字節(jié))。長方形表示AA設(shè)備向CC設(shè)備通信時(shí)準(zhǔn)備發(fā)送的數(shù)據(jù)幀。
設(shè)備AA將數(shù)據(jù)發(fā)送到交換機(jī)1;
交換機(jī)解析數(shù)據(jù)幀,獲取目標(biāo)MAC,查詢MAC地址表,但是MAC地址表中沒有查到設(shè)備CC的MAC地址和交換機(jī)接口的關(guān)系,這個(gè)時(shí)候交換機(jī)為了知道誰的MAC是CC,則需要廣播,即交換機(jī)向每個(gè)端口都發(fā)送一份數(shù)據(jù)幀;
MAC地址不是CC的設(shè)備會(huì)忽略收到的數(shù)據(jù)幀,而MAC為CC的設(shè)備會(huì)接受數(shù)據(jù)幀,進(jìn)行下一步處理。
總結(jié):交換機(jī)只在MAC地址表沒有目標(biāo)MAC的時(shí)候才會(huì)廣播。
問:一開始長方形中的CC設(shè)備的MAC地址是怎么知道的呢?
答:這就是接下來要講的ARP協(xié)議的工作
ARP協(xié)議
還是以上圖交換機(jī)的原理圖為例,來分析下ARP協(xié)議的原理,現(xiàn)在做出假設(shè)長方形中的CC設(shè)備MAC地址AA設(shè)備一開始不知道,來分析下獲取CC設(shè)備MAC地址的流程:
數(shù)據(jù)幀中一開始因?yàn)椴恢繡C設(shè)備的MAC地址,這個(gè)時(shí)候需要將目標(biāo)MAC地址填充為FF-FF-FF-FF-FF-FF
假設(shè)工作在局域網(wǎng),交換機(jī)解析數(shù)據(jù)幀,獲取到目標(biāo)MAC地址為FF-FF-FF-FF-FF-FF,交換機(jī)會(huì)自動(dòng)廣播,將數(shù)據(jù)幀發(fā)送給局域網(wǎng)內(nèi)的每臺設(shè)備
局域網(wǎng)內(nèi)的所有設(shè)備解析數(shù)據(jù)幀,獲取到MAC地址為FF-FF-FF-FF-FF-FF,即便不是自己的MAC地址所有設(shè)備也會(huì)解析數(shù)據(jù)幀。目標(biāo)IP是自己的設(shè)備,則會(huì)封裝數(shù)據(jù)幀返回給發(fā)送者,并告知發(fā)送方自己的MAC地址;如果目標(biāo)IP不是自己,則相應(yīng)的設(shè)備會(huì)丟棄數(shù)據(jù)幀
收到CC設(shè)備的MAC后,AA設(shè)備會(huì)緩存到ARP緩存表。原因是為了避免下次發(fā)送數(shù)據(jù)給CC設(shè)備的時(shí)候,還要再次使用ARP協(xié)議去獲取MAC地址
總結(jié)ARP協(xié)議原理:
發(fā)送ARP廣播請求,請求內(nèi)容為我是xxx,我的MAC是xxx,IP是xxx的MAC是多少?
接受ARP單播應(yīng)答
問:ARP緩存表怎么看?
答:arp /help可以查看ARP相關(guān)的信息,arp /a可以查看本臺計(jì)算機(jī)的arp表數(shù)據(jù)
如下圖所示:
ARP攻擊
還是以上圖交換機(jī)的原理圖為例,來分析下ARP協(xié)議的攻擊,現(xiàn)在假設(shè)長方形中的CC設(shè)備的MAC地址AA設(shè)備一開始不知道,并假設(shè)BB為攻擊設(shè)備:
數(shù)據(jù)幀中因?yàn)椴恢繡C設(shè)備的MAC地址,這個(gè)時(shí)候需要將目標(biāo)MAC地址填充為FF-FF-FF-FF-FF-FF
假設(shè)工作在局域網(wǎng),交換機(jī)解析數(shù)據(jù)幀,獲取到目標(biāo)MAC地址為FF-FF-FF-FF-FF-FF,交換機(jī)會(huì)自動(dòng)廣播,將數(shù)據(jù)發(fā)送給局域網(wǎng)內(nèi)的每臺設(shè)備
局域網(wǎng)內(nèi)的所有設(shè)備解析數(shù)據(jù)幀,獲取到MAC地址為FF-FF-FF-FF-FF-FF,即便不是自己的MAC地址所有設(shè)備也會(huì)解析數(shù)據(jù)幀。目標(biāo)IP是自己的設(shè)備,則會(huì)封裝數(shù)據(jù)幀返回給發(fā)送者,并告知發(fā)送方自己的MAC地址;如果目標(biāo)IP不是自己,則相應(yīng)的設(shè)備會(huì)丟棄數(shù)據(jù)幀。但是這個(gè)時(shí)候BB為攻擊設(shè)備,即便數(shù)據(jù)幀中目標(biāo)IP不是自己,它會(huì)偽造自己的MAC地址,然后冒充CC設(shè)備做出ARP響應(yīng)
AA設(shè)備這時(shí)候會(huì)收到2個(gè)ARP響應(yīng)信息,如果CC設(shè)備的ARP響應(yīng)先到AA設(shè)備,BB設(shè)備后偽造的ARP響應(yīng)會(huì)覆蓋CC設(shè)備的ARP響應(yīng)。那么此時(shí)AA設(shè)備將無法與CC設(shè)備通信,因?yàn)锳A設(shè)備的ARP表中與CC設(shè)備IP對應(yīng)關(guān)系的MAC是BB設(shè)備的MAC,IP與MAC不匹配是無法通信的。
問:如果上述流程中BB設(shè)備的ARP響應(yīng)的信息先到AA設(shè)備,那么AA就可以與CC設(shè)備通信了嗎?
答:BB設(shè)備可以連續(xù)構(gòu)造ARP響應(yīng),只要AA設(shè)備再次發(fā)送ARP數(shù)據(jù)幀,BB設(shè)備也是可以攻擊AA設(shè)備通信的
問:AA雖然無法與CC設(shè)備通信,但CC設(shè)備可以與AA正常通信嗎?
答:可以的,因?yàn)镃C設(shè)備沒有遭到攻擊,CC設(shè)備ARP表里存儲的IP和MAC地址的關(guān)系是正確的
問:ARP攻擊是必須通過單播響應(yīng)才能出發(fā)嗎?
答:廣播也可以觸發(fā)ARP攻擊,而且范圍更廣。如果BB設(shè)備一直發(fā)送ARP廣播,冒充自己是網(wǎng)關(guān)(即構(gòu)造自己是網(wǎng)關(guān)的ARP響應(yīng)),那么局域網(wǎng)內(nèi)的所有設(shè)備(除了攻擊者)的ARP表里網(wǎng)關(guān)的IP地址和MAC地址關(guān)系都將不正確,造成的影響是斷網(wǎng)。
ARP欺騙
這次以ARP攻擊的例子為前提,來分析下ARP協(xié)議的欺騙,我們對上述流程中第三步做如下改變:
局域網(wǎng)內(nèi)的所有設(shè)備解析數(shù)據(jù)幀,獲取到MAC地址為FF-FF-FF-FF-FF-FF,即便不是自己的MAC地址所有設(shè)備也會(huì)解析數(shù)據(jù)幀。目標(biāo)IP是自己的設(shè)備,則會(huì)封裝數(shù)據(jù)幀返回給發(fā)送者,并告知發(fā)送方自己的MAC地址;如果目標(biāo)IP不是自己,則相應(yīng)的設(shè)備會(huì)丟棄數(shù)據(jù)幀。但是這個(gè)時(shí)候BB為攻擊設(shè)備,即便數(shù)據(jù)幀中目標(biāo)IP不是自己,BB卻還是用自己網(wǎng)卡真實(shí)的MAC地址,做出ARP響應(yīng)。
然后BB在與CC正常通信,這個(gè)時(shí)候BB起到中間轉(zhuǎn)發(fā)的作用,但是AA能與CC正常通信。BB設(shè)備可以實(shí)現(xiàn)監(jiān)聽、竊取、篡改、控制流量等目的,但不中斷AA設(shè)備和CC設(shè)備通信。
問:啥時(shí)候是ARP攻擊,啥時(shí)候是ARP欺騙?
答:攻擊者提供虛假報(bào)文的MAC就是ARP攻擊,攻擊者提供自己真實(shí)的MAC就是ARP欺騙
ARP防御
靜態(tài)ARP綁定
ARP表的靜態(tài)數(shù)據(jù)優(yōu)先級高于動(dòng)態(tài)數(shù)據(jù),因此我們直接在ARP表內(nèi)綁定IP和MAC的關(guān)系不會(huì)被動(dòng)態(tài)ARP響應(yīng)覆蓋。還是以上圖交換機(jī)的原理圖為例,比如AA設(shè)備手動(dòng)綁定網(wǎng)關(guān)的IP地址和MAC地址,那么AA設(shè)備即便遭到ARP攻擊,也不會(huì)出現(xiàn)斷網(wǎng)的情況。雖然會(huì)收到冒充自己是網(wǎng)關(guān)的ARP攻擊響應(yīng),但是會(huì)置之不理。同樣AA設(shè)備和CC設(shè)備互相通信,雙方互相綁定了AA和CC設(shè)備的IP和MAC地址,這時(shí)候BB設(shè)備即使想進(jìn)行ARP欺騙,也無法實(shí)現(xiàn)。
問:靜態(tài)ARP綁定怎么感覺有點(diǎn)不方便呢?
答:為了防止遭到ARP攻擊,需要收集所有要進(jìn)行通信的設(shè)備IP和MAC,然后添加到自己的ARP表里面,更要命的是ARP表是存放在內(nèi)存中,機(jī)器重啟后需要重新輸入所有設(shè)備的IP和MAC地址關(guān)系,相當(dāng)麻煩。
硬件級ARP防御
上述靜態(tài)ARP綁定的方式工作量太大,要想從根本上解決ARP攻擊,還需要從交換機(jī)上下手。交換機(jī)原本工作在二層,只能識別數(shù)據(jù)幀,但是為了解決dhcp攻擊和ARP攻擊等,企業(yè)級交換機(jī)增加了解析其它上層協(xié)議的功能【當(dāng)然相應(yīng)的價(jià)格就貴了】。解決ARP攻擊的方案是在交換機(jī)上綁定每個(gè)端口的IP(配合DHCP服務(wù)器)和MAC地址的關(guān)系。
第一次BB設(shè)備與交換機(jī)通信,交換機(jī)記錄下BB設(shè)備的端口IP和MAC地址關(guān)系;
當(dāng)BB設(shè)備攻擊,冒充自己是CC的時(shí)候,假如想進(jìn)行攻擊,就需要偽造自己的MAC,那么交換機(jī)檢測到MAC與原來的記錄不一樣就會(huì)進(jìn)行攔截。假如想進(jìn)行欺騙,勢必需要冒充CC的IP才行,這時(shí)候交換機(jī)檢測到IP與原來記錄的IP不一樣同樣會(huì)把攻擊攔截了。
-?END -
總結(jié)
以上是生活随笔為你收集整理的局域网arp攻击_网络安全基础之ARP攻击和防御的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10休眠设置_电脑总是“打瞌睡”?
- 下一篇: 将同时共享的用户数量限制为20_共享充电