一个想让你测试加密流量像明文一样简单高效的 Burp 插件

admin 2024年10月24日09:57:34评论38 views字数 3459阅读11分31秒阅读模式

0x01 工具介绍

Galaxy是一个高效的Burp Suite插件,在自动化解密加密流量并与其他安全工具(如sqlmapxray)联动,帮助渗透测试人员高效发现漏洞。插件支持多个Burp模块(如Proxy、Intruder等),并提供多种功能,如跳过主机检查和解析Swagger API文档。用户可通过简单的安装步骤将其集成到Burp中,适用于需要处理复杂加密逻辑的场景。

一个想让你测试加密流量像明文一样简单高效的 Burp 插件

下载地址在末尾

0x02 功能简介

主要功能

  • 自动化解密流量:写好自定义 hook 后,插件会自动化解密后续代理的流量。
  • 与安全工具联动:支持与 sqlmap、xray 的联动,让你更高效地发现潜在的安全漏洞。
  • 支持Burp多模块:适用于 Burp 的多个模块,如 Intruder、Proxy、Repeater 和 Scanner。

工具联动

  • 联动jsrpc调用 js 代码:linkage-jsrpc
  • 联动frida调用客户端代码:服务类 hook 方式自行调用即可;跨语言类 需要通过 Grida 暴露 frida rpc 接口为 http 接口,再在插件编辑器中用 HttpClient 调用
  • 联动sqlmap扫描明文请求:在已解密请求右键找到 Send Decrypted Request To Sqlmap 点击后粘贴命令到终端中执行
  • 联动xray扫描明文请求:配置xray的上游代理为 burp,开启 Auto Forward Request 或在已解密请求右键找到 Send Decrypted Request To Scanner 点击

当在联动sqlmap、xray或与它们相似的工具时,由于流量会再次经过Burp,Burp的Proxy中势必会多出扫描流量,可以添加下方代码片段到bambda不显示这些流量

!requestResponse.annotations().notes().contains("HookedByGalaxy")

效果演示

自动解密

启动后代理的请求/响应自动解密,并且将解密后的请求转发到 Repeater 后发送,得到的是明文响应。

一个想让你测试加密流量像明文一样简单高效的 Burp 插件

联动sqlmap

右键获取 sqlmap 扫描的命令,执行 后 sqlmap 就可以扫描明文请求,并得到解密后的响应。

一个想让你测试加密流量像明文一样简单高效的 Burp 插件

联动xray

右键将解密后的明文请求发送给 xray,它就可以扫描明文请求,并得到解密后的响应。

一个想让你测试加密流量像明文一样简单高效的 Burp 插件

适用场景

  • 渗透测试中发现网站的 HTTP 报文做了加密。
  • 加密逻辑较为复杂,如加密算法组合、自定义算法和动态密钥等。
  • 想要使用扫描器,支持其对明文请求扫描,扫描请求发出后获得明文响应。
  • ...

0x03更新说明

功能更新增加org.m2sec.core.outer.CdpClient,以支持通过cdp协议控制游览器console执行命令增加gradle-wrapper.jar,补充本地环境问题修复修复 安装Galaxy-3.2.0-grpc.jar报错(ClassNotFoundException: org.graalvm.polyglot.Engine#17修复 Setting Tab UI未显示完全问题 #18修复 JDK 22 使用Galaxy-3.2.0-js.jarjava.lang.NoSuchMethodError:’void sun. misc.Unsafe.ensureClassInitialized(java.lang.Class) #19注意事项不同jar包支持的hook方式:Galaxy-x.x.x-all.jarjsgraalpygrpchttpjava满足条件1开启)、jython(满足条件2开启)Galaxy-x.x.x-graalpy.jargraalpyhttpjava(满足条件1开启)、jython(满足条件2开启)Galaxy-x.x.x-js.jarjshttpjava(满足条件1开启)、jython(满足条件2开启)Galaxy-x.x.x-grpc.jargrpchttpjava(满足条件1开启)、jython(满足条件2开启)Galaxy-x.x.x-basic.jarhttpjava(满足条件1开启)、jython(满足条件2开启)graalpy 语法为 python3.11jython 语法为 python2.7条件1:启动Burp的是JDK,而不是JREModify条件2:在BurpJava environment(Settings -> Extensions)配置一个文件夹,并将 jython-standalone-xxx.jar 放在该文件夹。Download

0x04 使用介绍

界面说明

Hooker: hook 的方式,可选js、graalpy、jython、java、grpc、http(因不同 jar 包及客户端条件有差异,详情见 Releases 中的注意事项)

Hook Response: 开关,是否需要对响应Hook

Auto Forward Request: 开关,是否自动将解密后的请求转发到被动代理扫描器。注意联动被动代理扫描器时必须配置被动扫描器的上游代理为Burp

Expression: mvel bool 表达式,用于请求判断经过 Proxy 模块的流量是否需要Hook。

注意:Burp版本不低于 v2023.10.3.7

hook 方式解释

支持grpc、http、java、graalpy、jython、js等方式

graalpy -> python3.11

jython -> python2.7

这四种可分为两类,服务类(grpc、http),跨语言类(java、graalpy、jython、js)

服务类 :你可以用任何语言实现 grpc/http 服务端,并在其中实现四个Hook接口,你需要在这些接口通过三方库 修改/还原 请求/响应 对象

grpc-java:grpc 的 java 版本

grpc-python:grpc 的 python 版本

http-python:http 的 python 版本

跨语言类 :你可以用对应的跨语言方案实现 hook 脚本,并在其中实现四个Hook函数,你需要在这些函数中 修改/还原 请求/响应对象

使用思路

可逆向出算法及加密逻辑 -> 实现加解密算法算法较为复杂 -> 游览器 -> 抠出游览器中加解密代码 or 通过jsrpc/cdp调用游览器中的加解密代码 -> 客户端 -> 通过 frida 调用客户端中的加解密代码

测试

在启动Http Hook服务后,在任意的HTTP请求/响应编辑器中右键可找到对应的按钮,点击即可测试

日志

运行中的日志会发送到两个地方:

  1. Burp -> Extensions -> Galaxy -> Output/Errors (仅显示部分)
  2. WorkDir / run.log

其他功能使用

Parse Swagger Api Doc

该功能会自动解析并生成所有接口的请求报文,将其发送到Organizer,可以对参数进行修改测试。

如果想要自动将生成的请求发送到服务端,可以在Galaxy -> Settings窗口中勾选。

使用方法:

在任意响应报文Editor右键,选择"Parse Swagger Doc"即可。

Bypass Host Check

绕过服务端在ssrf/重定向的测试点对host做了验证

如果想要自定义绕过Template,可以修改 ${Work Dir}/templates/bypassHostCheckTemplate.txt文件。Work Dir, Template

使用方法:

在测试点输入要攻击的URL,选中它右键Send To Intruder然后在Intruder 中选择Payload type -> Extension-generated,Selected generator -> Bypass Host Check点击Start attack即可

Bypass Auth Of Path

通过修改Path的方式绕过某些认证/鉴权/拦截

使用方法:

以/为开始选中需要绕过的path(可以是整体或部分), 然后右键Send To Intruder。然后在Intruder 中选择Payload type -> Extension-generated, Selected generator -> Bypass Auth Of Path,之后点击Start attack即可。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月24日09:57:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个想让你测试加密流量像明文一样简单高效的 Burp 插件http://cn-sec.com/archives/3307392.html

发表评论

匿名网友 填写信息