【App渗透】BurpSuite插件-Brida 2024最新自动加解密Custom plugins演示


前言

之前有写过如何安装brida的文章和视频讲解,大家感兴趣的可以看看之前的内容,分别是
①BurpSuite插件Brida的安装
②Brida js-hook脚本的简单配置和debug调试。
完整内容在这里:
我的B站主页
今天就是介绍下Brida的核心功能——自动加解密;如何在反编译之后hook加密和解密函数,自动加解密暴破密码。


提示:以下是本篇文章正文内容,下面案例可供参考

一、测试app的客户端和服务端

由于直接拿网上线成的app来做测试的话,会涉及到法律问题,所以干脆我就自己开发了一个,大致效果如下图:

在这里插入图片描述

在这里插入图片描述

功能非常,所以需要暴破出正确的密码登录进去就算通关了。客户端就是这样,想要源码或者apk的可以公众号找我要,我就不直接在这里公开了。

在这里插入图片描述

说完客户端,接下来讲下服务端,服务端也简单,我是直接用python写的:

在这里插入图片描述

直接把server.py文件放到一台公网的服务器上面,直接用python3运行就可以了:

python3 server.py

在这里插入图片描述

二、BurpSuite设置代理

手机安装burpsuite证书,然后电脑和手机连接同一个wifi,burp监听8080,手机代理端口8080保持ip和端口一直,输入用户名admin,密码随意,显示登录失败:
在这里插入图片描述

密码为密文。

在这里插入图片描述

说明配置都没问题,可以进行下一步,也就是Brida的核心,Custom plugins自定义组件实现自动加解密。

三、反编译apk文件

我比较喜欢用JEB这款工具,使用起来很方便,直接把apk文件拖进去就行了。

在这里插入图片描述

选中任意一个类,点击解析:
在这里插入图片描述

因为我写的这个程序比较简单啊,其实我就写了两个类,所以找加解密的函数是很好找的:
在这里插入图片描述

也可以直接搜索名字,比如encrypt,就可以很方便的定位:

在这里插入图片描述

先来看看这个加密函数的逻辑:
这个encrypt方法用的是AES加密算法,需要传两个参数,对原始的数据进行一个加密。返回的数据是以Base64编码格式的字符串。

鼠标选中这个函数,然后右键交叉引用,就可以找到这个方法的调用。

在这里插入图片描述

在这里插入图片描述

在这段核心代码里面,s1就是密码文本框里面的数据,后面这一大串数字就是aes的秘钥key,这个字符串s2就是加密后的内容。

在这里插入图片描述

在搞懂了逻辑了之后就可以开始写brida的脚本,去尝试hook这个方法,这里直接导入一下,关于怎么调试这个js脚本,我在之前的视频里面已经讲过了,所以就不多说,直接看下一标题的演示吧。

四、编写brida/frida hook脚本

配置brida环境,这些内容都在之前的博客里有十分详细的介绍,不懂的可以回顾之前的超详细文章。

获取app的id:

frida-ps -a -U

在这里插入图片描述

启动frida服务端:
在这里插入图片描述

Start Server,Attach application,下图表示成功:

在这里插入图片描述

加载brida.js:

在这里插入图片描述

,
	test: function(){
		console.log(123123);
		return "test123213123";
		},

先点击Sava JS file再点击Compile & reload JS,后续的所有js脚本都需要按照这个步骤来,否则极其容易报错。

在这里插入图片描述

成功返回测试数据,说明配置成功。

在这里插入图片描述

那么调试没有问题的话,就可以开始写加密的hook脚本了,关于这个脚本的文档,其实frida官方是有的:https://frida.re/docs/javascript-api/
访问这个url,搜索Java.perform。不懂的话可以翻译一下。根据反编译的源码,编写hook脚本非常简单:

 encrypt: function(data, key) {
        var encrypted = "";
        Java.perform(function() {
            try {
                var AESCipher = Java.use("com.example.myapplication.AESCipher");
                encrypted = AESCipher.encrypt(data, key);
                console.log("Encrypted: " + encrypted);
            } catch (e) {
                console.log(e);
            }
        });
        return encrypted;
},

但是由于这里的key是一个常量,所以脚本还可以再优化一下,只传入一个明文的参数就行了:

encrypt: function(data){
			var encrypted= "";
			Java.perform(function(){
				var AESCipher = Java.use("com.example.myapplication.AESCipher");
				encrypted = AESCipher.encrypt(data,"1234567890123456");
				console.log("加密后结果:"+encrypted);
				});
			return encrypted;
			}

在这里插入图片描述

app上输入999999:
在这里插入图片描述

请求包显示加密后的字符串为:
在这里插入图片描述

这个返回的结果跟我们在app上面操作的是一样,说明我们的脚步写的没问题,解密的脚本也很好写,变化其实不大:

decrypt: function(encryptedData){
			var decrypted= "";
			Java.perform(function(){
				var AESCipher = Java.use("com.example.myapplication.AESCipher");
				decrypted = AESCipher.decrypt(encryptedData,"1234567890123456");
				console.log("解密后结果:"+decrypted);
				});
			return decrypted;
			}

