中間人攻擊 ARP Spoofing 資安演練 dsniff;Kali Linux;ARP協定

dsniff套件模擬ARP欺騙實作 展示第三者如何竊走個資

利用協定漏洞做ARP欺騙 中間人攻擊手法實驗演練

本文將帶領大家走進中間人攻擊(MITM)的世界,從其運作原理到常見的攻擊手法進行深入探討,並選擇在Kali Linux環境中使用dsniff套件進行ARP欺騙,以實際操作的方式示範中間人攻擊的整個過程。唯有理解威脅,才能有效防範。

在現今的網路環境中,資料傳輸幾乎無所不在,從線上交易、即時通訊到企業內部系統的資訊交換,背後都依賴一套看似穩固的通訊基礎。然而,正因為信任這些通訊基礎而往往忽略一些潛在的通訊威脅,讓攻擊者有機可乘。其中,中間人攻擊(Man-in-the-Middle,MITM)便是一種常見且危害極大的攻擊手法。

中間人攻擊的特點在於「不被察覺」。攻擊者不須破解密碼或滲透系統,只要成功置身於通訊雙方之間,便能攔截、監聽,甚至竄改雙方傳遞的資料。這樣的攻擊方式尤其在區域網路中更容易實施,而ARP欺騙(ARP Spoofing)則是其中最典型也最具代表性的手段。

ARP協定設計初衷是為了解析IP位址與MAC位址之間的對應關係,但其本身缺乏驗證與授權機制,導致網路上的任何設備都能發送ARP封包並影響其他主機的對應資料。攻擊者正是利用這一點,透過偽造封包,欺騙目標主機與閘道器,讓彼此誤將攻擊者的MAC位址當成對方。此時,所有資料傳輸都會先經過攻擊者之手,再被轉送到目的地——中間人攻擊的條件就此成立。

本文將使用Kali Linux環境,搭配經典的dsniff工具套件進行ARP欺騙,觀察在未加密的網路中,封包如何被攔截與分析。透過這次的實作與分析,不僅可以掌握MITM攻擊的技術細節,更能理解這類攻擊背後的風險與應用情境。

認識中間人攻擊(MITM)

接著,說明何謂中間人攻擊(Man in the middle attack,MITM)以及它的運作方式。

中間人攻擊的定義

中間人攻擊(MITM)是一種攻擊者藉由介入正在正常溝通的兩者間以達成特定目的的攻擊方式,透過將原本的二個端點的溝通行為,加上攻擊者於兩端點中間形成一個獨立端點,達到可以攔截、修改兩端點傳送的所有封包的目的,示意圖如圖1所示。

圖1  中間人攻擊示意圖。

中間人攻擊的樣態

中間人攻擊成功之後,攻擊者可以攔截並收集雙方通訊內容,甚至冒用受害者身分進行詐欺、勒索等行為。除了網站之外,這些攻擊還可能針對電子郵件、DNS查閱和公用Wi-Fi網路。中間人攻擊者的典型目標包括SaaS企業、電子商務企業和金融應用的使用者。

舉例來說,中間人攻擊者可能會攔截使用者與其想造訪網站之間的通訊,以竊取帳號、密碼等敏感資訊。這類攻擊常透過攔截使用者與網站之間的HTTP連線來實施。一旦成功劫持連線,攻擊者便能充當代理角色,悄悄收集或修改雙方交換的資料。

此外,攻擊者也可能竊取使用者的Cookie。而Cookie是由網站建立並儲存在使用者電腦上的小段資料,用於識別使用者、維持登入狀態及其他功能。透過竊取這些Cookie,攻擊者可以劫持使用者的工作階段,冒充其身分登入網站,進一步進行未授權的操作。中間人攻擊也可能針對DNS系統下手。DNS負責將網域名稱轉換為對應的IP位址,使瀏覽器能正確定位網站。在DNS中間人攻擊(例如DNS詐騙或DNS劫持)中,攻擊者會入侵DNS查詢流程,將使用者導向偽造或惡意網站。這些網站往往用來散布惡意軟體或誘騙使用者提供敏感資訊,如登入憑證或金融資料。

