jaigaresc/Poops-PS5-Java
GitHub: jaigaresc/Poops-PS5-Java
这是针对PS5 BD-J环境的Java版内核漏洞利用工具,通过sys_netcontrol UAF漏洞实现内核读写、提权、开启调试菜单及部署ELF加载器。
Stars: 63 | Forks: 5
# POOPS PS5 - BD-J 内核漏洞利用与 ELF 加载器
这是最初由 [Gezine](https://github.com/Gezine) 和 [egycnq](https://github.com/egycnq) 开发的 [`poops_ps5.lua`](https://github.com/Gezine/Luac0re/blob/main/payloads/poops_ps5.lua) IPv6 UAF 内核漏洞利用的完整 Java 移植版本,基于 [TheFlow](https://github.com/TheOfficialFloW) 发现的 [`ExploitNetControlImpl`](https://gist.github.com/TheOfficialFloW/7174351201b5260d7780780f4059bebf) 漏洞。该项目旨在 PlayStation 5 BD-J (Blu-ray Java) 环境中原生运行。
此 Payload 链接了一个 Netgraph/`sys_netcontrol` Use-After-Free (UAF) 漏洞,利用 IPv6 路由头部进行堆喷射,以实现任意内核读写,修补系统凭据以获取 root 权限,通过 GPU DMA 内存修补启用 Debug Settings,并部署一个 ELF 加载器。
## 功能
* **完整的内核 R/W:** 稳定的 UAF 执行,具有动态三元组修复和 Kqueue 回收机制,以防止内核崩溃。
* **权限提升:** 修补进程凭据 (`ucred`) 以实现 root 访问。
* **Debug Settings:** 使用 GPU DMA 修补受保护内核内存中的 QA 标志、目标 ID 和 UTOKEN。
* **ELF 加载器:** 使用共享内存别名(遵守 FreeBSD W^X 保护)安全分配和映射可执行内存,并生成一个监听端口 9021 的系统线程以执行 Payload。
## 项目历史与开发
该项目始于一项技术挑战。由于最初缺乏关于 FreeBSD 内部和 PS5 内核的深入知识,[`poops_ps5.lua`](https://github.com/Gezine/Luac0re/blob/main/payloads/poops_ps5.lua) 到 Java 的初始移植是使用大型语言模型 (LLM) 生成的。
从那个 AI 生成的基础开始,进行了大量的逆向工程、迭代硬件测试和调试,以稳定漏洞利用链。
## 致谢与感谢
该项目严重依赖于 PlayStation 安全社区的研究和开源贡献:
* **[Gezine](https://github.com/Gezine) & [egycnq](https://github.com/egycnq):** 感谢原始的 [`poops_ps5.lua`](https://github.com/Gezine/Luac0re/blob/main/payloads/poops_ps5.lua) 脚本和漏洞利用链的核心实现。
* **[TheFlow (Andy Nguyen)](https://github.com/TheOfficialFloW):** 感谢发现 [`ExploitNetControlImpl`](https://gist.github.com/TheOfficialFloW/7174351201b5260d7780780f4059bebf) 漏洞以及最初的 BD-J 沙箱逃逸研究。
* **[SpecterDev (Cryptogenic)](https://github.com/Cryptogenic)、[ChendoChap](https://github.com/ChendoChap)、[John Törnblom](https://github.com/john-tornblom) 以及 [ps5-payload-dev](https://github.com/ps5-payload-dev) 的贡献者:** 感谢他们在 PS5 ELF 加载、内存映射和整体 Payload 生态系统方面的基础工作。
* **测试人员:非常感谢 [DrYenyen](https://github.com/DrYenyen)、[EchoStretch](https://github.com/EchoStretch) 和 [Viktorious-x](https://github.com/Viktorious-x),他们慷慨地投入时间和主机来测试和调试此 Payload,尽管事先并不认识我。**
## 要求
* 一台固件版本为 12.00 或更低且 BD-J 环境未修补的 PS5。
* 一台主机上运行的功能正常的 BD-J Loader 环境。
* *注意:在我们的测试和开发中,我们成功使用了 [BD-UN-JB 1.0 ISO](https://github.com/Gezine/BD-UN-JB/releases/download/1.0/BD-UN-JB_1.0.iso),其中包含利用 TheFlow API 的 Jar Loader。*
## 执行
1. 将编译好的 `.jar` 文件发送到主机上监听的 BD-J loader(通常通过端口 9025)。
2. 等待过程完成所有 7 个阶段。完成后,Debug Settings 将变为可见,ELF 加载器将处于活动状态。
3. 关闭 Blu-ray 应用程序。
4. 将您的最终 Payload(例如 `.elf` 文件)发送到 **端口 9021**。
## 支持 ☕
如果您觉得这个项目有帮助并想支持我的工作,请考虑给我买杯咖啡!
[Ko-fi](https://ko-fi.com/jaime_cyber)
标签:BD-J, Blu-ray Java, CSV导出, Debug Settings, ELF Loader, FreeBSD, Go语言工具, GPU DMA, IPv6, JS文件枚举, Kqueue, Netgraph, PlayStation 5, PowerShell, PS5, Root, sys_netcontrol, UAF, Use-After-Free, VX技术, Web报告查看器, W^X 绕过, 云资产清单, 内核提权, 内核读写, 域名枚举, 堆喷射, 越狱, 逆向工程, 配置错误