Wireshark 提供強大的顯示過濾器功能,能精準篩選特定封包,例如透過 IP 位址、TCP 埠、時間戳記或 TCP 標誌等條件快速定位目標封包。理解這些過濾規則有助於提升網路除錯和安全分析效率。除了封包分析,MAC 地址欺騙也是常見的網路安全技術。藉由修改網路介面卡的 MAC 地址,攻擊者得以偽裝身份,繞過根據 MAC 地址的網路存取控制。利用 Kali Linux 內建的 macchanger 工具,可以輕鬆進行 MAC 地址的修改與隨機化。此外,ARP 欺騙攻擊利用 ARP 協定漏洞,讓攻擊者得以攔截網路流量,進行中間人攻擊。arpspoof 工具提供簡潔的指令操作,能有效執行 ARP 欺騙。為了讓讀者能實際操作這些技術,文章也詳細說明如何搭建虛擬實驗環境,包含使用 pfSense 作為路由器、Kali Linux 作為攻擊平台,以及 Windows 10 作為目標系統。透過此環境,讀者可以安全地練習和驗證網路安全技術,加深對網路攻擊和防禦的理解。

Wireshark 封包過濾與網路安全技術

在進行封包捕捉時,我們需要過濾輸出以找到特定的結果。Wireshark 的顯示過濾器正是用來完成這個任務。當你在 Wireshark 中檢檢視 1.5,特別是綠色條列中的文字「eth.dst == ff:ff:ff:ff:ff:ff」,這就是顯示過濾器的例項。當你在顯示過濾器中輸入文字時,Wireshark 會根據你輸入的內容提供建議列表。它還提供了一種方法來檢查過濾器是否有效——例如,如果條列變黃,表示過濾器被接受但可能不如你預期般工作。如果變紅,則表示過濾器未被接受且無法工作。如果變綠,則表示過濾器已被接受。

以下是一些有用的過濾器範例:

  • ip.addr == 192.168.1.1:依 IP 地址篩選
  • ip.dst ==ip.src ==:依來源或目的地 IP 地址篩選
  • tcp.port == 80:依特定 TCP 埠篩選
  • tcp.dstport == 80:依特定目的地埠篩選
  • frame.time >= “2022年4月28日 13:00:00”:依特定時間戳篩選
  • tcp.flags.syn == 1:尋找 SYN 標誌

這些範例展示瞭如何使用 Wireshark 的顯示過濾器來篩選封包。更多詳細的過濾器語法可以在 Wireshark 的官方檔案中找到。

MAC 地址欺騙

每個網路介面都有一個唯一的 MAC 地址,MAC 地址欺騙是一種透過修改網路介面卡(NIC)上的 MAC 地址來進行身份偽裝的技術。這種技術常用於企圖進入限制性 LAN 環境時,假冒已授權電腦的身份。例如,有些網路可能會白名單 MAC 地址。如果你能發現這個白名單中的 MAC 地址,就可以假冒其身份。你可以欺騙自己的 MAC 地址,以在網路上冒充其他裝置。

欺騙 MAC 地址

接下來,我們將使用 Kali Linux 和 macchanger 工具來實作 MAC 地址欺騙。

首先,開啟終端機並輸入 macchanger --help 指令,這將顯示所有可用的 macchanger 工具選項。

macchanger --help

在使用工具之前,我們需要先驗證當前的 MAC 地址。可以使用 ifconfig 指令並附上介面名稱來完成這個任務。在我的情況下,介面名稱是 eth0。

ifconfig eth0

目前,我的 MAC 地址(在 Linux 中稱為 ether)是 00:0c:29:77:2c:99。接下來,我們將這個地址修改為隨機值。這可以透過一個簡單的步驟完成:

sudo macchanger -r eth0

我使用了 sudo 指令,因為我的當前使用者沒有 root 許可權。你也可以使用 sudo -i 指令進入 root 模式,之後就不需要再每次指令前加上 sudo 了。-r 用於生成隨機的 MAC 地址;如果需要其他選項也可以使用。例如,我可以使用 -a 換位符來設定隨機 MAC 地址但保持相同的供應商 OUI。最後,我指定介面名稱為 eth0。

注意事項

