0x01 工具介绍
Galaxy是一个高效的Burp Suite插件,在自动化解密加密流量并与其他安全工具(如sqlmap和xray)联动,帮助渗透测试人员高效发现漏洞。插件支持多个Burp模块(如Proxy、Intruder等),并提供多种功能,如跳过主机检查和解析Swagger API文档。用户可通过简单的安装步骤将其集成到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 后发送,得到的是明文响应。
联动sqlmap
右键获取 sqlmap 扫描的命令,执行 后 sqlmap 就可以扫描明文请求,并得到解密后的响应。
联动xray
右键将解密后的明文请求发送给 xray,它就可以扫描明文请求,并得到解密后的响应。
适用场景
- 渗透测试中发现网站的 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.jar报java.lang.NoSuchMethodError:’void sun. misc.Unsafe.ensureClassInitialized(java.lang.Class) #19
注意事项
不同jar包支持的hook方式:
Galaxy-x.x.x-all.jar :js、graalpy、grpc、http、java(满足条件1开启)、jython(满足条件2开启)
Galaxy-x.x.x-graalpy.jar :graalpy、http、java(满足条件1开启)、jython(满足条件2开启)
Galaxy-x.x.x-js.jar :js、http、java(满足条件1开启)、jython(满足条件2开启)
Galaxy-x.x.x-grpc.jar :grpc、http、java(满足条件1开启)、jython(满足条件2开启)
Galaxy-x.x.x-basic.jar :http、java(满足条件1开启)、jython(满足条件2开启)
graalpy 语法为 python3.11,jython 语法为 python2.7
条件1:启动Burp的是JDK,而不是JRE。Modify
条件2:在Burp的Java 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请求/响应编辑器中右键可找到对应的按钮,点击即可测试
日志
运行中的日志会发送到两个地方:
- Burp -> Extensions -> Galaxy -> Output/Errors (仅显示部分)
- 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即可。
0x05 下载
https://github.com/outlaws-bai/Galaxy/releases/download/3.2.1/Galaxy-3.2.1-all.jar
原文始发于微信公众号(渗透安全HackTwo):一个想让你测试加密流量像明文一样简单高效的 Burp 插件|插件工具
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论