在移动APP渗透的技术分享中,现在很多APP都是经过第三方加固、加壳,如何在高防御环境下进行APP渗透呢?
以xserver工具为例,我走了一些弯路,在这里记录下来。
还有,感谢刘辉同学的帮助。
一、测试对象
某高速通,经过360加固,抓包无法抓到明文,数据基本都是加密的。
像这样无法知道明文,是没有办法进行数据的查看、修改的。所以我们后续的渗透需要知道数据的加密和解密点在哪里。
二、xserver
使用mumu模拟器,确定拥有root权限之后
xposed激活xserver模块
在xserver中选择我们的对象,然后进行端口转发。
adb forward tcp:8000 tcp:8000
打开浏览器,输入127.0.0.1:8000/如下图,就说明xserver以及启动成功
三、查找、定位加密函数
由于传输的数据进行了加密,所以我们需要找出解密函数并对其进行hook,再调用它对数据进行解密,就可以查看明文数据了。
一般寻找加密点、decode、decrypt、AES等等,这里我使用AES进行搜索。
可以看到这些类中存在decrypt、encrypt等关键函数,点击进行hook。
点击APP运行,不一会我们看到了decrypt被hook,并打出了堆栈。
继续点击该decrypt方法
这时说明,当我们再次点击APP某位置时,只要decrypt方法被触发,就会将数据弹到我们的burp中。
果然,从1处可以看出来是经过127.0.0.1:8000转发来的,2处是APP后台发来的加密数据,3是APP调用的解密函数。
继续查看调用返回。
继续forward,果然,加密类数据已被成功解析出来,我们可以随便在burp进行修改,然后经过转发传给APP,这个过程我们就完成了在不进行脱壳进行解密、查包、改包的作用了,和常规的Web接口渗透一样。