如果你遇到「ERROR: Can’t change MAC」錯誤訊息,則需要先執行 ifconfig eth0 down 指令來關閉網路介面後再執行 macchanger 指令。完成後記得再用 ifconfig eth0 up 指令啟動介面。

執行完 macchanger 指令後會看到結果如下所示:

Current MAC:    00:0c:29:77:2c:99 (Vmware)
Permanent MAC:  xx:xx:xx:xx:xx:xx (Unknown)
New MAC:        06:1d:9f:2f:db:f6 (Unknown)

現在介面已經擁有一個新的 MAC 地址 06:1d:9f:2f:db:f6

如果你想手動設定自己的 MAC 地址,可以使用以下指令:

sudo macchanger --mac XX:XX:XX:XX:XX:XX eth0

注意事項

在 Windows 環境中,有些網路卡提供了在介面屬性中更改 MAC 地址的功能。

ARP 欺騙攻擊

在進行 ARP 欺騙之前,我們先了解一下 ARP 的作用。MAC 地址類別似於物理身份識別碼;IP 地址則用於定位網路上的裝置。ARP 表用於管理身份與位置之間的關係。

ARP 用於查詢與 IP 地址相關聯的 MAC 地址。例如,如果路由器需要傳送資料給 IP 地址為 192.168.1.20 的電腦時,它需要知道對應的 MAC 地址;因此會傳送 ARP 查詢來取得該資訊。

ARP 欺騙攻擊原理

在 ARP 欺騙攻擊中,攻擊者向受害者傳送假的 ARP 傳回資訊。這些資訊會告訴受害者攻擊者的 MAC 地址對映到其他裝置(如路由器)的 IP 建構上。這意味著受害者會將原本應該傳送給路由器的封包轉交給攻擊者的裝置(因為路由器的 MAC 地址已被替換為攻擊者的地址)。ARP 欺騙是一種典型的中間人攻擊(MITM)。

注意事項

中間人攻擊發生時攻擊者監聽使用者與應用程式之間的通訊資料傳遞流程;目的是窺探取得有價值資訊或修改對話並將通訊重新導向至攻擊者控制之下裝置。

此圖示展示了 MITM 攻擊流程:

ARP 欺騙實戰

要進行 ARP 欺騙攻擊需要在 Kali Linux 上使用 dSniff 工具集中的 arpspoof 工具來執行 ARP 欺騙攻擊。

首先確保開啟 IP 轉送功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

接著安裝 dSniff 工具集:

sudo apt-get update && sudo apt-get install dsniff

arpspoof 工具說明

arpspoof 是 dSniff 工具集中的一個工具,用於執行 ARP 欺騙攻擊。

  • -i:指定要使用來偽造 ARP 請求的介面。
  • -t:指定要欺騙攻擊目標 IP 。

若不指定目標 IP 則會對網路上所有目標進行欺騙。

執行以下指令即可開始 ARP 欺騙攻擊:

sudo arpspoof -i eth0 -t <TARGET_IP> <ROUTER_IP>

攻擊結果

執行完上述指令後可看到如下結果:

Current MAC address of <TARGET_IP> is xx:x:x:x:x:x (OUI Unknown)
Current MAC address of <ROUTER_IP> is xx:x:x:x:x:x (OUI Unknown)
Sending spooed reply...

首先顯示的是 Kali Linux 的 MAC 地址(xx❌x❌x:x),接著顯示的是目標裝置的MAC地址(xx❌x❌x:x)。接著顯示封包型別為 0x806 (表示其為 ARP 資料封包),封包長度為42位元組(Byte),最後顯示的是 ARP 傳回資料內容以強制受害者更新其ARP資料表以便將路由器IP地塊(192.168.111.2)重新導向至 Kali Linux機台MAC位置。

安裝實驗環境

要完成本文中的各項練習,您需要一個完整的實驗環境。在本文中,玄貓將引導您建立這個實驗環境。隨著我們深入學習本文的內容,我們會逐步擴充套件這個環境。讓我們從初步設定開始。

首先,如果您在本地電腦上建立這個環境,您需要使用虛擬化平台。常見的虛擬化平台包括 VirtualBox 和 VMware Workstation。VirtualBox 是免費的,可以從 VirtualBox 下載頁面 下載。VMware Workstation 有兩個版本:免費的 VMware Workstation Player,可以從 VMware Workstation Player 評估頁面 下載;以及付費版本 VMware Workstation Pro。

