使用 Wireshark 捕獲數(shù)據(jù)包——Wireshark 新手教程(2)
1.?抓包環(huán)境的準備
為了方便演示,我這邊使用的設備是一臺抓包用的 PC 和一部手機。網(wǎng)絡結構如下:

以 Windows10 操作系統(tǒng)為例,來介紹一下具體操作步驟:
1. 打開電腦的熱點;

2. 將手機連接電腦熱點;

3. 在已連接的設備欄查看手機的 IP?和 MAC 地址。

確定手機連接上電腦之后,就可以開始操作了。
這里提一點注意事項,當兩臺設備同時連接在同一臺電腦上時,它們之間可能會通過更底層的機制進行通信,此時我們無法通過 Wireshark 捕獲到這些數(shù)據(jù)包。這時可以準備兩臺電腦分別連接兩臺設備并抓包。
2. Wireshark 捕獲操作流程
打開 Wireshark,開始捕獲流程如下:

開始捕獲時遇上的第一個問題往往是如何選擇接口的問題,這里可以選擇一個一個嘗試本地連接,觀察是否能捕獲到流量,也可以打開控制面板 - 網(wǎng)絡和Internet - 網(wǎng)絡和共享中心 - 更改適配器設置,查看具體使用的是哪個接口:

開始捕獲后,如果想要捕獲特定的流量,就可以對手機進行操作。如果想要知道B站的協(xié)議,就可以打開B站手機客戶端,進行各種操作,并分別抓包保存數(shù)據(jù)包,保存操作如下:

3. 捕獲的數(shù)據(jù)包是我們想要的嗎?
使用 Wireshark 捕獲數(shù)據(jù)包一直有個令人頭疼的問題——如何判斷捕獲的大量數(shù)據(jù)包中,哪些數(shù)據(jù)包是我們想要保留的?流量比較大的流媒體數(shù)據(jù)包比較容易觀察,但是有些傳輸流量較小的行為真的很難識別。
這個問題困擾了我很久,不過用了這么長時間 Wireshark,倒也可以總結出一些操作手法了。這些手法使用起來并不是特別困難,但還是需要一些經(jīng)驗。這里同樣以捕獲手機APP為例:
(1)首先,關鍵的事項是需要排除其他 APP 的流量。不嫌麻煩的話,可以將其他 APP 的4G選項關閉,或者直接在安卓手機上使用 pcap remote 進行抓包。pcap remote支持對單獨的 APP或進程抓包,不過弊端是無法實時查看數(shù)據(jù)包,而是需要將 pcap文件導入 PC 然后用Wireshark 打開。
(2)其次,最重要的操作手法就是要在進行動作的時候?qū)崟r觀察 Wireshark 捕獲的數(shù)據(jù)包,并且可以多次操作,觀察數(shù)據(jù)包的統(tǒng)一特征。
(3)最后,開始與停止捕獲的時機也是非常重要的,開始早了容易混入其他雜質(zhì),停止的時機不對則有可能只抓到一半的會話,這兩種情況都對后續(xù)的分析處理 pcap 文件比較不利。
上述的方法都是只有單獨的設備數(shù)據(jù)包流量經(jīng)過網(wǎng)卡的情況,要是有大量不同的主機經(jīng)過網(wǎng)卡,則需要用到捕獲過濾器。捕獲過濾器的語法與 tshark 相同,但是與 Wireshark 的顯示過濾規(guī)則略有不同,這里并不多做介紹,具體規(guī)則可以參考 tshark 命令詳解。
4. 總結
教程的第二篇講解了如何使用 Wireshark 捕獲數(shù)據(jù)包。其實捕獲操作并不困難,多點擊重新開始捕獲按鍵,多把玩 Wireshark 就行。可以試著把本地連接、Wlan和以太網(wǎng)接口的數(shù)據(jù)都捕獲下來試試,看看分別有什么不同。
通過捕獲過程,可以觀察 DHCP 協(xié)議是怎么為新入網(wǎng)的主機分配IP的,可以看到 ARP 協(xié)議如何發(fā)出人性化的請求和響應,這些數(shù)據(jù)包真的很有趣。

捕獲數(shù)據(jù)包的流程介紹完了,接下來的第三篇會介紹如何使用 Wireshark 導入/導出文件。Wireshark 支持導入和導出的文件格式比較多,因此這部分也會單獨作為系列教程中的一篇。