【开源】HTTPDecrypt for Android Penetration Test

2019-05-06 15:06:22 58 31744 13

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应用框架

使用方式

运行

不指定端口直接运行则为默认端口,

  1. python3 app.py
  2. Android_frida_server 运行
  3. 转发frida端口。
  4. 打开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

  1. 支持IOS,(老板说配IOS测试机 配了几个月了 还没到手。)
  2. 支持Native
  3. toBurp-toBurp 增加栈。
  4. 暂无,欢迎提供建议。

申明

本项目只可用于安全研究,禁止进行未授权攻击行为。

我们严格禁止一切通过本程序进行的违反任何国家法律行为,请在合法范围内使用本程序。

使用本程序则默认视为你同意我们的规则,请您务必遵守道德与法律准则。

如不遵守,后果自负,开发者将不承担任何责任!

https://github.com/lyxhh/lxhToolHTTPDecrypt

自评TCV值:1

关于作者

lyxhh85篇文章439篇回复

UVEyODU0MzA3MzK9u8H30afPsCwgzqLQxbmr1tq6xaO60aewssir

评论58次

要评论?请先  登录  或  注册
  • TOP1
    2019-5-10 18:28

    没试过小程序 感觉应该不信 你可以试试

  • TOP2
    2019-8-22 12:08

    厉害,标注下,后期学xi

  • 38楼
    2019-5-9 16:48
    he110

    我想请问一下大佬,网站能用吗。最近碰到一个站,每个操作发请求包之前都会向服务端先发一个请求,这个请求包会带一个sign参数而且每次的值都不一样,他的返回包里有publicKey,不管上一个请求包里带的sign值如何变化,返回的publicKey值都不会变。只要改请求包里的任何参数就会报错。这种情况适用吗

    1

    数字签名吗 那应该是可以用的

  • 37楼
    2019-5-9 16:35

    我想请问一下大佬,网站能用吗。最近碰到一个站,每个操作发请求包之前都会向服务端先发一个请求,这个请求包会带一个sign参数而且每次的值都不一样,他的返回包里有publicKey,不管上一个请求包里带的sign值如何变化,返回的publicKey值都不会变。只要改请求包里的任何参数就会报错。这种情况适用吗

  • 36楼
    2019-5-9 13:57
    PcaQzero

    还有老哥加壳的都逆向不了 看不到加解密函数 是怎么实现hook加解密的呢? 我逻辑搞不清楚啊!

    1

    不是写了吗,用finds and hooks配合找。

  • 35楼
    2019-5-9 13:55

    还有老哥加壳的都逆向不了 看不到加解密函数 是怎么实现hook加解密的呢? 我逻辑搞不清楚啊!

  • 34楼
    2019-5-9 11:09

    界面和house感觉好像

  • 33楼
    2019-5-9 11:04

    这个马克一下.关键是要找到加解密的函数

  • 32楼
    2019-5-9 10:47

    先保存一下,现在app测试的资料太少了。

  • 31楼
    2019-5-8 20:57
    skyer

    不知道iOS没有越狱能不能用

    1

    不可以 暂不支持IOS,我这边没IOS测试机,无法兼容。不好意思哈

  • 30楼
    2019-5-8 20:47

    不知道iOS没有越狱能不能用

  • 29楼
    2019-5-8 17:53

    brida 好像也是这些功能

  • 28楼
    2019-5-8 17:51

    fork,安卓这块学的头疼

  • 27楼
    2019-5-8 16:57

    近段时间看过最牛逼的了,大佬再分享下咋通杀抓所有的ssl流量呗

  • 26楼
    2019-5-8 16:32

    功能太强,。额 很多东西 不太会!!!!

  • 25楼
    2019-5-8 13:17

    感谢开源,又有一波代码可以学xi了

  • 24楼
    2019-5-8 12:45

    吊吊吊,咱先不说这个工具怎么样,你开头那段感谢是很秀的。

  • 23楼
    2019-5-8 10:59
    BinAry

    老弟,想换坑不?

    1

    老哥,是要带我混吗,哈哈

  • 22楼
    2019-5-7 23:40

    好厉害,你为什么如此优秀,之前碰到抓取的加密包,直接就放弃了,前几天还在准备学xi一拨frida,你这都把几个技术点综合应用起来啦

  • 21楼
    2019-5-7 23:08

    最近遇到的app就是aes加密,师傅tql

  • 20楼
    2019-5-7 19:05

    老弟,想换坑不?

  • 19楼
    2019-5-7 17:43
    mnonm

    老哥这个报错怎么解决,百度了没解决,Python 3.5.4,win10

    1

    你的frida安装出错了。百度解决下哈。