HTTPS流量都會涉及證書問題,
證書認證
SSL 單向認證
App使用了證書固定(Pinning)技術后,在這個場景里抓包,App會返回網絡出錯,且無法獲取數據的信息。
采用了證書固定技術(SSL Pinning),即應用在與服務器建立SSL/TLS連接時,會驗證服務器的證書或公鑰是否匹配預定的值。如果證書不匹配,連接會被拒絕,導致無法通過中間人攻擊(例如抓包)獲取流量。很多應用為了防止SSL/TLS劫持(例如防止抓包工具的中間人攻擊),都會使用這種技術。
解決方法:
-
SSL Pinning通常需要繞過(例如修改應用代碼或利用某些工具進行繞過)。
-
降低Android版本,7.0后的系統才可以把證書裝在系統信任里。
-
采用Xposed框架 和 JustTrustMe模塊 或者 sslunpining模塊。
JustTrustMe是基于Xposed的一個模塊,可以禁用SSL證書檢查從而抓取此應用所有網絡流量,不過該模塊的禁用方法是針對固定名稱的特定函數所以經常會遇到不友好的模擬器或者App導致禁用失效。
SSL 雙向認證
不走代理
NoProxy(不走代理的App)抓包問題,
這種情況是在使用代理之后抓包工具并未捕獲到數據,而且不論是開啟還是關閉時,都不影響App正常的數據加載。
如果源碼的網絡請求接口部分有NO PROXY,那么更能說明問題,因為Android系統設置的代理并不是強制對所有App生效的,App可以在網絡請求類庫中通過自定義代理設置,選擇是否要走系統代理。
現象:charles抓不到包,但Wireshark、HttpAnalyzor可以抓到包。
此時可以使用postern、drony將移動設備的請求直接轉發到抓包軟件,相當于抓Android系統的包。postern、drony在之前的章節中均有使用案例。
當然也可以從源碼上進行處理,比如使用Frida去Hook設置代理的函數。
其他——APP抓不到包的情況
APP無法抓包的原因有很多,以下是一些常見的可能性:
-
應用采用了 HTTPS 并使用了加密
現代應用普遍采用HTTPS(即SSL/TLS加密)來保護數據傳輸。如果你沒有正確配置抓包工具,無法解密HTTPS流量,也無法看到請求的內容。抓包工具(如Fiddler、Charles、Wireshark)需要使用特定的證書來解密HTTPS流量,否則你只能看到加密的流量,而無法分析請求。解決方法: 需要在抓包工具中安裝并信任抓包工具的根證書,以便解密HTTPS流量。
-
應用使用了加密或混淆技術
一些應用可能會對網絡數據進行加密或混淆,增加抓包的難度。這種做法并不直接與透明證書相關,但可能會使抓包工具無法直接獲取明文數據。解決方法: 需要對加密或混淆技術進行逆向工程,找到解密方法。
-
應用通過 VPN 或其他網絡隧道傳輸數據
一些應用可能使用VPN或其他網絡隧道(如Tor)來加密網絡通信,或者通過特定的網絡代理進行通信,這樣即使你在同一網絡環境下,抓包工具也可能無法直接捕獲到數據包。解決方法: 需要配置抓包工具監聽正確的網絡接口,或者直接在應用的網絡配置中找到相關的代理和隧道設置。
技巧
協議降級
https —— http
以此類推。
自定義協議
原則上也是修改參數,讓它降為HTTPS;
工具
Burpsuite
應該是最好用的HTTP/HTTPS抓包測試工具。
Fiddler/Charles
也是HTTP/HTTPS抓包,但是沒有burpsuite好用;
MitmProxy
開源、可交互的HTTPS代理,
可以寫插件、腳本、
配合Python對攔截包的數據進行參數修改,
可以在Linux上運行;
HTTP AnalyzerStd V7
HTTP AnalyzerFull V7是數據包分析工具,用于性能分析、調試和診斷。使用方式和fiddler、charles等差不多。但是它可以捕獲來自某些特定進程或用戶/會話/系統范圍應用程序的HTTP/HTTPS流量。比如在Windows應用程序中捕獲HTTP信息,而無須從HTTP Analyzer中啟動它們。
如果遇到某些不需要HTTP協議的App,可以用它來監聽模擬器應用的請求,來確定一下接口。
HTTP Canary - 黃鳥
HttpCanary 已更名為Reqable,
android平臺下的網絡分析工具,
支持在android下抓 TCP/UDP/HTTP/HT-TPS/websocket等協議;
Postern
Postern是一個免root的Android全局代理工具/虛擬網絡管理工具,它的主要作用是將普通代理設置為VPN代理,由于VPN代理處于網絡層,可以配置抓包工具讓大家抓到更多的數據包;
Drony
Drony是一個Android VPN代理工具,不需要root環境也可完成代理身份認證。 Drony和Postern類似,可以轉發App的所有請求,而不是去設置手機Wi-Fi代理,所以也可以配合charles、fiddler完成定向抓包,去抓取那些不走代理的請求,
Wireshark
這個肯定能抓包,但是缺點是:
- 對于加密的數據,沒辦法明文顯示;
- 對于HTTP/HTTPS的數據包展示不太友好,那種二進制的顯示方式,雖然能轉換。(他是全協議棧抓包,主要以二進制為主。)
- 無法重放,需要粘貼出去自己構造包;
Rerference
滲透測試之App與小程序工具總結
https://xz.aliyun.com/t/13280?time__1311=GqmxuD0DnD9D2BDlh+t0=KKY564Wq4xwRipD#toc-0
筆記:
夜神的adb是專用的,在安裝包的~\Nox\bin目錄下有個nox_adb.exe
浙公網安備 33010602011771號