简介
Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。旨在让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。
- 物理机:Windows 10
- 虚拟机:Centos 7
192.168.1.13
,网卡设置为NAT模式
环境安装
安装Docker
$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装Docker-Compose
下面提供2种安装方式,2选1即可
- 离线安装。先到Docker-Compose下载最新版本的
docker-compose-Linux-x86_64
,并上传到虚拟机
# 然后将其移动到/usr/local/bin目录并改名为docker-compose
$ mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
# 添加执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
# 验证
$ docker-compose version
- Pip安装
# 安装docker-compose
$ pip install docker-compose
# 如果没有pip需要先安装
$ yum -y install epel-release
$ yum -y install python-pip
$ pip --version # 查看pip版本
# 可能会遇到一个ReadTimeoutError的错误,需要修改pip源,请看文末问题汇总
安装Vulhub
同上,两种方法2选1
- 离线安装。下载Vulhub压缩包,并上传到虚拟机任意目录,这里放在
/root/
目录
# 创建一个vulhub目录并将压缩包放进去
$ mkdir vulhub && mv master.zip vulhub/ && cd vulhub/
# 解压
$ unzip master.zip
- Git安装
$ git clone https://github.com/vulhub/vulhub.git
# 如果没有Git需要先安装
$ yum install -y git
Docker加速
可选。配置阿里云镜像加速
- 这里的加速器地址可以在阿里云容器加速服务中的镜像加速器获取
$ sudo mkdir -p /etc/docker
$ vim /etc/docker/daemon.json
# 加入以下代码
{
"registry-mirrors": ["加速器地址"]
}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
靶场使用
- 选择漏洞环境,在Vulhub中选择某个环境,cd进入对应目录
$ cd vulhub/discuz/wooyun-2010-080723/
- 可选。可以通过
vi
编辑其中的docker-compose.yml
,修改端口和账号密码
$ vi docker-compose.yml
- 启动环境:
$ docker-compose up -d # 启动环境
$ docker-compose down # 关闭环境,需要在该环境目录下执行
- 可选。编译环境。启动环境后,会自动查找当前目录下的配置文件。
- 如果配置文件中包含的环境均已经存在,则不会再次编译,反之则会自动进行编译。所以,其实
docker-compose up -d
命令是包含了docker-compose build
的。 - 但是如果更新了配置文件,则需要手工来重新编译靶场环境。
- 如果配置文件中包含的环境均已经存在,则不会再次编译,反之则会自动进行编译。所以,其实
$ docker-compose build
物理机访问容器
经过上面的配置,已经可以在虚拟机Centos7中使用浏览器访问对应的漏洞环境。但此时物理机是无法通过浏览器访问漏洞环境的,需要手动配置静态路由,将通往Docker的数据包交给虚拟机
192.168.1.13
来转发
- 先查看一下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"
- 先关闭虚拟机防火墙
$ systemctl stop firewalld.service
- 物理机使用管理员模式打开CMD
$ route add -p 172.18.0.0 mask 255.255.0.0 192.168.1.13 # -p 永久路由,重启系统路由仍有效
$ route print # 打印当前路由表
==========================