当前位置:首页 > 百科

安卓渗透

去年秋天,安卓渗透我在一个二手平台上花三百块买了台Pixel 4a。安卓渗透卖家说屏幕有轻微烧屏,安卓渗透其他一切正常。安卓渗透拿到手第一件事不是安卓渗透插卡,是安卓渗透解锁bootloader。这台机器后来成了我测试安卓渗透的安卓渗透专用设备,摔了不心疼,安卓渗透刷坏了也不心疼。安卓渗透

安卓渗透这件事,安卓渗透门槛比很多人想象的安卓渗透低。你不需要一台root过的安卓渗透手机,甚至不需要真机。安卓渗透Android Studio自带的安卓渗透模拟器就能跑大部分测试。但真机有真机的安卓渗透好处——蓝牙、NFC、传感器这些,模拟器模拟得再像,终究是假的。

先搞清楚你要测什么

很多人一上来就装Burp Suite,设代理,抓包。抓了半天发现全是加密流量,什么都看不到。问题出在没搞清楚目标App的通信机制。有些App用了SSL Pinning,你代理一设,它直接拒绝连接。这时候得先脱壳,看看它用了什么加固方案。360加固、腾讯乐固、梆梆,每个的脱壳方法都不一样。

我习惯先用apktool反编译APK,看AndroidManifest.xml。里面有几个关键信息:android:debuggable是不是true,android:allowBackup是不是true,有没有导出组件。这三个随便中一个,后面的路就好走很多。

有次遇到一个App,allowBackup设成了true。我直接用adb backup把整个应用数据拉了出来,里面有个SQLite数据库,存着用户的登录token。没root,没逆向,五分钟搞定。开发人员可能觉得备份功能无所谓,但对渗透测试来说,这就是敞开的门。

Frida是绕不过去的坎

动态插桩工具里,Frida目前没有对手。Xposed框架太笨重,改一次要重启,Frida直接attach到进程就行。写个hook脚本,几行代码就能打印出加密前的明文。

但Frida也不是万能的。有些App会检测Frida的默认端口27042,或者扫描内存里有没有frida-agent这个字符串。遇到这种情况,要么改端口,要么用frida-gadget注入。改端口简单,frida-server -l 0.0.0.0:8080,但有些检测是针对Frida的通信协议特征,改端口没用。这时候就得用hluda或者strong-frida这类魔改版本。

我见过最狠的一个App,检测到Frida后直接闪退,连日志都不留。后来用frida-gadget把so文件打包进APK,重新签名安装,才绕过去。整个过程花了两个晚上,大部分时间在跟签名校验斗智斗勇。

别忽视那些“老土”的方法

现在很多人一提到安卓渗透就想到Frida、Xposed、Magisk,好像不用这些就不够高级。但有些场景下,adb命令比什么都好使。

adb shell dumpsys activity top能看到当前Activity的完整信息,包括Intent里的extra数据。有次测试一个金融类App,转账页面跳转时把金额和收款账号放在Intent里明文传递。我用am start直接构造了一个Intent,把收款账号改成了自己的。当然,这是授权测试,不然我现在应该在踩缝纫机。

adb shell pm list packages -f能列出所有安装包及其路径。配合adb pull,可以把系统预装应用也拉出来分析。有些厂商会把调试接口留在系统应用里,这些接口往往权限很高,又没人维护。

写到最后

安卓渗透的核心不是工具,是思路。工具会过时,Frida今天能用,明天可能就被检测了。但思路不会——搞清楚数据从哪来、到哪去、经过谁的手,这个逻辑放之四海皆准。

我那台Pixel 4a现在还在用,屏幕上的烧屏痕迹越来越明显了。每次看到那个淡淡的残影,就想起当时为了绕过一个检测熬到凌晨三点的自己。技术这东西,说到底还是人在用。工具再强,也得看谁握着。

分享到: