复现cacti的RCE(CVE-2022-46169)

发布于:2025-07-30 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、环境配置

1.1安装Docker

Linux

使用便捷脚本安装Docker:

curl -fsSL https://get.docker.com | sh

验证安装

验证Docker是否正确安装:

docker version

还要验证Docker Compose是否可用:

docker compose version

1.2拉取镜像

在 GitHub 上复制链接地址 vulhub。

 proproxychains git clone https://github.com/vulhub/vulhub

若没有设置代理则去掉proproxychains 拉取成功后,就能可以在本地看到 vulhub 文件夹: 

1.3启动容器 

进入 vulhub 文件夹内部的 cacti 文件内夹的 CVE-2022-46169 文件夹,在这里面输入命令:

 docker-compose up -d

 然后浏览器访问http://your-ip:8080会跳转到登录页面。使用admin/admin作为账号密码登录,并根据页面中的提示进行初始化。

 根据页面中的提示进行初始化。实际上初始化的过程就是不断点击“下一步”,直到安装成功:

这个漏洞的利用需要Cacti应用中至少存在一个类似是POLLER_ACTION_SCRIPT_PHP的采集器。所以,我们在Cacti后台首页创建一个新的Graph:

选择的Graph Type是“Device - Uptime”,点击创建:

1.4 配置断点调试

首先物理机的 VScode 要安装好以下插件: Remote-ssh、Docker、dev containers。 在使用 Vcode 远程连接虚拟机,连接容器的时候需要用到。

以上插件安装好之后的具体步骤如下:

创建容器:

docker run -it --name cacti_vuln -p 80:80 -p 443:443 php:7.4-apache bash

安装Xdebug

pecl install xdebug-3.1.6
docker-php-ext-enable xdebug

编辑 /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini:

vi /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=host.docker.internal
xdebug.log=/tmp/xdebug.log

安装Cacti

apt update && apt install -y wget unzip
wget https://www.cacti.net/downloads/cacti-1.2.22.zip
unzip cacti-1.2.22.zip -d /var/www/html/
chown -R www-data:www-data /var/www/html/cacti-1.2.22

重启容器 

exit
docker restart cacti_vuln

 使用 VScode 连接容器后,为容器安装 Xdebug 插件

 未出现容器


网站公告

今日签到

点亮在社区的每一天
去签到