即使在 Promisc 模式下,Wireshark 也不顯示來自其他網路裝置的資料包

即使在 Promisc 模式下,Wireshark 也不顯示來自其他網路裝置的資料包

系統設定:

  1. 運行 Mountain Lion 並無線連接到路由器的 MacBook Air。
  2. 安裝 Wireshark 並捕獲封包(我已選中“以混雜模式捕獲所有數據”)
  3. 我使用以下過濾器 ( ip.dst != 192.168.1.104 && ip.src != 192.168.1.104)過濾掉所有帶有來源 IP 和目標 IP 的資料包
  4. 在與 MacBook 相同的網路上,我使用 Android 裝置(透過 WiFi 連線)發出 HTTP 請求。

預期成績:

  1. 在 MacBook 上執行的 Wireshark 會看到來自 Android 裝置的 HTTP 請求。

實際結果:

  1. 我只看到 SSDP 廣播192.168.1.1

Q:
我需要做什麼才能讓 Wireshark 像 Firesheep 一樣看到並使用來自同一網路上其他網路裝置的封包(特別是 HTTP)?


更新

  1. 如何在 Wireshark 中捕捉 WiFi 網路上其他電腦的流量?似乎暗示這是不可能的
  2. 這似乎描述了我的問題:http://seclists.org/wireshark/2010/Jan/70
  3. 我確信網路介面處於混雜模式,因為當我運行時ifconfig我得到en0: flags=8967<UP,BROADCAST,DEBUG,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

答案1

如果您沒有透過乙太網路連接到家庭路由器,則家庭路由器很可能使用交換器作為其 LAN 連接埠而不是集線器,因此每個連接埠都有自己的衝突域,而在集線器中衝突域是在所有連接埠之間共用,您將看到每個連接埠上的所有流量。

如果您是無線連接,可能會出現一些問題。首先,某些無線卡的驅動程式不支援進入混雜模式。除非您想自己編寫,否則對此無能為力。其次,如果您的網路是加密的,並且您只能看到來自各種來源的第2 層流量,而不是預期的更高層協定(情況似乎並非如此),那麼您必須將WEP 金鑰輸入到wireshark中,以便它可以處理解密。 WPA和WPA2解密變得更加複雜,因為舊版的wireshark不支援它,如果支持,那麼您必須擷取路由器和裝置之間發生的整個握手( EAPOL packets),因為裝置之間會產生唯一金鑰和路由器。

答案2

要擷取其他系統的 Wi-Fi 流量,您必須將網路介面卡置於監控模式,這是 Wi-Fi 特有的要求。在 Windows 中,這意味著購買特殊的轉接器,例如 AirPcap。對於 Linux,請使用airmon-ng。在 MacBook 中我不知道如何,但看到很多關於這個主題的 Google 搜尋結果。您確實希望處於混雜模式,但僅乙太網路需要集線器。

我將 NIC 置於監控模式,我可以看到周圍有很多其他流量,但我仍然看不到 HTTP/SMTP/等。來自我本地 WiFi 網路的應用程式級流量。

正如 Fred Thomsen 在他的帖子中所說,在應用程式級別,流量將被加密。您需要研究如何設定 WireShark 和您的 AP 來解密此流量。

答案3

如果您的 Macbook 透過乙太網路連接到 WiFi 路由器,那麼原因可能是:

WiFi 路由器可能會充當交換器(而不是集線器)。因此 MacBook 根本看不到 HTTP 封包。

相關內容