【开源】HTTPDecrypt for Android Penetration Test
HTTP Decrypt
利用HTTP协议 远程加解密数据包,实现Burp一条龙服务。
背景
在做APP渗透测试的时候,通常通信协议基本都做了加解密功能,每次都需要去逆向APP并寻找到加解密算法后,针对写Burp插件,这么一个流程下来花费了一大堆的时间,万一遇到加固,又要耗时间去脱壳,这尼玛遇到壳又脱不了,咋怎,最后利用几分钟来抓包改包,然后发现0高0中0低...我枯了,你们呢。
HTTP Decrypt 提供了Finds Hooks模块,可以在不逆向不脱壳的情况下快速的找到APP所使用的加解密算法,而toBurp模块提供了直接使用APP内的方法进行加解密,而不需自己动手敲代码,对于整体POST加密更是提供了自动化加解密功能,可以实现Burp一条龙,Burp Scanner ,Intruder自动加解密。
env base:
python3 感谢python3 世界上最好的语言
frida 感谢frida 世界上最牛逼的逆向框架
Burp 感谢BurpSuite 世界上最牛逼的Web测试工具
flask 感谢flask 世界上最轻量级的web应用框架
使用方式
运行
不指定端口直接运行则为默认端口,
- python3 app.py
- Android_frida_server 运行
- 转发frida端口。
- 打开HTTP Decrypt页面,如果在Start界面出现应用包名列表信息则可正常使用其他功能,如果不行,刷新一下看看控制台出现的信息。
Hooks
填写字符串,将类名与你填写的字符串匹配,并Hooks类下的所有方法,hook多个类名,回车换行。
Stack
Hooks打印的堆栈会在这里显示。
Finds
根据字符串,查找类,匹配到类,将类下的方法都打印出来。多个查找回车换行继续写。提供了过滤机制。
toBurp
对称加解密
通过xxx方式得到了通信协议加解密函数。如下例子中的:
com.one.sdk.e.b.a encrypt
com.one.sdk.e.b.b decrypt
选择完成后,点击Export。
效果:
在可编辑区域调用的是Request function 1,2,不可编辑区域调用的是response function3 ,4
打开Auto后,Burp Scanner ,Intruder模块 也可以使用。 Auto功能 数据包加密调用的是 Request function 1,数据包解密调用的Request function 2,因此想要使用Auto功能,需要正确填写加解密函数位置,不要填反了。
签名
某APP数字签名算法如下: 字符串 "prod_secret123@muc" +整个 body + HTTP头 random字段; 签名值放在HTTP头中的sign字段。使用md532位加密,配置如下。
效果:
toBurp-hook (配合export使用)
调用APP内的方法
hook之后会有call按钮,如果想使用,请点击export按钮之后再使用。 效果如下:
Note:也可以直接在POST修改,但是需要解码一次,比较麻烦,因此直接选择Change body encoding,然后进行修改,效果一样的。
toBurp-toBurp
拦截指定函数,修改参数or返回值,再返回给应用程序。 复杂数据类型仅支持修改一维数组。
future
- 支持IOS,(老板说配IOS测试机 配了几个月了 还没到手。)
- 支持Native
- toBurp-toBurp 增加栈。
- 暂无,欢迎提供建议。
申明
本项目只可用于安全研究,禁止进行未授权攻击行为。
我们严格禁止一切通过本程序进行的违反任何国家法律行为,请在合法范围内使用本程序。
使用本程序则默认视为你同意我们的规则,请您务必遵守道德与法律准则。
如不遵守,后果自负,开发者将不承担任何责任!
https://github.com/lyxhh/lxhToolHTTPDecrypt
自评TCV值:1
评论58次
没试过小程序 感觉应该不信 你可以试试
厉害,标注下,后期学xi
我想请问一下大佬,网站能用吗。最近碰到一个站,每个操作发请求包之前都会向服务端先发一个请求,这个请求包会带一个sign参数而且每次的值都不一样,他的返回包里有publicKey,不管上一个请求包里带的sign值如何变化,返回的publicKey值都不会变。只要改请求包里的任何参数就会报错。这种情况适用吗
数字签名吗 那应该是可以用的
我想请问一下大佬,网站能用吗。最近碰到一个站,每个操作发请求包之前都会向服务端先发一个请求,这个请求包会带一个sign参数而且每次的值都不一样,他的返回包里有publicKey,不管上一个请求包里带的sign值如何变化,返回的publicKey值都不会变。只要改请求包里的任何参数就会报错。这种情况适用吗
还有老哥加壳的都逆向不了 看不到加解密函数 是怎么实现hook加解密的呢? 我逻辑搞不清楚啊!
不是写了吗,用finds and hooks配合找。
还有老哥加壳的都逆向不了 看不到加解密函数 是怎么实现hook加解密的呢? 我逻辑搞不清楚啊!
界面和house感觉好像
这个马克一下.关键是要找到加解密的函数
先保存一下,现在app测试的资料太少了。
不知道iOS没有越狱能不能用
不可以 暂不支持IOS,我这边没IOS测试机,无法兼容。不好意思哈
不知道iOS没有越狱能不能用
brida 好像也是这些功能
fork,安卓这块学的头疼
近段时间看过最牛逼的了,大佬再分享下咋通杀抓所有的ssl流量呗
功能太强,。额 很多东西 不太会!!!!
感谢开源,又有一波代码可以学xi了
吊吊吊,咱先不说这个工具怎么样,你开头那段感谢是很秀的。
老弟,想换坑不?
老哥,是要带我混吗,哈哈
好厉害,你为什么如此优秀,之前碰到抓取的加密包,直接就放弃了,前几天还在准备学xi一拨frida,你这都把几个技术点综合应用起来啦
最近遇到的app就是aes加密,师傅tql
老弟,想换坑不?
老哥这个报错怎么解决,百度了没解决,Python 3.5.4,win10
你的frida安装出错了。百度解决下哈。