某了app非标准base64算法无壳算法混淆brida渗透测试案例


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
  • bp请求包

  • 启动brida
  • brida启动界面

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

    测试brida脚本

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

  • 测试成功
  • 明文请求了

总结

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

文章作者: peiqiF4ck
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 peiqiF4ck !
  目录