freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

brida和frida练习hook逆向技术【中】
2024-09-21 08:33:01

非常抱歉brida插件的安装使用一直报错,这里没有用brida和frda去hook加密算法,是直接反编译源码定位加密算法,接着使用另一个burp插件完成后续自动化加解密及口令爆破步骤。这种方式适合apk没有加壳、混淆的情况,对于无法反编译或反编译后加密算法代码缺失的情况还是更建议使用brida和frida去hook,所以加了一个中篇,等hook环境调试完成补下篇哈~

前置信息:

1、自动化加解密使用的burp插件是autoDecoder,项目地址:https://github.com/f0ng/autoDecoder
2、autoDecoder用法及案例项目地址:https://github.com/f0ng/autoDecoder-usages
3、上篇已完成测试APP客户端与服务端通信,能使用burp捕获通信数据包

解密前encryptedPassword字段值是加密的,无法直接进行口令爆破
image

定位算法

将测试APK拖入jadx进行反编译
image
使用关键字“encrypt”检索加密算法,检索位置在菜单-导航-文本搜索,我的习惯是如果搜索结果有主函数优先到主函数找是否与加密算法相关,调用关系大概率是主函数调用其他函数,然后顺着去分析完整的加密逻辑。
image
在MainActivity中可以看到,用户输入的密码password和SECRET_KEY(固定值:1234567890123456)一起被送入AESCipher的encrypt方法进行加密,以json的数据格式输出用户名和加密后的password。
image
双击AESCipher查看详细的实现逻辑,使用AES算法、ECB (Electronic Codebook,电子密码本模式)、PKCS5Padding填充方案加密字符串转换为字节数组的SECRET_KEY和password,再将AES加密后的结果进行base64编码。
image

总结一下几个关键要素
1、AES算法:AES算法、ECB (Electronic Codebook,电子密码本模式)、PKCS5Padding填充方案
2、SECRET_KEY:1234567890123456
3、原始的Base64编码

插件配置

配置autoDecoder插件,使用自带算法加解密模块
添加为请求包加/解密方式
image
添加为响应包解密方式
image
添加正则表达式提取请求包中需要加解密的部分
image
点击保存配置才能让这个插件生效
image
最后在选项中选择加解密选项,加解密设置,点击保存配置
image

口令爆破

将登录请求包发送到autoDecoder的Decode-Autodecoder模块
image
password已被解密
image
选中encryptedPassword的字段值进行明文字典爆破即可,插件会自动加密
image
image
实际上发送的请求包中encryptedPassword字段值已经被插件根据我们的配置自动加密了,加密内容可以在日志中查看
image
有一个要注意的地方:设置小一点的并发数,不然爆破会失败
image
10并发数出现错误
image
1并发数没有出现错误
image
至此自动化加解密及口令爆破已实现,hook过程会在之后实现。

声明

所有内容的初衷只是分享本人的学习收获,对于因读者不当使用或修改本文内容的任何损失,作者不承担任何直接或间接的连带责任。

文章内容如有不妥,烦请大家联系修改,谢谢大佬们批评指正。

# APK逆向分析 # 移动端安全 # 数据加解密
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录