0x00 摘要
在逆向分析以及移動(dòng)端開發(fā)的時(shí)候,總會(huì)需要對(duì)APP的網(wǎng)絡(luò)行為進(jìn)行監(jiān)控測(cè)試,本文總結(jié)一些抓包思路,并對(duì)其使用方法進(jìn)行實(shí)踐
在抓包界,Wireshark 應(yīng)該算是綜合排名第一的工具(其實(shí) Wireshark 自帶的命令行工具 tshark 更牛逼)
本文總結(jié)記錄了 5 種抓包方式,掌握其一即可進(jìn)行實(shí)踐,歡迎大家一起交流分享
0x01 基于 Wireshark
實(shí)驗(yàn)步驟:
1.1 在電腦主機(jī)上使用獵豹 Wifi之類的工具,開啟熱點(diǎn),將所要測(cè)試的手機(jī)連接該熱點(diǎn),記錄其IP地址
1.2 使用 Wireshark 對(duì)以上 IP 地址進(jìn)行捕獲
Capture——Options
1.3 總結(jié)
該方法簡(jiǎn)單粗暴高效,可以將捕獲的數(shù)據(jù)包隨時(shí)保存下來,便于后續(xù)分析或者進(jìn)行 PCAP 可視化分析。
關(guān)于命令行工具 tshark 在此不做贅述,感興趣的讀者自行研究。
0x02 基于 tcpdump
實(shí)驗(yàn)環(huán)境:
下載安裝 Genymotion 安卓虛擬機(jī),在該模擬器環(huán)境種進(jìn)行實(shí)踐操作(基于實(shí)體手機(jī)亦然,前提是手機(jī)必須得 ROOT)
筆者僅在 Android 系統(tǒng)下測(cè)試,未在 iOS 系統(tǒng)下實(shí)驗(yàn)
實(shí)驗(yàn)步驟:
2.1 說明
模擬器中自帶的 tcpdump 工具,位于:/system/xbin/ 目錄下
2.2 數(shù)據(jù)包捕獲
可以通過 adb shell 命令在 CMD 模式下連接模擬器,su 到 root 模式進(jìn)行抓包
#!bash tcpdump?-vv?-s?0?-i?eth1?-w?/sdcard/capture.pcap
參數(shù)說明:
-vv:獲取詳細(xì)的包信息(注意是兩個(gè) v 不是 w)
-s 0:不限數(shù)據(jù)包的長(zhǎng)度,如果不加則只獲取包頭
-w xxx.pcap:捕獲數(shù)據(jù)包名稱以及存儲(chǔ)位置(本例中保存在 sdcard 路徑下,數(shù)據(jù)包名為 capture.pcap)
-i eth1:捕獲制定的網(wǎng)卡(在 genymotion 虛擬機(jī)中,使用 busybox ifconfig 命令可以查看相關(guān)信息,一般 genymotion 的 ip 地址都為 10.xx.xx.x)
如果你想指定捕獲的數(shù)據(jù)包長(zhǎng)度,可以使用 -c 參數(shù)(例如 -c 128)捕獲結(jié)束,直接按 Ctrl + C 即可
2.3 數(shù)據(jù)分析
將捕獲到的數(shù)據(jù)包拖到本地使用 Wireshark 進(jìn)行查看:
#!bash adb?pull?/sdcard/capture.pcap?C: mp
TIPS:將數(shù)據(jù)包文件 push 到手機(jī)上命令為
#!bash adb?push?C: mpcapture.pcap?/sdcard/
0x03 基于 Fiddler 4
實(shí)驗(yàn)步驟:
3.1 下載 FIddler 4
3.2 設(shè)置 Fiddler 4
打開Fiddler,Tools-> Fiddler Options (配置完成記得重啟 Fiddler)
3.3 設(shè)置手機(jī)代理
首先,獲取安裝 Fiddler 4 的 PC 對(duì)應(yīng)的 IP 地址(ipconfig):
確保手機(jī)和 PC 是連接在同一個(gè)局域網(wǎng)中?。?!
下面對(duì)手機(jī)進(jìn)行設(shè)置(筆者使用小米測(cè)試機(jī)):點(diǎn)擊手機(jī)中“設(shè)置”——Wi-Fi——選擇已經(jīng)連接的wifi——代理設(shè)置改為手動(dòng)
下載 Fiddler 的安全證書
使用手機(jī)瀏覽器訪問:http://10.2.145.187:8888,點(diǎn)擊"FiddlerRoot certificate",然后安裝證書即可。
至此,已經(jīng)全部設(shè)置完畢。
3.4 數(shù)據(jù)包捕獲
重新打開 Fiddler 4,然后打開手機(jī)中的瀏覽器,訪問任意網(wǎng)址,F(xiàn)iddler 抓包信息如下:
Enjoy!
0x04 基于 Charles
實(shí)驗(yàn)環(huán)境:
win7 + Charles v3.11
一般使用 Charles 都是基于 MAC OS ,筆者在 mac 平臺(tái)以及 windows 平臺(tái)均試驗(yàn)過,操作過程和思路基本一致,因此,本文以 win7 為測(cè)試環(huán)境
實(shí)驗(yàn)步驟:
4.1 捕獲 http 數(shù)據(jù)包
手機(jī)設(shè)置代理:
打開 Charles 即可捕獲數(shù)據(jù)包(Proxy —— Proxy Settings):
4.2 捕獲 https 數(shù)據(jù)包
手機(jī)端安裝證書:
Android 手機(jī)或者 iPhone 均可直接訪問 http://www.charlesproxy.com/ssl.zip ,然后根據(jù)圖示點(diǎn)擊證書安裝
設(shè)置 Charles:
選擇 Proxy —— SSL Proxying Settings —— Locations —— Add
在彈出的表單中填寫 Host 域名(也就是你想要抓包鏈接的主機(jī)名),以及對(duì)應(yīng)的 Port 端口(此處相當(dāng)于過濾作用)
當(dāng)然,你可以采用更加粗暴的方式:使用通配符,例如你想要捕獲所有的 https 包,這里也可以直接都為空,表示捕獲所有的主機(jī)和端口;或者都分別填“*”星號(hào),匹配所有的字符,捕獲所有的 https。
0x05 基于 Burpsuite
實(shí)驗(yàn)步驟:
5.1 捕獲 http 數(shù)據(jù)包
PC 端 Burpsuite 設(shè)置:
手機(jī)端代理設(shè)置方法同以上 3.3 4.1
打開 Burpsuite 即可捕獲 http 數(shù)據(jù)包:
5.2 捕獲 https 數(shù)據(jù)包
手機(jī)端設(shè)置好代理之后,使用瀏覽器訪問:http://burp/
此處存在一個(gè)問題:下載的證書是 der 格式的,我們手機(jī)端安裝的是 crt 格式的,需要使用 firefox 瀏覽器轉(zhuǎn)一下格式:可以首先在 Brupsuite 中導(dǎo)出 der 格式證書,然后導(dǎo)入火狐瀏覽器,然后從火狐瀏覽器導(dǎo)出證書格式為 crt
打開火狐瀏覽器:工具——選項(xiàng)——高級(jí)——證書——查看證書
成功捕獲 https 數(shù)據(jù)包
0x06 總結(jié)
當(dāng)我們停止捕獲數(shù)據(jù)包時(shí),將Fiddler 或 Charles 關(guān)閉,此時(shí)手機(jī)端是無(wú)法正常訪問網(wǎng)絡(luò)的,因?yàn)樵O(shè)置了代理,這時(shí)候需要將代理關(guān)閉,即可正常瀏覽網(wǎng)頁(yè)
對(duì)于大多數(shù)走代理的應(yīng)用可以選擇 Fiddler 或 Charles,無(wú)需 root,一次配置,終身使用;對(duì)于不走代理的 App 可以利用 tcpdump 捕包,然后使用 Wireshark 查看;最簡(jiǎn)單便捷的便是第一種方法「0x01. 基于 Wireshark」
以上所有工具各有優(yōu)劣,讀者可以根據(jù)工作環(huán)境,按需使用,個(gè)人覺得一般情況下使用 Wireshark + Fiddler 或者 Wireshark + Charles 即可完成各平臺(tái)的抓包分析任務(wù)
以上工具中只有BurpSuite可以對(duì)抓包過程進(jìn)行交互式操作;Wireshark支持的協(xié)議最多,也更底層,功能強(qiáng)大,但過于沉重
編輯:黃飛
?
評(píng)論
查看更多