vulhub靶场搭建
vulhub靶场搭建
1. 安装docker
1.新建/usr/docker/目录
mkdir /usr/docker/
2.下载docker离线安装包
cd /usr/docker/
上传预先下载好的docker离线安装包
docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm
3.安装docker服务
yum install yum install docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm -y
4.启动并设置开机自启动docker服务
systemctl start docker && systemctl enable docker
5.查看服务是否启动成功
systemctl | grep docker
2.安装Docker-Compose
1.移动到/usr/local/bin目录
cd /usr/local/bin/
2.下载Docker-Compose离线安装包
上传预先下载好的Docker-Compose离线安装包
rz -E
# 上传docker-compose
3.添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
4.验证版本
docker-compose version
3.安装Vulhub
1.将预先下载好的Vulhub压缩包上传到root目录
cd ~
rz -E
# 上传 vulhub-master.zip
ls -l
2.创建一个vulhub目录并将压缩包放进去
mkdir vulhub && mv vulhub-master.zip vulhub/ && cd vulhub/
3.解压压缩包
unzip vulhub-master.zip
4.移动压缩文件
cd vulhub-master/
mv * /root/vulhub
4.靶场使用
1.选择漏洞环境
在Vulhub中选择某个环境,cd进入对应目录
find /root/vulhub/ -type d -name "CVE*" # 查找所有以CVE开头的目录
cd /root/vulhub/discuz/wooyun-2010-080723/
2.可修改端口和账号密码
vi docker-compose.yml
3.启动环境
systemctl start docker #启动docker服务
docker-compose up -d # 启动环境
docker-compose down # 关闭环境,需要在该环境目录下执行
4.编译环境
启动环境后,会自动查找当前目录下的配置文件
如果配置文件中包含的环境均已经存在,则不会再次编译,反之则会自动进行编译。
所以,其实命令是包含了
docker-compose up -d
docker-compose build
#但是如果更新了配置文件,则需要手工来重新编译靶场环境。
docker-compose build
5.配置物理机访问容器
经过上面的配置,已经可以在虚拟机Centos7中使用浏览器访问对应的漏洞环境。但此时物理机是无法通过浏览器访问漏洞环境的,需要手动配置静态路由,将通往Docker的数据包交给虚拟机来转发
1.查看Docker容器的IP
docker ps # 查看运行服务端口
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4eed382479c vulhub/discuz:7.2 "docker-php-entrypoi…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp wooyun-2010-080723_discuz_1
15b46d6919a9 mysql:5.5 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp wooyun-2010-080723_db_1
docker inspect [容器ID] | grep IPAddress # [容器ID]为漏洞环境所在容器,此处为a4eed382479c
# "IPAddress": "172.18.0.3"
2.关闭虚拟机防火墙
systemctl stop firewalld.service
3.物理机使用管理员模式打开cmd
route add -p 172.18.0.0 mask 255.255.0.0 192.168.1.13 # -p 永久路由,重启系统路由仍有效
route print # 打印当前路由表
================================================================
永久路由:
网络地址 网络掩码 网关地址 跃点数
172.18.0.0 255.255.0.0 192.168.1.13 1
================================================================
6.靶场使用
1.启动环境
选择漏洞环境。首先在Vulhub中选择靶场环境,cd进入对应目录
cd /root/vulhub/discuz/wooyun-2010-080723/
修改端口和账号密码(可选)。可以通过编辑其中的来进行修改vi``docker-compose.yml
vim docker-compose.yml
启动环境
docker-compose up -d # 启动环境
# Starting wooyun-2010-080723_db_1 ... done
# Starting wooyun-2010-080723_discuz_1 ... done
查看靶机运行端口
# 主要看容器ID和端口,然后通过容器ID查看IP
docker ps # 查看运行服务端口
================================================
CONTAINER ID IMAGE PORTS
a4eed382479c vulhub/discuz:7.2 0.0.0.0:8080->80/tcp
================================================
$ docker inspect [容器ID] | grep IPAddress # [容器ID]为漏洞环境所在容器,此处为a4eed382479c
"IPAddress": "172.18.0.3"
2.漏洞复现
3.结束使用
复现完之后可以通过以下命令关闭环境,但注意此命令需要在对应环境目录下执行
docker-compose down
# Stopping wooyun-2010-080723_discuz_1 ... done
# Stopping wooyun-2010-080723_db_1 ... done
# Removing wooyun-2010-080723_discuz_1 ... done
# Removing network wooyun-2010-080723_default
检查是否关闭
docker ps
docker images 查看漏洞环境镜像
docker image rm 镜像ID
docker run -it(交互终端)-d(后台运行) --rm(如果容器存在自动删除) -p 18080(我的服务机WEB访问端口):8080(容器端口) vulfocus/spring-core-rce-2022-03-29
sysctl net.ipv4.conf.all.forwarding=1 如果访问不了页面,执行内核转发
[root@localhost s2-048]# systemctl restart docker.service 如果下载运行环境失败,执行docker重启
[root@localhost ~]# docker ps 查看容器ID
[root@localhost ~]# docker exec -it 18646c2dc47f /bin/bash 进入容器交互
[root@2bb3cfd7aafc ROOT]# exit 退出容器