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