Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

栏目: IT技术 · 发布时间: 3年前

内容简介:对于像我这种不会拖壳、逆向的菜鸡来说,是很痛苦的,frida的hook老是不成功,写的代码总是运行不起来,别说有多痛苦了,最后找啊找,终于找到了一款xposed的插件Xserver(此处膜拜作者一万年)可以图形化及自动化的协助我们hook想要hook的方法,从而可以协助我们遇到数据加密的场景下对内容进行解密,从而帮助我们继续测试下去,(其实此工具能实现的绝对不止数据加解密,只是平常遇到较多的是这种而已)

背景

相信很多小伙伴在日常APP安全测试的过程中都会遇到数据包被加密的情况,如

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

对于像我这种不会拖壳、逆向的菜鸡来说,是很痛苦的,frida的hook老是不成功,写的代码总是运行不起来,别说有多痛苦了,最后找啊找,终于找到了一款xposed的插件Xserver(此处膜拜作者一万年)可以图形化及自动化的协助我们hook想要hook的方法,从而可以协助我们遇到数据加密的场景下对内容进行解密,从而帮助我们继续测试下去,(其实此 工具 能实现的绝对不止数据加解密,只是平常遇到较多的是这种而已)

(备注:我不是工具作者,我只是工具的搬运工,本文只是一篇工具使用科普而已。。。大佬勿喷)

测试环境

WIN10

逍遥模拟器

Xposed

使用步骤

由于Xserver  是一款基于Xposed的HOOK框架,所有Xposed的安装是必须的,针对逍遥模拟器,可直接在其应用商店安装即可,

Xserver的安装地址 https://github.com/monkeylord/XServer

安装完成后,进入Xserver,会提示模块未激活,

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

此时可以进入xposed里面看下是否进行了勾选

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

然后重启模拟器在进入就不会再有提示了,如果还不行,请重装xposed

一切就绪后先通过ADB连接模拟器

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

紧接着,需要将Xervser的web端口转发到本地,默认是8000端口

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

需要注意的是,如果转发了8000端口本地还访问不到,那可能因为某些原因它初始化的时候没有在8000上,所以这个时候需要通过找PID的值进行转发。

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

这样子就已经转发成功了,这时候进入Xserver选中待测试的APP

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

然后回到桌面,打开被选中的待测试APP后,在本地访问127.0.0.1:8000,即可成功hook的web界面了

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

接下来主要介绍两个功能,一个是trace,访问地址是 http://localhost:8000/tracer

一个是hook,访问地址是 http://localhost:8000/invoke

模拟器设置好burp代理,打开待测试的APP,抓包发现返回是加密的

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

此处的思路是返回包被加密,那么程序里一定有一个函数或方法会对其进行解密,且一般的解密的函数命名都有decry之类的字符(只是一般情况下),因此只需对对应的解密函数进行hook就好了,所以我们要做的就是首先加载APP的所有的方法

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

点击此按钮,加载APP所有的方法

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

可以看到成功加载了9W+方法,然后盲猜对应的解密方法中有decry之类的字符,进行匹配

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

可以看到总共有33个方法,那我们就直接**多所有的方法进行hook,这时回到APP,随意发起网络请求

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

从burp的返回中我们可以看到返回的内容是加密的

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

不过没关系,我们再去到hook的web界面中可以看到数据包已经被解密出来了,对应的加解密方法、解密密钥也在其中

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

图中的字符为unicode编码,此时只需要再转码一次即可

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

说完tracer,就该说说invoke了,我对他的理解就是,可以直接脱离测试APP本身,直接通过Xserver进行调用前面hook的方法进行使用,如回到刚刚tracer那里,我们可以看到已经输出了APP中对应的解密方法,因此点击可直接进入此方法的view

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

此时我们只需要将对应的参数填进栏目里即可,此时的参数就是从trace中输出的相关参数,注意不要把#号也copy进去

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件 配置好参数后,点击invoke,即可看到burp中拦截到的请求

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件

此时将数据包放过去即可

Xserver:一款无需拖壳逆向即可解密APP的通信数据包插件


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

面向对象技术UML教程

面向对象技术UML教程

王少峰 / 清华大学出版社 / 2004-2 / 24.00元

《面向对象技术UML教程》主要介绍统一建模语言UML及其应用。全书内容丰富,包括UML的用例图、顺序图、协作图、类图、对象图、状态图、活动图、构件图和部署图等9个图中所涉及的术语、规则和应用,以及数据建模、OCL、业务建模、Web建模、设计模式、OO实现语言、RUP等方面的内容,同时介绍了Rose开发工具中的一些用法。《面向对象技术UML教程》最后是一个课程注册系统的实例研究,以及一些思考题和设计......一起来看看 《面向对象技术UML教程》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试