而最近不良人士以中間人攻擊的手法攻擊案件也層出不窮,例如2023年6月12日,資安專家警告,駭客組織「Storm-1167」發動了一系列中間人攻擊與商業郵件詐騙。微軟在6月8日揭露,駭客透過釣魚郵件誘導受害者點擊惡意連結,進而竊取微軟帳號的登入憑證與動態密碼(TOTP),並利用這些資訊發動重放攻擊。這次攻擊的特點在於,駭客濫用Canva網域,偽裝成傳真文件通知,誘導受害者點擊後導向騰訊雲託管的假微軟登入頁面。此外,駭客還會在受害帳號中加入簡訊雙因素驗證,以維持長期存取權限。研究人員發現,駭客在攻擊後發送超過1.6萬封垃圾郵件,進行大規模BEC詐騙。

此外,駭客還利用Google Ads與Snapchat的網址弱點,以及惡意網站上的JavaScript,檢驗裝置指紋,最終將受害者引導至精心偽裝的釣魚網站。即使企業採用多因素驗證(MFA),這類攻擊仍可繞過安全機制,危害用戶帳號。

了解位址解析協定(ARP)

由上述可知,實現中間人攻擊的手法十分多元,而本文將針對以ARP Spoofing方式實行的中間人攻擊進行說明,首先對何謂ARP、ARP Table以及ARP Spoofing做基本的介紹,接著介紹如何偵測是否遭受ARP Spoofing以及防禦的方法,讓大家能夠提升資安意識與素養,避免暴露於危險當中。

何謂ARP通訊協定

ARP(Address Resolution Protocol,位址解析協定)是一種網路通訊協定,用於在區域網路(LAN)中將IP位址解析成實體位址(通常是MAC位址)。

為了讓大家更好地理解ARP的運作機制,以下透過一個簡單的舉例來說明:

假設網路中有兩台主機,分別為PCA與PCB,其MAC位址分別為AA:AA:AA:AA:AA:AA與BB:BB:BB:BB:BB:BB,而IP位址則是10.10.10.1和10.10.10.2。當PCA需要與PCB進行通訊時,會先產生一個封包,其IP層目的位址為10.10.10.2。

然而,實際上乙太網路中的資料封包是根據資料鏈結層(Layer 2)中的MAC位址進行傳輸的。因此,僅憑目標IP位址並無法正確送達資料。為了解決此問題,PCA會發起一個ARP請求,廣播詢問「誰擁有IP位址10.10.10.2?」此封包會以廣播方式傳送至同一區域網路中所有裝置。

當PCB收到該ARP Request並確認自己為該目標IP的持有者後,會回傳一個ARP Reply,告知PCA,其MAC位址BB:BB:BB:BB:BB:BB,其運作流程如圖2所示。

圖2  ARP通訊協定運作流程。

此時,PCA即可將目標IP對應的MAC位址寫入其ARP快取中,並建構資料封包的L2(資料鏈結層)與L3(網路層)表頭,準備傳送資料。封包表頭格式如表1所示。

在封包完成組裝後,該封包會經由交換器(Switch)根據目的MAC位址轉發至PCB,從而完成一次基於區域網路的通訊流程。

何謂ARP Table

在對ARP通訊協定和其運作原理有基本的認識之後,接著說明什麼是ARP Table。在前面提及終端設備上的應用基本上都是使用IP來作為發送與接收的依據,但不可能每傳送一次IP封包都需要發送一次ARP封包來解析MAC Address,這樣會造成太多不必要的流量產生,因此終端設備都會自己維護一張表,來暫存這些獲得的ARP Response。若想查詢電腦上目前暫存的位置對應表,可使用指令「arp -a」來查詢。一般來說,整個流程大概如圖3所示。

圖3  ARP尋找IP與MAC位址對應流程。

何謂ARP欺騙(ARP Spoofing)