專家建議

玄貓不建議使用 Microsoft Hyper-V,因為這個平台不允許您直接與硬體互動。例如,如果您需要使用無線網路卡進行封包捕捉,則無法在 Microsoft Hyper-V 上完成。

在本章中,我們將按照以下圖示設定實驗環境。我們將使用 pfSense 作為開源路由器,提供實驗環境的網際網路存取。所有裝置都將使用 192.168.1.0/24 範圍的私有 IP 地址。pfSense 虛擬路由器將有兩個網路介面,一個設定為橋接模式,另一個連線到實驗環境的私有子網。

此圖示展示了我們要建立的實驗環境架構:

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Wireshark 封包分析與網路安全技術實踐

package "安全架構" {
    package "網路安全" {
        component [防火牆] as firewall
        component [WAF] as waf
        component [DDoS 防護] as ddos
    }

    package "身份認證" {
        component [OAuth 2.0] as oauth
        component [JWT Token] as jwt
        component [MFA] as mfa
    }

    package "資料安全" {
        component [加密傳輸 TLS] as tls
        component [資料加密] as encrypt
        component [金鑰管理] as kms
    }

    package "監控審計" {
        component [日誌收集] as log
        component [威脅偵測] as threat
        component [合規審計] as audit
    }
}

firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成

@enduml

虛擬網路設定

首先,我們需要在超級管理程式中設定虛擬網路。在 VMware Workstation 中,這可以透過 EDIT | Virtual Network Editor 來完成,如下圖所示。請確保將其設定為 Host-only 模式,因為我們希望這個網路模擬 192.168.1.0/24 的私有子網。

VMware 虛擬網路組態

對於 VirtualBox,這可以透過 File | Host Network Manager 來完成,如下圖所示:

VirtualBox 虛擬網路編輯器

安裝 pfSense

完成網路組態後,您可以開始安裝 pfSense。安裝過程相當簡單。您需要從 pfSense 下載頁面 下載 ISO 檔案;請記得選擇適合 AMD64 架構的版本。下載完成後,您需要在超級管理程式中建立一個新的虛擬機器並設定 ISO 檔案為啟動映像以進行 pfSense 安裝。

專家建議

在 VMware 上設定新虛擬機器的步驟可參考 VMware 知識函式庫。在 VirtualBox 上設定新虛擬機器的步驟可參考 Oracle 檔案

請確保 pfSense 安裝有一個設定為橋接模式(這將使其能夠與網際網路通訊)和一個連線到主機唯一網路的介面卡。安裝完成後,請務必從啟動順序中移除 ISO 檔案;否則會進入安裝迴圈。當 pfSense 啟動時,您應該會看到類別似下圖所示的畫面——一個橋接到您網路(WAN)並具有網際網路存取許可權的介面卡以及另一個連線到主機唯一網路(LAN)的介面卡。

pfSense IP 組態

安裝 Kali Linux

接下來是安裝 Kali Linux 虛擬機器。Kali Linux 提供了預建好的 VMware 和 VirtualBox 檔案供下載。只要選擇與您使用的超級管理程式相符合的檔案下載即可。解壓縮並啟動後,您應該能夠使用預設的使用者名稱和密碼(kali/kali)登入。請記得將 Kali Linux 網路介面卡設定為 Host-only 模式。

安裝 Windows 10

最後一步是安裝 Windows 10 虛擬機器。玄貓建議使用 Windows 10 Pro 作為本文中的作業系統。您也需要將 Windows 10 虛擬機器設定為 Host-only 網路。

注意事項

在某些情況下,Kali 和 Windows 虛擬機器可能需要手動組態私有子網上的 IP 地址,因為 DHCP 不一定會分配 IP 地址。

內容解密:

  • 虛擬化平台選擇:選擇適合的虛擬化平台(如 VirtualBox 或 VMware Workstation)以建立實驗環境。
  • pfSense 安裝:pfSense 作為開源路由器提供網際網路存取許可權。
  • Kali Linux 與 Windows 10 虛擬機器:Kali Linux 用於安全測試和分析工具;Windows 10 用於目標系統模擬。
  • 網路組態:Host-only 模式用於模擬私有子網以進行實驗和測試。