天天看點

解析中間人攻擊(1/4)---ARP緩存中毒

本系列将讨論最常被使用的中間人攻擊形式,包括ARP緩存中毒攻擊(ARP Cache Poisoning)、DNS欺騙(DNS Spoofing)、HTTP會話劫持等。

  導言

  用于攻擊個人以及企業的最常見的網絡攻擊方式就是中間人攻擊(MITM)。作為一種主動竊聽攻擊方式,中間人攻擊方式主要是通過與目标機器建立連接配接并在目标機器間傳遞資訊來發動攻擊。在這種情況下,使用者會認為自己正在與另一名使用者直接通信,而實際上,通過主機的通信流量正在對使用者執行攻擊。最終結果是,攻擊主機不僅能截取重要資訊,而且能夠注入資料流來進一步控制受害使用者。

  在本系列文章中,我們将讨論最常被使用的中間人攻擊形式,包括ARP緩存中毒攻擊(ARP Cache Poisoning)、DNS欺騙(DNS Spoofing)、HTTP會話劫持等。在實際情況中,你會發現,大多數受害使用者使用的都是windows系統,是以我們将詳細分析運作不同版本的windows系統時中間人攻擊的情況。

  ARP緩存中毒

  在本文中我們将主要探讨ARP緩存中毒,這也是現代中間人攻擊中最早出現的攻擊形式,ARP緩存中毒(有時也被稱為ARP中毒路由)能夠讓與受害使用者在相同子網的攻擊者竊取使用者的所有網絡留戀。我們首先讨論這種攻擊形式是因為,它是最容易執行的攻擊形式,但也是最有效的攻擊形式。

  正常ARP通信

  ARP協定的主要目的在于簡化OSI模型第二層和第三層間位址的翻譯。第二層(也就是資料鍊層)使用MAC位址,以便硬體裝置可以在小範圍内直接進行通信。第三層(也就是網絡層)使用IP位址(最常見的形式)來建立連通世界各地使用者的大規模網絡。資料鍊層直接處理連接配接在一起的裝置,而網絡層處理那些直接以及間接連接配接的裝置,每一層都有自己的位址形式,他們必須合作才能實作網絡通信。正是由于這個原因,ARP與RFC826(以太網位址解析協定)一起被建立。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖1:ARP通信過程

  ARP運作實際上是圍繞兩個資料包進行的:ARP請求和ARP回複。請求和回複的目的在于确定與特定IP位址相關的硬體MAC位址,這樣流量才能夠在網絡上找到目的地。請求資料包被發送給網絡段上的每台裝置并發出資訊“我的IP位址是XX.XX.XX.XX,我的MAC位址是XX:XX:XX:XX:XX:XX,我需要将資訊發送給這個IP位址XX.XX.XX.XX,但是我不知道它的硬體位址,請這個IP位址将其MAC位址回複給我?”回複會以ARP回複資料包的形式,并回複說“你好,傳遞裝置,我就是你要找的IP位址XX.XX.XX.XX,我的MAC位址是XX:XX:XX:XX:XX:XX”,收到回複後,傳遞裝置會更新其ARP快取記錄,然後裝置就可以與另一台裝置進行通信。

  緩存中毒

  ARP緩存中毒利用了ARP協定不安全的本質。ARP協定有别于其他協定,例如DNS協定可以配置為僅接受安全動态更新,而使用ARP的裝置則可以接受任何時間的更新。這意味着任何機器都可以向另一台主機發送ARP回複資料包,并迫使主機更新其ARP緩存。發送ARP回複而沒有生成請求時,此時被成為無效ARP。當惡意攻擊者以這種方式放置一些無效ARP時,使用者就會認為他們正在與另一使用者通信,而實際上是與竊取資訊的攻擊者通信。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖2: ARP緩存中毒截取通信

  使用Cain & Abel工具

  讓我們從具體情況來分析,攻擊者會使用幾種不同的工具執行必要的步驟以毒化受害者的ARP緩存,我們将使用常見的安全工具Cain & Abel來模拟緩存中毒攻擊。Cain & Abel是非常有效的安全工具,并且安裝過程也十分簡單。

  在開始模拟緩存中毒前,你需要收集一些資訊,包括你此次模拟攻擊希望使用的網絡接口,以及兩個通信受害者IP位址。

  當你第一次打開Cain & Abel工具時,你會發現在視窗上方有很多頁籤,我們隻需要使用Sniffer選項,當你點選此按鈕,你會看到一個空表。為了完成此表格,你需要激活該程式的内置嗅探器并且掃描你的網絡。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖3: Cain&Abel工具的Sniffer選項

  點選工具欄上的第二個圖示,類似于網絡卡。首次操作時,會要求你選擇你希望嗅探的接口,這個接口應該是連接配接到你将要執行ARP緩存中毒攻擊的接口。選擇好接口後,點選确認來激活Cain & Abel的内置嗅探器。此時,工具欄圖示會變暗。為網絡中有效主機建立清單,你需要點選類似+符号的主要工具欄,點選确認。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖4:掃描主機  

  之前的空表格現在以及填滿了所有連接配接網絡上的主機名,以及MAC位址、IP位址以及供應商驗證資訊,這些是發動ARP緩存中毒攻擊的有利資訊。

  在程式視窗的地步,你會看到一組标簽,這些标簽将引領你到嗅探器的其他視窗。現在你已經建立了主機清單,你需要從ARP标簽開始,點選标簽以切換到ARP視窗。

  打開ARP視窗後,你會看到兩個空表格:上表和下表。設定好這兩個表格後,上表會顯示ARP緩存中毒涉及的裝置,下表會顯示中毒機器間的所有通信。

  點選程式的标準工具欄上的+符号的圖示以繼續設定ARP中毒,顯示的視窗有并排兩個選擇列,在左側,你會看到所有有效主機的清單。點選其中一個IP位址,你會看到,右邊視窗顯示的是網絡中所有主機,而沒有顯示你所選擇的IP位址。在右邊視窗,點選另一個受害者的IP位址,然後點選确認。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖5:選擇緩存中毒的攻擊主機

  這些裝置的IP位址現在都被列在主要程式視窗的上表中,為了完成這個操作,請點選标準工具欄的黃黑色放射符号。這樣将激活Cain & Abel的ARP緩存中毒功能并允許系統成為受害機器間所有通信的中間人。如果你很好奇背後發生的情況,可以安裝wireshark并竊聽接口,你很快會看到受害電腦間的通信。

  

