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