APP渗透测试之安卓APP抓包
之前說(shuō)過(guò)一些信息搜集相關(guān)的東西(漏了APP沒(méi)講),按照滲透測(cè)試的完整流程,我作為測(cè)試,測(cè)個(gè)APP,也很合理吧
既然能用burpsuite測(cè)試web,那就能用burpsuite測(cè)試APP(有大佬自稱(chēng)用burpsuite行走江湖多年,靠插件和經(jīng)驗(yàn)打遍天下無(wú)敵手)
本次演示采用夜神模擬器+burpsuite v2020.11 ?。ò‘?dāng)然不是因?yàn)橐股褡頽iubility,而是我手頭就有它了 ,如果要抓的APP不能在夜神上運(yùn)行、或者框架安不了,確定是模擬器的問(wèn)題,就換一個(gè)模擬器,什么mumu、雷電、天天、逍遙...)
系統(tǒng)為安卓7 (版本太低的不予討論)
為了抓HTTPS的包,沒(méi)安裝證書(shū)的,自行下載、導(dǎo)入、安裝(簡(jiǎn)單說(shuō)一下,比如瀏覽器安裝證書(shū),如果burpsuite監(jiān)聽(tīng)的是本機(jī)的8080端口,那就瀏覽器訪問(wèn)http://localhost:8080,下載CA證書(shū),然后在瀏覽器中導(dǎo)入cacert.der,安到受信任的根證書(shū)頒發(fā)機(jī)構(gòu),直到看到PortSwigger CA,證明導(dǎo)入成功)
在模擬器配置,長(zhǎng)按網(wǎng)絡(luò)修改網(wǎng)絡(luò),采用代理,IP為本地主機(jī)IP,端口也設(shè)一個(gè),啥都行比如8081
然后在burpsuite中新建一個(gè)綁定代理,選擇本機(jī)IP和剛剛寫(xiě)的端口
最終變成
然后在夜神模擬器中用瀏覽器訪問(wèn)192.168.25.203:8081下載證書(shū)(嫌安全警告彈得煩,也可以在本地機(jī)器設(shè)代理后上訪問(wèn)http://192.168.25.203:8081,下載證書(shū)后再共享到模擬器中安裝)
下載CA證書(shū),然后打開(kāi)模擬器中“下載”可以看到證書(shū)
別忘了把后綴從.der改成.cer(der安不了),然后拖到SD卡的路徑中,到設(shè)置-》安全-》從SD卡安裝,選擇這個(gè)證書(shū)
為證書(shū)起個(gè)名字,設(shè)置PIN碼,隨便搞一個(gè)記得住的,安裝成功之后會(huì)提示安裝成功
完活兒,然后正常來(lái)說(shuō)就可以用burpsuite抓一些模擬器中APP或者其他什么的數(shù)據(jù)包了
but,這只是比較理想的情況
實(shí)際上會(huì)出現(xiàn)各種問(wèn)題:
1.本機(jī)不允許設(shè)置網(wǎng)絡(luò)代理
像我最初做的例子,就屬于開(kāi)了模擬器本機(jī)的代理,那有些APP就是會(huì)檢測(cè)代理,你設(shè)置了本機(jī)代理我干脆就不讓你正常運(yùn)行!怎么搞嘛
常見(jiàn)的一種方法是在模擬器外部抓包來(lái)規(guī)避檢測(cè),比較常規(guī)的辦法就是利用proxifier(當(dāng)然,先要按照之前的步驟安證書(shū),區(qū)別在于這回不用手動(dòng)修改模擬器網(wǎng)絡(luò)代理配置)
配置代理服務(wù)器,選本機(jī)IP,端口8080(burpsuite怎么寫(xiě),這里就怎么寫(xiě),burpsuite默認(rèn)監(jiān)聽(tīng)8080),HTTPS
再配置規(guī)則,名字隨便起,把夜神模擬器進(jìn)程N(yùn)ox.exe(不一定就是這個(gè),看你機(jī)器上顯示的是什么就寫(xiě)什么)導(dǎo)入規(guī)則,代理選之前配的
啟用此規(guī)則
然后用burpsuite即可繞過(guò)限制抓包(吧)
模擬器-》proxifier-》burpsuite
2.APP認(rèn)證機(jī)制
有一個(gè)問(wèn)題:HTTPS抓包一個(gè)樸素的思想是什么?
答:MITM,對(duì)客戶(hù)端偽裝成服務(wù)端,對(duì)服務(wù)端偽裝成客戶(hù)端
這里有一篇介紹HTTPS認(rèn)證原理(單向認(rèn)證、雙向認(rèn)證)的文章,總結(jié)了一下 https://www.cnblogs.com/yaphetsfang/articles/12858356.html
但是有些APP會(huì)采用SSL-Pinning 機(jī)制來(lái)進(jìn)行抵抗抓包
那么,如何繞過(guò)SSL-Pinning機(jī)制呢?(很多東西,模擬器上是用不了的,必須真實(shí)手機(jī)環(huán)境)
(1)老版本安卓系統(tǒng)(7以下)可能會(huì)沒(méi)有針對(duì)第三方證書(shū)的限制,無(wú)此機(jī)制限制,可按照常規(guī)辦法抓包(但前提是APP能在上面正常運(yùn)行)
(2)或者有root權(quán)限,能把這些個(gè)第三方證書(shū)安到系統(tǒng)默認(rèn)預(yù)置的證書(shū)區(qū)里面
(3)再或者 Xposed+JustTrustMe、VitualXposed+JustTrustMe
VitualXposed可以在不需要設(shè)備root的情況下,修改App的行為 https://vxposed.com/
Xpose框架是一款可以在不修改APK的情況下影響程序運(yùn)行或修改系統(tǒng)的框架服務(wù) https://github.com/rovo89/Xposed
JustTrustMe是Github上面的一個(gè)開(kāi)源項(xiàng)目,是xposed中的一個(gè)模塊,用于禁止SSL證書(shū)驗(yàn)證 https://github.com/Fuzion24/JustTrustMe?utm_source=testingpai.com
使用較為復(fù)雜,請(qǐng)參考:
https://blog.csdn.net/u011215939/article/details/95461286
http://www.yxssp.com/23278.html
(4)frida,仍然是比較復(fù)雜,參考:
https://xz.aliyun.com/t/6102
https://www.cnblogs.com/Eeyhan/p/12916162.html
(5)反編譯APK
有殼先脫殼,我等渣渣脫殼只能用大佬寫(xiě)的工具
之后用工具反編譯,之后。。。之后我就不會(huì)了(理直氣壯),安卓一竅不通,正常來(lái)說(shuō)需要修改內(nèi)容
哪位大佬給條明路
3.root檢測(cè)問(wèn)題
很多模擬器默認(rèn)root(先不討論這玩意有沒(méi)有實(shí)際效果),這可能導(dǎo)致部分APP被限制。。。功能,打不開(kāi)、閃退,更沒(méi)法抓包
要么關(guān)掉root
要么繞過(guò)root檢測(cè),檢測(cè)可能會(huì)通過(guò)檢測(cè)系統(tǒng)版本、看看有沒(méi)有安什么root管理器啊、需要root的框架啦什么的
相關(guān)軟件有很多,但本菜雞安卓逆向玩的不好,所以這里就只是提一下,具體方法參考其他師傅們的文章吧
剩下的,就基本上和web測(cè)試一樣了,該用代理池用代理池,該用掃描器用掃描器
未經(jīng)允許,禁止轉(zhuǎn)載
總結(jié)
以上是生活随笔為你收集整理的APP渗透测试之安卓APP抓包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: KVM网络桥接模式解说
- 下一篇: Uncaught RangeError: