- ARP是什麼?
- ARP協議工作原理
- ARP協議下的攻擊原理
- 攻擊軟體
- 防範
- Reference
ARP是什麼?
ARP是透過網路地址(IP)來定位機器MAC地址的協議,它透過解析網路層地址(IP)來找尋資料鏈路層地址(MAC)的網路傳輸協議。
對個定義不能理解的話,可以結合 TCP/IP 模型圖理解,如下:
ARP已經在很多網路層和資料連結層之間得以實現。不過在IPv6中用鄰居發現協議(NDP)代替地址解析協議(ARP)。
我的理解,ARP協議類似程式設計中的底層系統函式,一般使用者用不到,或者沒有太多單獨使用場景。它一般結合著上層的協議使用,比如上層的TCP、UDP協議在發包的時候,都必須要得到一些通訊引數,比如本機IP,本機MAC,目標IP,目標MAC,如果在缺失MAC地址的時候,就會自動呼叫ARP協議,ARP會去自動獲取到對方的MAC地址,並填充回來。
ARP協議工作原理
ARP協議的目的:
根據IP地址,獲取到機器的MAC地址。
因為IP地址和MAC地址是兩個關鍵的通訊引數,沒有他倆就做不了。
為什麼要找MAC:
IP和MAC都是用來定位機器的,
IP地址的主要作用是在跨越不同網路的情況下進行通訊時對裝置進行定址,以便把資料包正確地傳送到目標計算機。
IP地址是邏輯地址,用於在網路層定址和路由選擇。
IP地址可以分為公共IP地址和私有IP地址。私有IP地址是在區域網中使用的,只在區域網內部有效,用於在區域網中進行內部通訊。
MAC地址在網路介面控制器(NIC)中預設,一般由裝置製造商分配,具有全球唯一性。
在區域網中,裝置之間的通訊通常是透過MAC地址實現的,而不是透過IP地址。
下面將講解ARP協議怎麼能拿到對方MAC的過程,主要分為三個步驟:
- 廣播找MAC過程
- 快取IP、MAC過程
- 更新快取過程
廣播找MAC過程:
比如說你已經有一個目標IP地址了,你想找這個IP的MAC地址,那麼ARP會這樣做,它會向路由(或交換機)廣播一條訊息,上面主要填寫自己機器的資訊,和想要的資訊:
- 網路層:
目標IP
表示要找個這個IP的MAC地址; - 網路層:
目標MAC
00:00:00:00:00:00 表示要找這個機器的MAC地址,先用0佔位; - 鏈路層:
目標MAC
ff:ff:ff:ff:ff:ff 表示在資料鏈路層進行廣播,查詢這個目標IP的MAC;
區域網內的所有機器,都會收到這條訊息。
快取IP、MAC過程:
非目標機器收到這條訊息,知道不是找它,直接丟棄。
當目標IP機器收到這條訊息後,知道是在找他,他就給這個源IP和源MAC回覆一條訊息,說我的MAC是XXX,你備份一下吧。
源IP機器收到目標機器的MAC後,防止後期還要用到,又要去找,浪費時間,就在本地快取一份。
所以每臺主機都會快取一份自己常用的IP和MAC地址表
,類似下面的圖:
更新快取過程:
區域網內,IP地址是可以變更的,當有一臺或多臺機器的IP傳送了改變,那麼他們本地維護的快取表不就沒法使用了?或者就亂套了,想找張三,變成找到李四了。
解決:
在變更了自己的IP之後,那麼他們就會在區域網內傳送一個特殊ARP包,內容大致是說,我的IP地址變更了,MAC地址也附上,你們也把自己的快取更新一下。然後區域網內的所有機器,都屁顛屁顛的跟著更新自己的快取。
ARP協議下的攻擊原理
更新快取這個功能其實是個正常的功能,因為有些機器IP地址就是會經常變更,發個通告出來,讓大家修改一下地址也沒毛病。
問題就在於,有心懷不軌的攻擊者,他就利用了這個不驗證、不鑑權就直接修改快取的機制。基於這個機制 ,攻擊者就可以開始攻擊了。
比如,他李四替換了張三的地址。更狠的,他直接把他自己主機地址和路由器的地址替換了,區域網內所有人的資料都往他機器上發了,他在轉發出去,然後他就能擷取別人的流量,別人的小秘密全被他知道了!
常見的攻擊型別如下:
-
ARP 快取投毒攻擊
使攻擊者能夠透過破壞網路的 ARP 表(MAC 到 IP 裝置對映)來攔截網路裝置之間的通訊。 -
ARP 欺騙閘道器攻擊
中間人攻擊是同時欺騙區域網內的主機和閘道器,區域網中使用者的資料和閘道器的資料會發給同一個攻擊者,這樣,使用者與閘道器的資料就會洩露。 -
ARP 泛洪攻擊
透過向閘道器傳送大量ARP報文,導致閘道器無法正常響應。首先傳送大量的ARP請求報文,然後又傳送大量虛假的ARP響應報文,從而造成閘道器部分的CPU利用率上升難以響應正常服務請求,而且閘道器還會被錯誤的ARP表充滿導致無法更新維護正常ARP表,消耗網路頻寬資源。 -
IP地址衝突攻擊
透過對區域網中的物理主機進行掃描,掃描出區域網中的物理主機的MAC地址,然後根據物理主機的MAC進行攻擊,導致區域網內的主機產生IP地址衝突,影響使用者的網路正常使用。
攻擊軟體
-
Ettercap
Ettercap的中間人攻擊,在它的選項欄裡有四種:ARP快取投毒,ICMP重定向,埠監聽,DHCP欺騙。
Ettercap的功能是很強大,從它的外掛就可以看到功能有:發現可疑ARP活動、ARP響應、DNS欺騙、Dos攻擊、發現連線(交換環境)、發現Ettercap活動、列出子網未使用的IP、隔離主機、MAC泛洪、ssltrip等。
-
WireShark
網路流量擷取、分析
防範
以下是一些防禦ARP投毒攻擊的方法:
-
使用靜態ARP表項:
在關鍵裝置上配置靜態ARP表項,避免動態ARP更新被惡意利用。 -
啟用ARP檢查:
在交換機上啟用ARP檢查功能,過濾非法的ARP報文。 -
部署ARP防護軟體:
使用專門的ARP防護軟體來監控和阻止可疑的ARP活動。 -
網路隔離:
將網路劃分為更小的廣播域,限制ARP廣播範圍。 -
加強網路監控:
實時監控網路流量,及時發現異常的ARP行為。 -
使用VPN:
對重要通訊使用VPN加密,防止ARP欺騙導致的資料洩露。 -
及時更新系統補丁:
保持作業系統和網路裝置韌體的最新更新,修復已知漏洞。 -
教育使用者:
培訓網路使用者識別潛在的ARP攻擊跡象。 -
使用安全協議:
在可能的情況下,使用更安全的協議如IPv6來替代ARP (IPv6替換了ARP協議)。 -
定期安全審計:
定期進行網路安全審計,檢查ARP表和網路配置。
這些方法可以綜合使用,以提高網路對ARP投毒攻擊的防禦能力。
Reference
一條影片講清楚什麼是ARP協議-ARP攻擊
https://www.bilibili.com/video/BV16t4y1d7ev/