也是一样,测试下能不能调用成功。
在这里插入图片描述

ok,脚本没问题的话就可以设置一个自定义的插件了。

五、Custom plugins自动加解密

这里介绍下每个标签的意思。
Plugin name: 插件名
Plugin Type: 有4种类型,每种类型后面都会有英文的解释。这里选IHttpListener就可以了。意思是:动态处理每个请求和响应的插件
在这里插入图片描述
Name of the Frida exported function:要使用的JS函数名。因为app的密码是加密过的,我们暴破字典是明文的,所以我们要hook加密函数,把字典里的明文自动变成密文呢,因此这里的名字选encrypt。
Execute on:作用于什么地方,有3个选项,请求、响应和所有。因为用户名和密码字段在请求包中,所以选择“请求”——Requests。
Burp Suite Tools:作用于Burpsuite的哪个工具中?这里选重放Repeater和暴破Intruder就行了。

Execute:作用于哪个接口。我选择用正则去匹配请求和响应的内容,指定/login登录接口。

在这里插入图片描述

其他保持默认。
Parameters:hook脚本的参数。用正则匹配。
Plugin output:也是用正则,作为插件的输出。

在这里插入图片描述

点击Add plugin->Enable:

在这里插入图片描述

这时,我们直接用明文来请求,发现请求是能正常过去的。说明没问题。

在这里插入图片描述

返回插件面板,打开debug窗口:

在这里插入图片描述

重放一下这个接口,就能发现整体的逻辑了。我们输入的是明文999999,但是修改后的请求Modefied request已经将密码自动加密成密文去请求。

在这里插入图片描述

为了更直观的看到效果,把插件先关掉。

在这里插入图片描述

再明文请求一次,会发现是报错的。状态码500,服务端异常,因为我们的服务端无法处理明文的数据。

在这里插入图片描述

重新把插件打开,直接用明文的字典来暴破。

在这里插入图片描述

可以直接用字典,但是由于时间关系,我就随便手打一些上去吧。

在这里插入图片描述

最终也是用明文的字典成功暴破出了正确的密码。

在这里插入图片描述
在这里插入图片描述

admin 123456

在这里插入图片描述

Login Successful!!

在这里插入图片描述

六、本期送书《Frida Android so逆向深入实践》

在这里插入图片描述

如果对二进制感兴趣的朋友,这本书很不错!推荐大家阅读。

《二进制安全基础》为二进制安全技术知识普及与技术基础教程,不仅能为初学二进制安全技术的读者提供全面、实用的C语言反汇编知识,而且能有效培养读者的漏洞挖掘和软件逆向分析基础能力。《二进制安全基础》配套示例源码、PPT课件、教学大纲、教案、习题答案、作者QQ群答疑。 《二进制安全基础》共12章,内容包括二进制安全概述、基本数据类型、表达式、流程控制、函数、变量、数组和指针、结构体、C++反汇编、其他编程知识、二进制漏洞挖掘(PWN)、软件逆向分析。 《二进制安全基础》适合二进制安全初学者和网络安全从业人员,也适合作为应用型本科与高职高专网络空间安全、信息安全类专业的教材。

推荐

《二进制安全基础》以网络空间安全中常见的二进制安全技术为主线,详细介绍 C 语言反汇编技术、二进制漏洞挖掘和软件逆向分析基础技能。 《二进制安全基础》配套示例源码、PPT课件、教学大纲、教案、习题答案、作者QQ群答疑。 《二进制安全基础》适合二进制安全技术初学者、系统安全研究人员、底层软件开发人员、病毒分析人员。 《二进制安全基础》可以作为企事业单位网络安全从业人员的技术参考用书,也可以作为应用型本科、高职高专网络空间安全、信息安全类专业的教材。

如何领书

公众号送书(EureKa安全团队)
关注公众号,参与抽奖,中奖即可送书 🔥1本
📆 活动时间:时间一到,自动开奖!!2024-07-18 00:00:00 截止
🎁 抽奖方式:利用抽奖小程序进行抽奖
💡 参与方式:关注公众号即可。
在这里插入图片描述

中奖后一定一定要私信我邮寄地址,到时候记得回我一下,不然寄不出去的!

没有中奖的👏也可以通过以下京东链接🔗进行购买:
京东购买链接https://item.jd.com/13988467.html
在这里插入图片描述

中奖粉丝时间
待定2024年7月18日
待定2024年7月18日

总结

如果看完本文内容还是对brida一知半解,可以直接跳转到完整内容在:
我的B站主页
3个视频从安装到使用,非常适合0基础。

欢迎大家关注EureKaSec,无论是技术交流还是有兴趣加入我们团队,都欢迎随时联络沟通。
在这里插入图片描述

    文章原创,欢迎转载,请注明文章出处: 【App渗透】BurpSuite插件-Brida 2024最新自动加解密Custom plugins演示.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归去来兮-zangcc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值