发布日期:
2023-04-19
更新日期:
2023-04-28
文章字数:
859
阅读时长:
3 分
阅读次数:
brida介绍
-
Brida 是 Burp 中的一个插件,它可以把app 和Frida 和 Burp结合起来使用,简化测试流程,通过 Brida 能在 Burp 中直接调用目标 app 中的加 / 解密函数。对app进行测试适用于无法或者复现难度较大的算法。比如本次的案例。
app测试流程
- (1)拿到一个app先安装
- (2)安装完毕以后抓包,用到的工具(postern + Charles)
- (3)抓包分析算法定位(查壳,脱壳,hook,jadx 反编译,jeb工具,frida)
- (4)编写hook脚本(implemention )
- (5)深度分析加密算法流程
- (6)编写主动调用算法脚本并且测试
- (7)在brida中编写测试js脚本(这里用到主动调用脚本)
- (8)在brida中测试加密解密函数
- (9)在brida中编写 handler Request ,response 脚本
- (10)请求包中使用明文,响应包中密文进行测试。最终用brup进行渗透测试
- 总结:要搞好安卓逆向需要学习的是java基础,渗透测试技术,JavaScript 语法 ,frida语法基础,,汇编二进制逆向(这个渗透测试不需要掌握太猛)。这些是必要条件。最后的一条不需要太厉害懂点就行了除非你是专业逆向人员。
测试案例app某了分析加密解密结果
- 至于如何进行app测试参照上面的流程演示的是某聊天app
- 抓包有三处加密请求有两处。响应有一处。总共三处

- 看到这里立马会想到用bytes字节函数进行定位说干就干。启动frida 。搞一波我们的脚本直接定位 b.o.a.h.b$e.h
b.o.a.c.b.h.intercept 两个可疑点


- 那我们用jadx反编译一下看看这个类b.o.a.h.b。我们看请求包里面有data 有encrypt 关键字肯定就是这里了

- 点进去第一个看看。这个意思是把这些数据转换成json然后进行加密

- 定位加密函数 f 我们hook一下这个函数

- hook出加密前的东东了

- 找找响应包堆栈定位一波看看。发现啥都没有。在看看请求是okhttp3。我们直接用ok3定位一下

- 直接用okhttp3直接定位

- 通过分析到下图。点进去看看
-

- 得到解密函数。下来编写hook进行验证。

- 编写frida hook脚本验证测试结果。验证成功

- 编写主动调用加密解密函数这需要java基础才可以

brida脚本编写插件配置实现自动化加密加密
- 我看分析了一下发现加密解密函数调用码表是猜测是base64算法但是魔改的。由于混淆比较严重编程功力的问题。我们选择神器brida来进行测试。

- 配置brida环境什么的参考网络上这里直接进行实战配置。使用Charles 转发请求到bp

- 启动brida

- 编写脚本brida脚本。调用测试。测试成功


- 接下来就是重点了 编写联动插件函数了。由于篇幅太长我就不演示如何编写了可以参考bi站文章或者后续加入内部群

- 测试成功

总结
- 关键是有java编程基础和frida使用基础和正则表达式编写基础才可以达到这个程度!!!
s