解析中間人攻擊(1/4)---ARP緩存中毒

  圖6:ARP通信注射

  完成以上操作後,隻要再次點選黃黑色發射符号就可以停止ARP緩存中毒。

  防禦ARP緩存中毒

  從防禦者的角度來看ARP緩存中毒攻擊似乎處于不利的位置,ARP程序在背景進行,我們很難控制。并沒有萬能的解決方案,你可以采用主動和被動的立場來考慮ARP緩存中毒。

  保護區域網路安全

  ARP緩存中毒的确是截取位于相同區域網路的兩台主機間的通信的可行的攻擊技術,但隻有當網絡上的本地裝置比破壞,受信任使用者有惡意企圖,或者某使用者試圖将不可信裝置接入網絡時,ARP緩存中毒攻擊才可能造成真正的威脅。盡管我們往往将主要精力集中在保護網絡外圍安全上,但抵禦内部威脅以及確定内部安全絕對可以更好的確定系統安全。

  寫死ARP緩存

  抵禦ARP請求和回複的動态本質所帶來的威脅的方法是使這個程序不那麼動态,這是因為windows系統主機允許其他靜态表項進入ARP緩存,你可以通過打開指令提示符并輸入arp-a指令來檢視windows系統的ARP緩存。

 

解析中間人攻擊(1/4)---ARP緩存中毒

 

  圖7:檢視ARP緩存

  可以通過使用這個指令arp –s 來添加表項到這個清單。

  如果你的網絡配置并不是經常變動,做靜态ARP表項的清單并通過自動化腳本将表項部署到用戶端是完全可行的。這可以確定裝置始終依賴本地ARP緩存,而不是依賴ARP請求和回複。

  使用第三方程式監測ARP通信

  抵禦ARP緩存中毒攻擊的另一種方法是被動方法,監控主機的網絡流量,這可以通過入侵檢測系統(如Snort)或者其他監測工具(如xARP)來進行監控流量。對于一台主機而言,這可能是很簡單的事情,但是對于整個網絡而言就不是那麼簡單了。

  總結

  ARP緩存中毒是中間人攻擊中最有效的攻擊方式,因為它非常容易執行,對于現代網絡是巨大的威脅,并且這種攻擊方式很難檢測和防禦。

備注:轉自IT專家網

轉載于:https://www.cnblogs.com/Alim/p/5340744.html