由於ARP請求是以廣播的方式發送,因此當攻擊者接收到此類請求封包時,便可偽造一個惡意的ARP回應,將某個L3 IP位址對應至其自身的MAC位址。如此一來,受害者系統中的ARP Table將會被更新,使原本對該IP位址的流量改為導向攻擊者的裝置。若攻擊者同時對與受害者通訊的另一端發送類似的偽造ARP回應,則能實現雙向流量的攔截與監聽,進一步進行中間人攻擊。

此外,攻擊者亦可主動向區域網路中所有主機發送未經請求的ARP回應,即便沒有來自主機的ARP請求。此手法等同於告訴網路中所有裝置,所有IP位址皆對應至攻擊者的MAC位址。最終結果是,使得區域網路中的大部分或全部IP封包都被重新導向至攻擊者的設備,達到全網監控或封包攔截的目的。

ARP Spoofing偵測

可以使用Wireshark錄取封包,當攻擊者採用激進式手法進行ARP Spoofing攻擊時,網路中通常會出現大量異常的ARP封包。為了偵測此類攻擊行為,可透過監控交換器所接收到的ARP封包進行分析。

進一步地,亦可藉由交換器的管理功能,追蹤異常封包來源,進而定位傳送封包的實體連接埠位置,以協助進行事件回應與資安防護。

ARP Spoofing防禦方法

ARP Spoofing攻擊主要利用ARP通訊協定缺乏驗證機制的弱點,使受害主機更新其ARP快取(ARP Cache),將攻擊者的MAC位址誤認為合法的網路設備。因此,一種基本的防禦方法是停用ARP的動態快取更新機制,改採靜態ARP表(Static ARP Table)。透過手動設定每個IP位址與對應MAC位址的綁定關係,可以有效避免ARP Spoofing攻擊。

若要手動設置靜態ARP表,在Windows系統中可以使用指令「arp -s 」,在Linux系統中則執行指令「sudo arp -s 」。然而,這種方式在大型網路環境中較為繁瑣,維護成本亦較高,僅適用於小型或安全要求極高的場域。

此外,部分進階交換器支援動態ARP檢查(Dynamic ARP Inspection,DAI)技術。DAI會比對進入網路的ARP封包與先前授權的DHCP綁定資訊,若發現封包中所宣稱的IP-MAC對應與記錄不符,將直接丟棄可疑封包。此種機制可在攻擊完成之前即主動攔阻,提供即時性較高的防護效果。

現代化的端點防護系統也逐漸納入ARP偵測功能,能夠即時監控本地ARP表的變化情形。當發現異常更新(例如所有IP位址突然對應到同一MAC位址)時,系統可發出警告或自動封鎖可疑封包來源,以減少攻擊造成的影響。這種方法對偵測內部網路中潛在的中間人攻擊特別有效,且不依賴網路設備的支援,具有高度可擴展性。

情境模擬與實作演練

汪珀和皮妥是景茶大學的室友,他們的宿舍區域網路使用的是一台老舊的交換器(Switch),汪珀最近看到網管人雜誌與ARP Spoofing相關的文章,深知使用老舊交換器所帶來的資安風險,於是汪珀提議買一台支援動態ARP檢查的新型交換器,然而一向摳門的皮妥認為沒必要再額外花錢更新設備,汪珀為了使皮妥了解使用老舊交換器所帶來的資安風險,於是決定實作以下操作,讓皮妥知曉遭受到ARP Spoofing的後果。

汪珀先在他自己的電腦進行必要的環境準備,以下是他在自己電腦安裝的軟體與系統:

