公眾號:白帽子左一
領取配套練手靶場、安全全套課程及工具...
前言
在日常滲透項目中,App滲透可以說是家常便飯了。
但由于Android/ target=_blank class=infotextkey>安卓7以后不信任用戶安裝的證書,很多時候無法正常抓取數據包,很是煩人。網上大多數的解決方法都是去買一個低版本的安卓手機來測試,我最開始也是這樣做的,可自從遇到一些安卓7以下無法運行的app的時候,就發現這種方法還是不靠譜。
既然用戶安裝的證書不信任,那能不能直接從系統裝呢?
經過一番問詢和搜索后,確實是可以的。所以又是幾天的實驗和整理,就有了這篇文章。整理出來方法稍微復雜,但可以一勞永逸,不管是針對實體機還是模擬器,不管是安卓7還是安卓10,都可以完美解決因證書不信任問題導致的無法抓取數據包。
環境說明
本次實驗使用的實體機是一加5,系統是安卓10,已root,抓包軟件使用的是burpsuite。
正文
一、openssl轉換burp證書格式
- 首先運行burpsuite,導出證書至桌面
- 安裝openssl環境
openssl用于證書格式轉換,windows下安裝很簡單,參考以下鏈接從第2步安裝即可:
https://blog.csdn.net/sunhuansheng/article/details/82218678
- 安裝成功后,進行證書格式轉換。cmd命令行模式下輸入:
openssl x509 -inform DER -in cacert.der -out cacert.pem
- 再計算證書MD5值:
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
- 最后,將證書重命名為:9a5ba575.0
二、adb連接手機shell安裝證書
- 安裝adb工具
很簡單,參考以下鏈接,如果系統裝有夜神模擬器的話,使用夜神自帶的adb工具也是可以的:
https://blog.csdn.net/x2584179909/article/details/108319973
- usb連接手機
這里需要手機開啟usb調試,usb調試是在開發者選項里開啟,怎么打開開發者選項不同手機不一樣,但安卓機都會有,可根據手機型號自行百度。
- adb驗證手機是否已經連接
adb devices
- 上傳證書到手機的/sdcard目錄下:
adb push C:UsersAdministratorDesktop9a5ba575.0 /sdcard/
- 連接手機shell
adb shell
su
- 以讀寫方式(rw)重新掛載/分區:
system目錄默認是只讀權限,通過該方式才能有寫入權限。
mount -o rw,remount -t auto /
mount -o remount,rw /system (上條命令如果報錯使用這條)
- 將證書復制到系統安全目錄并給權限
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
- ****重啟手機
reboot
三、抓包驗證
以上就是全部步驟,在將證書成功導入后,在burp端設置監聽ip和端口,在手機端設置代理后(網上教程很多,可自行百度),就可以順利抓包了。
如下為新浪微博抓包截圖:
總結
以上就是安卓7+因證書問題導致APP無法抓取數據包的解決方法,上面是實體機,但模擬器類似,夜神模擬器從安卓7到安卓9使用同樣方法,全部都可以正常抓包。
參考鏈接
https://blog.csdn.net/sunhuansheng/article/details/82218678
https://blog.csdn.net/x2584179909/article/details/108319973
原文地址:
https://sec-in.com/author/5083