本文章轉載于搜狗測試
通過Wireshark、Charles、Burpsuite等工具分析網絡流量的過程,又叫做抓包。
為何需要抓包
測試手機應用(如搜狗號碼通、搜狗手機瀏覽器)的功能時,經常遇到與網絡交互的場景,這時候我們往往需要通過分析客戶端與服務端的網絡交互來分析客戶端的功能、定位BUG的原因(是來自客戶端還是服務端)、解釋不正常的客戶端表現等等,而通過一般的測試手段并不能直接的分析手機發出的網絡請求(主要是現階段尚沒有運行于Android或iOS的網卡分析工具)。
但是在PC或Mac上我們很容易通過不同軟件(如本文介紹的Wireshark)來截獲網卡的請求來分析,為此,我們可以通過在PC或者Mac上建立一個Wifi熱點,然后用手機連接該熱點,來通過分析該發射熱點網卡的請求分析手機的請求。
如何建立一個Wifi熱點
簡單的原理和具體方法(Windows下和mac下抓包)如下:
首先要在PC/Mac上利用USB網卡建立無線Wi-Fi熱點;
安裝Wireshark抓包工具;
用手機連接對應的Wi-Fi;
手機端觸發相關網絡請求;
抓包分析;
在Windows下設置虛擬wifi
前提:
運行Windows 7系統的PC已經含有一塊可以正常聯網的網卡在運行;
擁有一塊USB無線網卡;
步驟1:建立虛擬wifi
以管理員身份運行命令提示符:“開始”——在搜索欄輸入“cmd”——右鍵,以“管理員身份運行”;
啟用并設定虛擬WiFi網卡
在啟動的CMD中運行命令:
netsh wlansethostednetwork mode=allow ssid=XXX key=XXXXXXXX keyusage=persistent#(可以不輸入keyusage)[敲回車]
注意:上邊命令“ssid”后XXX為網絡名稱即要設定的wifi名稱,自己隨便命名(最好用英文) “Key”后邊XXXXXXXX為你要設定的wifi密碼(至少8位)。
此命令有兩個參數:
mode:是否啟用虛擬WiFi網卡,改為disallow則為禁用。例如:只使用mode=disallow可以直接禁用虛擬Wifi網卡。
如果將keyUsage指定為永久,將保存安全密鑰并在將來再次啟動托管網絡時使用。否則只有在當前或下一次啟動托管網絡時使用此密碼。停止托管網絡后,將從系統中刪除臨時安全密鑰。如果未指定 keyUsage,默認情況下,它是永久性的。
運行netsh wlan set hostednetwork mode=allow ssid=XXX key=XXXXXXXX命令之后看到成功的提示。
然后再打開“控制面板”—>“網絡和共享中心”—>“更改適配器設置”
看看多出的這一項“Microsoft Virtual WiFi Miniport Adapter”。
(虛擬wifi是自己改的名字,原名叫:無線網絡連接2)
步驟2:設置Internet連接共享
在“網絡連接”窗口中,右鍵單擊已連接到Internet的網絡連接(切記不一定是本地連接 ,是你上網的那個連接),選擇“屬性”→“共享”,勾上“允許其他……連接(N)”并選擇“虛擬WiFi”。
確定之后,提供共享的網卡圖標旁會出現“共享的”字樣,表示“寬帶連接”已共享至“虛擬WiFi。
步驟3:開啟無線網絡
繼續在命令提示符中運行:netsh wlan start hostednetwork,(當然可以新建一個記事本文件復制:netsh wlan start hostednetwork然后另存為:啟動WIFI熱點.bat ,下次開機的時候只需要以“管理員身份運行”就啟動了。)
虛擬WiFi的紅叉叉消失,WiFi基站已組建好,主機設置完畢。
用手機連接該wifi
如果想關閉wifi共享功能也是可以的,不用動電腦的wifi開關這么麻煩,只需要一條命令:netsh wlan stop hostednetwork
(也可以像啟動wifi熱點那樣,建立一個.txt文件,將命令netsh wlan stop hostednetwork復制到文件中,名字改為關閉WIFI熱點.bat,以“管理員身份運行”)
在mac上開啟wifi熱點方法
前提:必須插著網線且能上網;擁有一塊USB無線網卡。
步驟1:設置互聯網共享
點擊mac上的右上角的小蘋果,選擇“系統偏好設置”
打開系統偏好設置,后點擊“共享”
步驟2:開啟共享無線網絡
打開共享后,選擇互聯網共享,右側共享來源鏈接選擇“以太網”,端口選擇“wi-fi”
然后勾選上“互聯網共享”,同時會彈出提示,選擇“啟動”
點擊完啟動,互聯網共享被勾選
同時可以點擊步驟3途中的“編輯”按鈕,編輯熱點名稱,和密碼
設置成功后,桌面最上方的bar上,wifi圖標變為 向上的箭頭,這時就可以連接該wifi,使用相應的抓包工具進行抓包了~
用手機連接該wifi
如何使用Wireshark進行抓包
Wireshark是什么
關于Wireshark的詳細介紹可以閱讀以下文檔:
維基百科:http://en.wikipedia.org/wiki/Wireshark
官方文檔:http://www.wireshark.org/docs/
一句簡單的介紹就是,Wireshark是一個廣受好評的開源網絡包協議分析工具。
下載地址http://www.wireshark.org/download.html,可以針對自己的操作系統類型(Windows,Mac,Linux),操作系統位數(i386,amd64)來選擇合適的下載包。下載完成后安裝即可。
使用Wireshark進行抓包
在已經建立并開啟Wifi熱點的前提下,安裝完Wireshark后即可啟動該軟件。
啟動Wireshark后,通過依次點擊菜單欄的“Capture”-“Interfaces”(或者直接按下Ctrl+I快捷鍵),彈出如下界面,可以在該界面選擇要監控的網卡。
此處默認顯示的是各個網卡的IPv6地址,鼠標單擊該IPv6地址可切換顯示其IPv4地址。單從顯示出來Description和IP地址有時候并不能判斷哪一塊網卡是需要監控的。可以通過以下方法是判斷。
i. ? ? ?通過按下“Windows徽標鍵”+R,輸入cmd來啟動DOS命令行;
ii. ? ?輸入以下命令,ipconfig /all,來查看系統中各網卡的信息,需要的信息如圖中黃色部分顯示
iii. ? 選擇建立好的Wifi熱點之后,點擊Start即可開始抓包。
wireshark抓包主界面
一個具體的抓包監控主界面如下圖所示。
選中你所要查看的請求記錄,右鍵選擇“Follow TCP Stream”查看具體內容
至此抓包成功。
常用的工具欄工具
常用的工具欄工具有兩個,一個是停止抓包,一個是重新開始抓包(“清屏”)。
過濾器
過濾器的作用是從眾多的網絡請求中過濾出符合我們特定需求請求的工具。
由于Wireshark會記錄每一條網絡請求,不論是HTTP協議的每一次握手,還是FTP的每一次請求,不論是TCP,還是UDP都會被記錄,這樣的好處是可以記錄每一條記錄而不會有“漏網之魚”,不好的地方在于,在大量的請求中找到我們需要的那一條就不容易了。
因此就有了過濾器工具。
過濾器的使用是:編寫過濾器規則——應用過濾器規則。過濾器規則的應用可以通過過濾器欄的Apply來應用。如圖
幾個常用的簡單過濾器規則
過濾出所有的HTTP包請求
在filter的輸入框中輸入“http”(不含引號),然后點擊Apply
過濾出所有包含php關鍵詞的請求
在filter的輸入框中輸入“http.request.full_uri contains php”(不含引號),然后點擊Apply
過濾出所有含有特定域名的請求
在filter的輸入框中輸入“http.request.full_uri contains haoma.sogou.com”(不含引號,其中的haoma.sogou.com代指的是特定的域名),然后點擊Apply
過濾出所有的GET方法請求
在filter的輸入框中輸入“http.request.method==”GET””(不含引號),然后點擊Apply