使用本地机器(攻击机)和云上的 Docker 环境(靶机)进行漏洞复现是一种高效、可控且贴近真实生产环境的评估方式。
以下是完整的漏洞复现流程:
一、 准备阶段:本地攻击机环境
- 安装工具:在本地(Kali Linux/Ubuntu/Windows)安装网络安全工具:
- 渗透工具: Burp Suite(抓包改包)、蚁剑(AntSword)/中国菜刀(Webshell管理)。
- 自动化工具: Docker、Docker-Compose(用于构建环境)。
- 编程环境: Python(POC/EXP运行)。
- 配置网络: 确保本地环境能够访问云服务器的 Docker 服务端口。
二、 部署阶段:云上 Docker 靶机环境
- 购买云服务器: 选择阿里云等轻量应用服务器(购买云服务器),操作系统建议选用 CentOS 7+ 或 Ubuntu 18.04+。
- 安装 Docker/Docker-Compose:bash
# 安装Docker curl -sSL https://docker.com | sh # 安装Docker Compose # 使用包管理器(以 Ubuntu/Debian 为例) sudo apt update sudo apt install docker-compose-plugin # 验证 docker compose version
- 部署漏洞靶场: 使用 Vulhub 等漏洞集成平台快速启动环境:bash
cd /path/to/vulhub/tomcat/CVE-2017-12615 # 名为Dockerfile的文件内容如下: FROM vulhub/tomcat:8.5.19 MAINTAINER phithon <root@leavesongs.com> RUN cd /usr/local/tomcat/conf \ && LINE=$(nl -ba web.xml | grep '<load-on-startup>1' | awk '{print $1}') \ && ADDON="<init-param><param-name>readonly</param-name><param-value>false</param-value></init-param>" \ && sed -i "$LINE i $ADDON" web.xml # docker-compose.yml文件内容如下: version: '2' services: tomcat: build: . ports: - "8080:8080" # 编译 docker-compose build # 启动环境 docker-compose up -d
- 安全组配置: 在云服务器控制台开放对应 Docker 容器映射出的端口(如 8080)。
三、 执行阶段:漏洞复现
- 信息收集与验证: 使用浏览器或 Nmap 探测云服务器端口,确认漏洞服务是否正常运行。
- 漏洞利用(PoC/Exp):
- Web漏洞(如上传): 使用 Burp Suite 抓包,修改请求头或内容(如 PUT 方式上传 JSP 木马)。
- 命令执行: 运行本地 Python 脚本发送恶意 Payload。
- 权限提升与后渗透:
- 通过 Webshell 连接工具执行
whoami、ls /等命令确认取得控制权。 - (可选) 若需复现容器逃逸,可尝试使用特权模式或挂载危险路径。
四、 修复与验证
- 修复漏洞: 在 Docker 容器内修改配置文件、升级版本或打补丁(如将
web.xml中的readonly设置为true)。 - 验证修复: 重启容器或服务,再次尝试利用该漏洞,确认无法再被利用。
五、 清理阶段(重要)
- 移除容器:bash
docker-compose down docker rmi <image_id> # 移除镜像
2.清理数据: 停止并清理云服务器上的无用 Docker 数据,防止被他人利用。
六、 总结与报告
记录复现过程的 Payload、攻击流量日志、环境配置细节,编写漏洞报告。