本项目是一项网络安全任务,演示了 CVE‑2022‑46169:开源网络监控平台 Cacti(版本 ≤ 1.2.22)中的一个严重漏洞。该漏洞允许未认证的攻击者在服务器上执行任意操作系统命令——无需任何登录。
本项目的目标是理解该漏洞,在受控的实验室环境中复现它,并展示其影响。
CVE‑2022‑46169 是 Cacti 中两个缺陷的组合:
文件 remote_agent.php 通常只允许 Cacti 服务器自身访问。然而,认证检查盲目信任 X-Forwarded-For HTTP 头,而该头部可由攻击者自行设置。因此,任何人都可以伪装成服务器本身——无需密码。
来自 URL 的 poller_id 参数未经验证,直接通过 PHP 的 proc_open() 拼接到 shell 命令中。攻击者可以利用这一点让 web 服务器执行自己的命令。
组合结果: 完全未认证的攻击者可以在服务器上执行任意命令——也称为远程代码执行(RCE)。
攻击者只需要知道一个易受攻击的 Cacti 实例的 IP 地址。无需账户或社会工程学。
攻击者向 remote_agent.php 发送一个 HTTP 请求,包含:
X-Forwarded-For 头部 → 绕过认证; 嵌入的 shell 命令的 poller_id → 命令注入服务器以 www-data(Apache web 服务器用户)身份执行该命令。实际上,攻击者可以利用这一点打开反向 shell,从而获得对服务器的完全访问权限。
docs/ — 报告、截图和任务笔记。isos/ — 包含易受攻击 Cacti 安装的虚拟机镜像或容器资产。本项目是网络安全练习的一部分,重点在于:
⚠️ 免责声明: 本项目仅用于受控、隔离实验室环境中的教育目的。切勿在没有明确授权的情况下在系统上使用漏洞利用程序。
| 属性 | 详情 |
|---|
| CVSS 评分 | 9.8 – 严重 |
| 需要认证 | ❌ 否 |
| 用户交互 | ❌ 否 |
| 影响 | 完全控制服务器 |
| 受影响版本 | Cacti ≤ 1.2.22 |
| 修复版本 | Cacti 1.2.23 |