
系統設定:
- 運行 Mountain Lion 並無線連接到路由器的 MacBook Air。
- 安裝 Wireshark 並捕獲封包(我已選中“以混雜模式捕獲所有數據”)
- 我使用以下過濾器 (
ip.dst != 192.168.1.104 && ip.src != 192.168.1.104
)過濾掉所有帶有來源 IP 和目標 IP 的資料包 - 在與 MacBook 相同的網路上,我使用 Android 裝置(透過 WiFi 連線)發出 HTTP 請求。
預期成績:
- 在 MacBook 上執行的 Wireshark 會看到來自 Android 裝置的 HTTP 請求。
實際結果:
- 我只看到 SSDP 廣播
192.168.1.1
Q:
我需要做什麼才能讓 Wireshark 像 Firesheep 一樣看到並使用來自同一網路上其他網路裝置的封包(特別是 HTTP)?
更新
- 如何在 Wireshark 中捕捉 WiFi 網路上其他電腦的流量?似乎暗示這是不可能的
- 這似乎描述了我的問題:http://seclists.org/wireshark/2010/Jan/70
- 我確信網路介面處於混雜模式,因為當我運行時
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 封包。