緯育 2026-0525
出自頂極製作所
本講次聚焦「中間人(Man-in-the-Middle, MITM)」的概念、風險、偵測與防堵,並以 ARP 欺騙為核心示範在 Linux/Kali 啟用 IP 轉送與 NAT,完成「左手轉右手、右手轉左手」的透明雙向封包中繼。內容結合 Scapy 手動組包、arp-spoof 指令與 Ettercap/Ethercap 圖形介面操作,展示如何攔截 ICMP 與各類協定流量、觀察 Wireshark 中的「四個封包」現象、進行 DNS 欺騙與(歷史上)SSL 降級的流程與當代限制。並補充在不使用 HTTPS 的情境下以工具(如 DriveNet)擷取圖片資料的方式,以及系統層面持久化啟用轉發與 NAT 規則的方法(sysctl.d、iptables/nftables),避免重開機後失效。偵測面則從延遲與重傳循環、ARP 對映異常、DNS 解析錯誤與憑證警示等跡象切入,提出 hosts 寫死關鍵網域、靜態 ARP 綁定、端點防護與自建家用 VPN 等實務防護手段。
MITM 基礎與風險
- 定義與位置:中間人位於兩端點之間,必須讓 A、B 各自誤認彼此仍直接相連,且攻擊者能攔截、觀察、轉送,進階能修改與偽造封包。
- 能力與目標:可改 DNS 回覆、變更應用層代碼以造成行為改變(如指令代碼被替換後觸發非預期行為)。
- HTTPS 降級現況:瀏覽器強化與 HSTS/憑證機制使降級攻擊近年難以成功,教學可示範流程但不期待實務成功。
- 偵測跡象:延遲與重傳增多、連線「逐步變慢→斷線重連→再變慢」的循環,是 MITM/中繼負載造成的常見行為。
- 防堵原則:強化端點驗證與完整性檢查、縮小降級面、監控延遲/重傳/循環行為。
成為中間人的必要條件與方法
- 封包轉送能力:需啟用 NAT/IP 轉送,才能透明雙向中繼;僅「站在中間」而不轉送會導致目標端「等不到」資料而暴露。
- 方法與工具:以 ARP spoof/Ettercap/Ether 類工具建置 MITM;Scapy 可自訂工作流程。雙向欺騙同時毒化受害端與閘道的 ARP 表,使流量經過中間人。
NAT 原理與與 MITM 的關聯
- 動機與功能:因 IPv4 地址有限,NAT 以少量公有 IP 服務多台內部主機,透過改寫來源/目的 IP 並維護對映表完成出入流量轉換。
- 與 MITM 的關係:MITM 需 NAT/IP 轉送支撐透明中繼,因此實作前先啟用該能力。
啟用 NAT/IP 轉送的方法與示範
- 方法分類:直接改記憶體(即時、重開失效)、以指令改記憶體(sysctl/echo,同樣非持久化)、持久化配置(sysctl.d、GUI/管理工具)。
- Kali 示範:將 /proc/sys/net/ipv4/ipforward 由 0 改為 1(如 echo 1 > /proc/sys/net/ipv4/ipforward),立即啟用。
- 持久化:在 /etc/sysctl.d/ 編輯 99* 開頭設定檔使 net.ipv4.ip_forward=1 開機生效,並搭配 iptables/nftables 規則持久化。
使用 Scapy 進行雙向 ARP 欺騙
- 目標:同時欺騙內部主機與閘道,令兩側將對方的 IP 對映為中間人 MAC。
- 封包結構:以 ARP Reply(op=2)宣稱來源 IP 為對方(騙內部主機用閘道 IP、騙閘道用內部主機 IP),來源 MAC 留空由系統帶入攻擊者 MAC。
- 持續送包:以 send() 週期性(1/0.5/0.2 秒)送出兩組封包,維持中毒狀態。
- 檢核:以 arp -a 檢視 ARP 表變更;變數(IP/MAC)與介面設定錯誤會導致失敗。
Wireshark 驗證與「四個封包」現象
- 測試流程:內部主機 ping 8.8.8.8 -c 1;中間人以 icmp/ARP 過濾觀察。
- 現象解釋:ICMP 往返各出現兩次乙太網層封包(內→中、 中→閘;閘→中、 中→內),IP 層來源/目的不變,MAC 顯示中間人為轉發點。
- 故障徵兆:只看到 1 個封包常為未啟用 IP 轉送;看不到四包可能是 ARP 欺騙或變數錯誤。
以 arp-spoof 指令精簡操作
- 主要參數:-i 指定介面、-t 指定目標、-r 啟用雙向欺騙。
- 建議:精準雙向欺騙較易建立穩定 MITM;廣播式欺騙不一定有效。
Ettercap/Ethercap 綜合操作
- 前置與穩定性:NAT 必須先完成;不同版本與介面(CLI/ncurses/GUI)可能不穩,必要時更新或更換版本。
- 目標管理:被動/主動蒐集 Host List,選擇 Target 1/2(客戶端與 Gateway),啟用 ARP Poison 成為中間人。
- 協定監聽與憑證擷取:能監聽 Telnet/FTP/POP3 等明文協定,介面下方列出截獲帳密。
- DNS 欺騙:編輯 /etc/ettercap/etter.dns 為特定網域偽造 A 記錄,導流至指定 IP;曾有營運商導流公開報導作為案例。
- SSL 降級(SSL Strip):需在 etter.conf 解除相鄰四行設定並掛鉤 iptables;現代瀏覽器與 HSTS 使成功率極低。
- Windows 平台:亦可用 Ettercap,但需先處理 NAT 才能正常轉發。
DriveNet 與未加密流量蒐集
- 工具定位:在取得 MITM 後,自動擷取未加密頁面中的圖片等內容;HTTPS 普及使可見內容受限。
- 實作建議:以 ARP spoof 取得中間人位置,在未加密目標網站驗證擷取與存檔。
偵測與對抗面
- 可疑指標:ARP 對映異常、頻繁「宣告誰是誰」、DNS 回覆異常、延遲/重傳/斷線循環。
- 憑證與 TLS:檢核主體名稱、簽發者鏈、有效期與簽章;任何憑證警示皆應停止。公鑰/私鑰協商後以對稱金鑰加密,攻擊者難以解密。
- 防護措施:
- 外網:以 hosts 寫死關鍵網域 IP 對抗 DNS 汙染(適用 IP 穩定服務)。
- 內網:針對 Gateway/重要伺服器進行靜態 ARP 綁定(Windows 10+ 用 Netsh;舊版用 arp -s)。
- 端點防護:導入整合型防護,於封包發出前依資料庫/模型阻擋風險。
- 公共網路:先連自建家用 VPN,加密公共段路徑,以家中出口上網。