一、Burpsuite抓包問題
由于如今的應用已經逐漸對安卓應用的版本都在提高,有部分應用已經只兼容來安卓9了,不兼容安卓7,因此剛開始的時候可能會發現模擬器能抓到瀏覽器的包,但是抓不到App包的情況。這是因為安卓7以上默認已經不信任用戶安裝的證書了,因此需要使用adb將證書導入系統進行安裝,以夜神模擬器安卓9為例。
1. 首先從burpsuite中生成證書,保存。
2. 導出的證書是DER格式的,需要轉成PEM格式的證書,可以使用kali自帶的openssl直接進行轉換,并計算證書的MD5的值,并將證書命名為MD5的值。
?
openssl x509 -inform DER -in cacert.der -out cacert.pem openssl x509 -inform PEM -subject_hash_old -in cacert.pem
?
?
3. 找到夜神模擬器的bin目錄,使用adb.exe輸入以下命令上傳證書
?
?
adb.exe devices 查看運行中的設備 adb.exe push 9a5ba575.0 /sdcard/ 將證書推入到sdcard中 adb.exe shell 進入shell交互模式 mount -o remount,rw /system 重新掛載寫入system cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/ 將證書復制到系統安全目錄 chmod 644 /system/etc/security/cacerts/9a5ba575.0 賦予證書讀寫權限 reboot 重啟
?
?
4. burpsuite開啟監聽,并設置代理服務器,這里本機的ip地址為192.168.1.101。
5. 抓包成功
二、LPosed+JustTrustMe繞過SSL?Pining
以上方式是最簡單進行抓包的方式,假如對方服務器啟用了SSL Pinning機制,那么可能依舊會無法捕捉到包,因為當我們使用抓包工具抓包時,抓包工具在攔截了服務端返回的內容并重新發給客戶端的時候使用證書不是服務器端原來的證書,而是抓包工具自己的,抓包工具原來的證書并不是APP開發者設定的服務端原本的證書,于是就構成了中間人攻擊,觸發SSL Pinning機制導致鏈接中斷,所以我們無法直接抓到包,這里使用低于安卓7版本的手機可能會沒問題,但是App不一定兼容,因此要其它解決辦法,可以使用Lposed即以Xposed為基礎的框架進行繞過,以下是詳細步驟。
1. 安裝Magisk,這里我安裝的是Magisk-delta 25.2版本,下載地址如下:
?
?
https://github.com/topjohnwu/Magisk/releases
?
?
下載好后,直接將Magisk拖入夜神模擬器中,點擊本地安裝,在線安裝需要翻墻才可以。
點擊安裝,安裝完成后,會ti's提示需要重啟,這里先不進行重啟,先將夜神模擬器設置的root權限關閉,關閉重啟,即可將Magisk安裝完成。
安裝完成后,打開Magisk,點擊右上角的設置,允許Zygisk運行即可。
2. 安裝Lposed框架,我下載的是zygisk版本的,下載地址如下:
?
?
https://github.com/LSPosed/LSPosed/releases
?
?
直接將下載好的zip壓縮包拖入到夜神模擬器中,然后打開Magisk,選擇模塊,本地安裝,然后選中Lposed的安裝包,加載完成后,重啟。
3. 重啟之后,進入/data/adb/lspd 目錄,出現manager.apk包,點中,選擇安裝。
4. 如果出現了解析包出現錯誤,哪就直接從Lposed框架中解壓出manager.apk,直接拖入模擬器中即可成功。
5. 能夠打開,即安裝成功。
下載JustTrustMe模塊,拖入到夜神模擬器中,在Lposed的模塊中啟用即可成功繞過SSL Pining進行抓包。
三、小程序反編譯
在對小程序進行滲透時,一般除了測試小程序的功能點之外,最好的方式就是將小程序反編譯,查看一下源碼,特別是當小程序每一個數據包都會將小程序提交給后端的數據進行簽名一并提交的時候,就不得不反編譯小程序查找簽名的算法來進行偽造數據,相當于前端的js進行了加密一樣。
1. 首先,當你運行了小程序,并且使用了各小程序的功能的時候,小程序的打包文件其實就存儲在了你的手機存儲當中,文件后綴為wxapkg,只不過存在主包和分包的區別,比如我的夜神模擬器的存儲目錄就是/data/data/com.tencent.mm/MicroMsg/e594472a09487567540796a08a51a24f/appbrand/pkg中,中間很長那段e594472a09487567540796a08a51a24f可能為有所變化。
2. 將這些生成的打包全部刪除,重新訪問一個小程序,把它的所有頁面都走一遍,就會發現有新出現的幾個wxapkg包,這幾個包就是小程序的包,進行解包即可,解包使用wxappUnpacker進行解包,需要node.js環境。
?
?
npm install npm install esprima npm install css-tree npm install cssbeautify npm install vm2 npm install uglify-es npm install js-beautify
?
?
3. 首先使用UnpackMiniApp(小程序包解密).exe查看一下小程序是否被加密。
4. 然后使用wuWxapkg.js對小程序的主包進行解包,如果解包出現錯誤,可能這個包不是主包導致的,當然經常會報錯,但是也會有小程序的代碼出來,可以自己判斷是否找到自己想要的。
5. 雖然這里我也報錯,但是反編譯出來的小程序還算是完整的。
四、APP脫殼、反射大師、Frida
App也一樣,App如果逆向出來java代碼就不說了,這個可以上網搜,也可以看我之前的文章,重點是現在市面上的APP都會進行混淆和加殼操作,一般都是加上諸如騰訊安全、阿里安全等殼,會把很多代碼信息都給隱藏掉,影響人的正常查看,因此需要把這個殼給脫掉,觀看到沒加殼之前的App正常的Java代碼。
這里關于App的掃描和反編譯,也有一個不錯的平臺可以直接使用,自己也經常用來進行反編譯,至于它的漏洞掃描,其實沒有太大的作用,但是它會把Activity、SERVICES、provides以及代碼等各種都列出來,并且會對一下permission的配置、XML的配置等進行檢查,列出危險程度,也比較不錯。
地址如下:
?
?
https://github.com/MobSF/Mobile-Security-Framework-MobSF
?
?
反射大師 1. 首先可以使用檢測殼的工具檢測是否加殼了,諸如AppMessage等等工具。
2. 下面提供兩種方式進行直接脫殼,首先是反射大師,反射大師在安卓9已經不支持了,安卓7安裝XPosed框架以及反射大師后依舊可以使用,這里以夜神模擬器安卓7版本進行演示。
首先直接在游戲中心中搜索Xposed即可進行安裝下載,安裝后進行重啟即可成功,點擊啟動即可,Xposed的作者已經不進去維護了,因為不會再進行更新。 ?
然后去網上找反射大師的apk文件,到處都有,至于官網在哪,自己也不知道,注意不要有后門即可,拖入APK中,打開反射大師,即會提示未激活模塊,進入Xposed進行激活即可。
隨后打開反射大師,選中應用,選擇打開,會有五角星,把每個頁面都跑一遍,會有很多代碼的acivity都出來,選擇進行保存即可。
點擊五角星,最上方可以選擇對應的activity啟動器,點擊當前Activity,寫出Dex,再使用正常的反編譯工具反編譯成jar包后使用jd-gui打開即可。
Frida
反射大師不支持安卓9了,意味著假如應用不兼容安卓7就無法使用了,但是frida是個不錯的解決方案。 1. 首先需要下載frida-server以及frida-dexdump工具。 frida-dexdump可以直接使用python進行下載,或者去github上下載:
?
pip3 install frida-dexdump pip install frida-tools pip install frida
?
?
隨后查看安裝的frida版本,我這里是16.1.4,然后再查看對應安卓模擬器的處理器版本,進而去github下載對應的安卓服務器
?
?
https://github.com/frida/frida/releases
?
?
再利用adbshell將下載的frida拖入到夜神模擬器中,沒報錯即可運行成功。
?
?
adb.exe push frida-portal-16.1.4-android-x86_64.xz /data/local/tmp adb.exe shell cd /data/local/tmp chmod 755 frida-portal-16.1.4-android-x86_64.xz ./frida-portal-16.1.4-android-x86_64.xz
?
?
隨后在Windows中運行frida-hexdump命令即可查看到安卓模擬器正在運行的程序。
可以通過以下命令直接反編譯出轉儲正在運行的應用程序或通過命令指定某個包。
?
?
frida-dexdump -FU frida-dexdump -U -f com.app.pkgname
?
?
五、總結
當然了,關于移動端的東西肯定不止這么點,以后遇到了再學習到了,再補上吧,畢竟版本更替引起的話題是一個永恒不變的話題。
?
?
審核編輯:發貨
?
?
?
評論
查看更多