rootkiTED/graylog-cve-2024-24824-exploit
GitHub: rootkiTED/graylog-cve-2024-24824-exploit
该项目是针对 Graylog CVE-2024-24824 任意类加载漏洞的概念验证漏洞利用程序,展示了将类加载原语转化为远程代码执行的完整研究过程。
Stars: 0 | Forks: 0
# 利用 JVM 上的任意类加载
本仓库包含我在演讲中展示的概念验证漏洞利用程序:
如果你感兴趣,可以在这里观看:[Youtube](https://www.youtube.com/watch?v=QTkNK1IUWgA)
该漏洞利用针对 **CVE-2024-24824**(幻灯片中有轻微拼写错误),这是一个影响 **2.0.0 至 5.2.3** 版本 Graylog 的任意类加载漏洞。
这项研究并未将任意类加载作为最终目标,而是探讨了如何通过分析可用的 JVM classpath,将该原语用于发现并构建越来越强大的漏洞利用技术。
## 概述
假设能够使用攻击者控制的数据实例化任意类,挑战就变成了:
答案完全取决于目标应用程序的 classpath 中存在哪些类。
## 概述
相关研究探讨了如何将任意类加载原语转化为多种漏洞利用原语,包括:
- 本地文件读取
- 进程枚举
- 信息泄露
- 任意文件写入
- SSRF
- XXE
- 内部端口扫描
- 远程代码执行
本仓库重点关注在演讲中演示的**远程代码执行漏洞利用**,以及在漏洞分析过程中使用的研究、辅助脚本和工具支持。
以下是在易受攻击的实例上运行该漏洞利用程序的预期结果:

## 仓库内容
```
exploit/
Exploit source
docs/
Slides
```
## 研究方法
相关演讲从头到尾详细介绍了漏洞利用的过程:
1. 发现任意类加载原语。
2. 了解 Jackson 的反序列化行为。
3. 枚举候选类。
4. 使用 Joern 减少数以千计的构造函数。
5. 识别有用的漏洞利用原语。
6. 将这些原语链接成具有更大破坏性的攻击。
7. 实现远程代码执行。
目的是展示漏洞利用开发背后的*思考过程*,而不仅仅是抛出一个漏洞利用程序。
## 要求
- 易受攻击的 Graylog 实例
- 具有编辑集群配置权限的有效凭证
- 与所演示的漏洞利用链兼容的 Java 版本
## 免责声明
发布此代码仅用于教育目的、安全研究和授权的安全测试。
仅对你拥有或获得明确授权评估的系统进行测试。
## 参考
- [CVE-2024-24824](https://nvd.nist.gov/vuln/detail/CVE-2024-24824)
- 演讲:[利用 JVM 上的任意类加载](https://www.youtube.com/watch?v=QTkNK1IUWgA)
标签:CVE-2024-24824, JS文件枚举, JVM, PoC, RCE, XXE攻击, 暴力破解