天天看點

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

0x00 摘要

在移動逆向分析以及 App 開發的時候,總會需要對其網絡行為進行監控測試,本文總結一些抓包思路,并對其使用方法進行實踐

筆者認為在抓包界,Wireshark 應該算是綜合排名第一的工具(其實 Wireshark 自帶的指令行工具 tshark 更牛逼)

本文總結記錄了 5 種抓包方式,掌握其一即可進行實踐,歡迎大家一起交流分享

0x01 基于 Wireshark

實驗步驟:

1.1 在電腦主機上使用獵豹 Wifi之類的工具,開啟熱點,将所要測試的手機連接配接該熱點,記錄其IP位址

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

1.2 使用 Wireshark 對以上 IP 位址進行捕獲

Capture——Options

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

1.3 總結

該方法簡單粗暴高效,可以将捕獲的資料包随時儲存下來,便于後續分析或者進行 PCAP 可視化分析。

關于指令行工具 tshark 在此不做贅述,感興趣的讀者自行研究。

0x02 基于 tcpdump

實驗環境:

下載下傳安裝 Genymotion 安卓虛拟機,在該模拟器環境種進行實踐操作(基于實體手機亦然,前提是手機必須得 ROOT)

筆者僅在 Android 系統下測試,未在 iOS 系統下實驗

實驗步驟:

2.1 說明

模拟器中自帶的 tcpdump 工具,位于: /system/xbin/ 目錄下

2.2 資料包捕獲

可以通過 adb shell 指令在 CMD 模式下連接配接模拟器,su 到 root 模式進行抓包

tcpdump -vv -s  -i eth1 -w /sdcard/capture.pcap
           

參數說明:

  • -vv:擷取詳細的包資訊(注意是兩個 v 不是 w)
  • -s 0:不限資料包的長度,如果不加則隻擷取標頭
  • -w xxx.pcap:捕獲資料包名稱以及存儲位置(本例中儲存在 sdcard 路徑下,資料包名為 capture.pcap)
  • -i eth1:捕獲制定的網卡(在 genymotion 虛拟機中,使用 busybox ifconfig 指令可以檢視相關資訊,一般 genymotion 的 ip 位址都為 10.xx.xx.x)
  • 如果你想指定捕獲的資料包長度,可以使用 -c 參數(例如 -c 128)

捕獲結束,直接按 Ctrl + C 即可

2.3 資料分析

将捕獲到的資料包拖到本地使用 Wireshark 進行檢視:

adb pull /sdcard/capture.pcap C:\tmp
           

TIPS:将資料封包件 push 到手機上指令為

adb push C:\tmp\capture.pcap /sdcard/
           

0x03 基于 Fiddler 4

實驗步驟:

3.1 下載下傳 FIddler 4

點選下載下傳 Fiddler 4

3.2 設定 Fiddler 4

打開Fiddler,Tools-> Fiddler Options (配置完成記得重新開機 Fiddler)

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

3.3 設定手機代理

首先,擷取安裝 Fiddler 4 的 PC 對應的 IP 位址(ipconfig):

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

確定手機和 PC 是連接配接在同一個區域網路中!!!

下面對手機進行設定(筆者使用小米測試機):點選手機中“設定”——Wi-Fi——選擇已經連接配接的wifi——代理設定改為手動

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

下載下傳 Fiddler 的安全證書

使用手機浏覽器通路:http://10.2.145.187:8888,點選”FiddlerRoot certificate”,然後安裝證書即可。

至此,已經全部設定完畢。

3.4 資料包捕獲

重新打開 Fiddler 4,然後打開手機中的浏覽器,通路任意網址,Fiddler 抓包資訊如下:

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

Enjoy!

0x04 基于 Charles

實驗環境:

win7 + Charles v3.11

一般使用 Charles 都是基于 MAC OS ,筆者在 mac 平台以及 windows 平台均試驗過,操作過程和思路基本一緻,是以,本文以 win7 為測試環境

實驗步驟:

4.1 捕獲 http 資料包

手機設定代理:

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

打開 Charles 即可捕獲資料包(Proxy —— Proxy Settings):

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

4.2 捕獲 https 資料包

手機端安裝證書:

Android 手機或者 iPhone 均可直接通路 http://www.charlesproxy.com/ssl.zip ,然後根據圖示點選證書安裝

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

設定 Charles:

選擇 Proxy —— SSL Proxying Settings —— Locations —— Add

在彈出的表單中填寫 Host 域名(也就是你想要抓包連結的主機名),以及對應的 Port 端口(此處相當于過濾作用)

當然,你可以采用更加粗暴的方式:使用通配符,例如你想要捕獲所有的 https 包,這裡也可以直接都為空,表示捕獲所有的主機和端口;或者都分别填“*”星号,比對所有的字元,捕獲所有的 https。

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

0x05 基于 Burpsuite

實驗步驟:

5.1 捕獲 http 資料包

PC 端 Burpsuite 設定:

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

手機端代理設定方法同以上 3.3 4.1

打開 Burpsuite 即可捕獲 http 資料包:

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

5.2 捕獲 https 資料包

手機端設定好代理之後,使用浏覽器通路:http://burp/

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

此處存在一個問題:下載下傳的證書是 der 格式的,我們手機端安裝的是 crt 格式的,需要使用 firefox 浏覽器轉一下格式:可以首先在 Brupsuite 中導出 der 格式證書,然後導入火狐浏覽器,然後從火狐浏覽器導出證書格式為 crt

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

打開火狐浏覽器:工具——選項——進階——證書——檢視證書

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻
淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

成功捕獲 https 資料包

淺析手機抓包方法實踐0x00 摘要0x01 基于 Wireshark0x02 基于 tcpdump0x03 基于 Fiddler 40x04 基于 Charles0x05 基于 Burpsuite0x06 總結0x07 參考文獻

0x06 總結

  • 當我們停止捕獲資料包時,将Fiddler 或 Charles關閉,此時手機端是無法正常通路網絡的,因為設定了代理,這時候需要将代理關閉,即可正常浏覽網頁
  • 對于大多數走代理的應用可以選擇 Fiddler 或 Charles,無需 root,一次配置,終身使用;對于不走代理的 App 可以利用 tcpdump 捕包,然後使用 Wireshark 檢視;最簡單便捷的便是第一種方法「0x01. 基于 Wireshark」
  • 以上所有工具各有優劣,讀者可以根據工作環境,按需使用,個人覺得一般情況下使用 Wireshark + Fiddler 或者Wireshark + Charles 即可完成各平台的抓包分析任務
  • 以上工具中隻有BurpSuite可以對抓包過程進行互動式操作;Wireshark支援的協定最多,也更底層,功能強大,但過于沉重
  • 對于本文涉及的相關工具的安裝、設定、破解、詳細使用,不在本文讨論範圍之内(Charles免費版其實還比較厚道,如果重度需要,建議購買正版),本文旨在淺析捕獲移動終端資料包的方法和思路

0x07 參考文獻

  1. 抓包工具Fidder詳解
  2. Mac上的抓包工具Charles
  3. 網絡抓包工具Charles的介紹與使用
  4. charles使用教程指南
  5. Android安全測試之BurpSuite抓包
  6. Android利用tcpdump和wireshark抓取網絡資料包

繼續閱讀