‧Virtual Box(https://www.virtualbox.org/)

‧Kali Linux(https://www.kali.org/get-kali/#kali-platforms)

‧Metasploitable2(https://sourceforge.net/projects/metasploitable/)

為了方便自行操作,同時避免攻擊到其他實際在運作的交換器而觸犯《妨害電腦使用罪》,以下使用Metasploitable2來模擬皮妥宿舍裡的老舊交換器,先在虛擬機上啟動Metasploitable2(帳號和密碼皆為msfadmin),接著使用ifconfig指令得知Metasploitable2的inet addr是192.168.81.146,然後開啟Kali Linux(其帳號密碼皆為kali)的Terminal輸入「ping 192.168.81.146」以確保Kali Linux與Metasploitable2可以互通(從圖5可以看出當Kali Linux在ping Metasploitable2時,封包能確實傳送與接收),其操作步驟如圖4與圖5所示。

圖4  使用ifconfig指令查看靶機IP。
圖5  使用ping指令確認Kali Linux與Metasploitable2是否互通。

接著,汪珀開啟他的Kali Linux終端機,輸入指令「sudo apt-get update」以更新套件庫。再輸入指令「sudo apt install dsniff -y」,安裝dsniff(一套橋接欺騙工具,可製造封包進行注入)。

安裝dsniff套件後,接著在Metasploitable2輸入「arp -a」指令以查詢目前Metasploitable2靶機(以下簡稱Meta靶機)目前存取的ARP Table。

然後,在Kali Linux終端機輸入以下指令,以不斷地發送封包來誤導Meta靶機(皮妥宿舍的老舊交換器)錯誤的IP與MAC位址對照對象(可利用wireshark來觀察攻擊的狀態):

sudo arpspoof -i eth0 -t <meta 靶機IP>  -r <kali的IP>

在圖6中的wireshark框線處可以看到在終端機下達的指令,也就是「sudo arpspoof -i eth0 -t 192.168.81.146 -r 192.168.81.2(終端機框線處)」,確實傳送了ARP封包試圖誤導switch現存的ARP Table。

圖6  使用sudo arpspoof指令誤導Metasploitable2靶機的ARP Table。

從圖6中wireshark錄到的封包可以看出汪珀的kali主機一直在傳送「192.168.81.2的MAC位址是在00:0C:29:16:67:57」的封包來誤導Meta靶機(皮妥宿舍的老舊交換器)。接著,再回到Meta靶機輸入「arp -a」指令來觀察遭到攻擊後的Meta靶機ARP快取為何。

從圖7可以看出,192.168.81.2的MAC位址從00:50:56:E1:EC:8E變成00:0C:29:16:67:57,而這個MAC位址和汪珀的kali主機MAC位址是一樣的,也就是說當Meta靶機(皮妥宿舍的老舊交換器)要對192.168.81.2傳送封包時,會先經過kali主機,才會傳送到192.168.81.2。到這裡,汪珀已成功達到中間人攻擊介入正在正常溝通的二者間的目的了。

圖7  再次輸入「arp -a」指令觀察遭到攻擊後的Meta靶機ARP快取。

而汪珀繼續在Meta靶機輸入「ping 192.168.81.2」(從圖8可以看到在輸入完ping 192.168.81.2於終端機中顯示64 bytes from 192.168.81.2……的字樣代表連線成功),而在汪珀的kali主機可以看到wireshark有捕捉到從Meta靶機傳送到192.168.81.2的ICMP封包。

圖8  讓Meta靶機與192.168.81.2連線。

汪珀接著把捕捉到的ICMP封包進行分析解讀,再把分析出的結果拿給皮妥看,皮妥才驚覺原來他一直以為很安全的秘密通訊這麼容易被破解,後來也決定換一台支援動態ARP檢查的交換器新型交換器以保障自己的資訊安全。

從上述的情境中可以學習到,ARP Spoofing雖然技術門檻不高,但其帶來的資安風險卻相當嚴重,尤其在使用老舊或缺乏安全機制的交換器環境下,攻擊者僅需簡單的工具與指令,就能成功介入網路通訊並攔截、監控,甚至竄改資料傳輸。

結語

期盼本篇內容能喚起讀者對中間人攻擊風險的高度警覺,進一步落實資訊安全防護作為,守護個人與組織的數位資產安全,在日益複雜的網路威脅環境中,建立更穩固的第一道防線。

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)中央警察大學資訊密碼暨建構實驗室 & 情資安全與鑑識科學實驗室(ICCL and SECFORENSICS)1998年成立,目前由王旭正教授領軍,並致力於資訊安全、情資安全與鑑識科學、資料隱藏與資料快速搜尋之研究,以為人們於網際網路(Internet)世界探索的安全保障(https://hera.secforensics.org/)。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!