一、环境配置
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 插件
未出现容器