淺析手機抓包方法實踐
0x00 摘要
在移動逆向分析以及 App 開發的時候,總會需要對其網路行為進行監控測試,本文總結一些抓包思路,並對其使用方法進行實踐
筆者認為在抓包界,Wireshark 應該算是綜合排名第一的工具(其實 Wireshark 自帶的命令列工具 tshark 更牛逼)
本文總結記錄了 5 種抓包方式,掌握其一即可進行實踐,歡迎大家一起交流分享
0x01 基於 Wireshark
實驗步驟:
1.1 在電腦主機上使用獵豹 Wifi之類的工具,開啟熱點,將所要測試的手機連線該熱點,記錄其IP地址
1.2 使用 Wireshark 對以上 IP 地址進行捕獲
Capture——Options
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 0 -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)
3.3 設定手機代理
首先,獲取安裝 Fiddler 4 的 PC 對應的 IP 地址(ipconfig):
確保手機和 PC 是連線在同一個區域網中!!!
下面對手機進行設定(筆者使用小米測試機):點選手機中“設定”——Wi-Fi——選擇已經連線的wifi——代理設定改為手動
下載 Fiddler 的安全證書
使用手機瀏覽器訪問:http://10.2.145.187:8888,點選”FiddlerRoot certificate”,然後安裝證書即可。
至此,已經全部設定完畢。
3.4 資料包捕獲
重新開啟 Fiddler 4,然後開啟手機中的瀏覽器,訪問任意網址,Fiddler 抓包資訊如下:
Enjoy!
0x04 基於 Charles
實驗環境:
win7 + Charles v3.11
一般使用 Charles 都是基於 MAC OS ,筆者在 mac 平臺以及 windows 平臺均試驗過,操作過程和思路基本一致,因此,本文以 win7 為測試環境
實驗步驟:
4.1 捕獲 http 資料包
手機設定代理:
開啟 Charles 即可捕獲資料包(Proxy —— Proxy Settings):
4.2 捕獲 https 資料包
手機端安裝證書:
Android 手機或者 iPhone 均可直接訪問 http://www.charlesproxy.com/ssl.zip ,然後根據圖示點選證書安裝
設定 Charles:
選擇 Proxy —— SSL Proxying Settings —— Locations —— Add
在彈出的表單中填寫 Host 域名(也就是你想要抓包連結的主機名),以及對應的 Port 埠(此處相當於過濾作用)
當然,你可以採用更加粗暴的方式:使用萬用字元,例如你想要捕獲所有的 https 包,這裡也可以直接都為空,表示捕獲所有的主機和埠;或者都分別填“*”星號,匹配所有的字元,捕獲所有的 https。
0x05 基於 Burpsuite
實驗步驟:
5.1 捕獲 http 資料包
PC 端 Burpsuite 設定:
手機端代理設定方法同以上 3.3 4.1
開啟 Burpsuite 即可捕獲 http 資料包:
5.2 捕獲 https 資料包
手機端設定好代理之後,使用瀏覽器訪問:http://burp/
此處存在一個問題:下載的證書是 der 格式的,我們手機端安裝的是 crt 格式的,需要使用 firefox 瀏覽器轉一下格式:可以首先在 Brupsuite 中匯出 der 格式證書,然後匯入火狐瀏覽器,然後從火狐瀏覽器匯出證書格式為 crt
開啟火狐瀏覽器:工具——選項——高階——證書——檢視證書
成功捕獲 https 資料包
0x06 總結
- 當我們停止捕獲資料包時,將Fiddler 或 Charles關閉,此時手機端是無法正常訪問網路的,因為設定了代理,這時候需要將代理關閉,即可正常瀏覽網頁
- 對於大多數走代理的應用可以選擇 Fiddler 或 Charles,無需 root,一次配置,終身使用;對於不走代理的 App 可以利用 tcpdump 捕包,然後使用 Wireshark 檢視;最簡單便捷的便是第一種方法「0x01. 基於 Wireshark」
- 以上所有工具各有優劣,讀者可以根據工作環境,按需使用,個人覺得一般情況下使用 Wireshark + Fiddler 或者Wireshark + Charles 即可完成各平臺的抓包分析任務
- 以上工具中只有BurpSuite可以對抓包過程進行互動式操作;Wireshark支援的協議最多,也更底層,功能強大,但過於沉重
- 對於本文涉及的相關工具的安裝、設定、破解、詳細使用,不在本文討論範圍之內(Charles免費版其實還比較厚道,如果重度需要,建議購買正版),本文旨在淺析捕獲移動終端資料包的方法和思路
0x07 參考文獻
相關文章
- 用fiddler實現手機抓包
- Charles 手機抓包
- 移動端防抓包實踐
- Fiddler(三)Fiddler設定手機抓包
- mac ---Charles抓包---ios蘋果手機MaciOS蘋果
- fiddler 電腦 手機 連線抓包
- 使用whistle軟體對手機抓包
- 使用 charles 或 Fiddle 抓 Android 手機包Android
- 手機抓包+注入黑科技HttpCanary——最強大的Android抓包注入工具HTTPPCAAndroid
- 淺析Block閉包BloC
- NX實現機制淺析
- Charles對Android手機Https請求的抓包AndroidHTTP
- PHP Clourse(閉包類) 淺析PHP
- 如何對手機http進行抓包?Fiddler工具超好用HTTP
- java閉包和回撥淺析Java
- MVVM機制淺析MVVM
- SpringBoot魔法堂:應用熱部署實踐與原理淺析Spring Boot熱部署
- 在 ios 手機上用 charles 抓包,抓取不到 wss 資料。iOS
- 計算機網路實驗二——利用wireshark抓包計算機網路
- Libco Hook 機制淺析Hook
- 淺析方法控制程式碼
- Fiddler抓包---手機APP--python爬蟲 基本設定和操作APPPython爬蟲
- 使用Fiddler對iPhone蘋果手機進行資料抓包分析iPhone蘋果
- Charls抓包,手機端下載安裝證書常見問題
- tcpdump抓包及tshark解包方法介紹TCP
- HandyJSON實現方案淺析JSON
- 實戰:tcpdump抓包分析三次握手四次揮手TCP
- Timer機制原始碼淺析原始碼
- PostgreSQL MVCC快照機制淺析SQLMVC
- 淺析Vue 中 $nextTick 機制Vue
- js執行機制淺析JS
- 淺析雙親委派機制
- 淺析 Vue 2.6 中的 nextTick 方法Vue
- 機器學習落地遊戲實踐簡析機器學習遊戲
- IP和TCP抓包分析實驗TCP
- 解決Charles手機抓包出現unknown和亂碼的問題
- Https抓包HTTP
- tcpdump抓包TCP