在学习网络安全的过程中,少不了的就是做漏洞复现,而漏洞复现一般比较常用的方式就是使用docker-vulhub进行环境搭建,我近期也遇到了这个问题,但是网上的教程特别混乱,根本起不到帮助作用,即使有可以看的,也不是很完整,所以我写了一篇关于安装docker和vulhub的总结
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,互相之间不会有任何接口。Docker集装箱化的有点:灵活、轻量级、便携式、可扩展性、可堆叠。个人理解为就是Docker就是一个容器,或者说一个’盒子‘,里面可以放一些别人搭建好的环境,进行操作。
docker-compose是一个用python写的一个docker容器管理工具,可以更加方便的对docker容器进行管理,可以一键启动多个容器
vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现会变得很简单。
apt-get update apt-get install -y apt -transport-https ca-certificates apt-get install dirmngr
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
成功添加GPG密钥并添加更新源
apt-get update apt install docker-ce
service docker start
apt install docker-compose
docker version 查看docker的版本信息 docker images 查看拥有的images docker ps 查看docker container
docker到此安装完成
很多同学入门刷sqli-labs来学习sql注入漏洞,但是sqli-labs刷到30关左右的时候就需要使用linux下的环境了,windows本地搭建的环境会出问题,所以在此顺带讲解使用docker安装sqli-labs
docker search sqli-labs 查找sqli-labs镜像 docker pull acgpiano/sqli-labs 拉取镜像到本地 docker images 查看已有的镜像 docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs -dt 让其在后台运行 --name 给其命名 -p 本地端口:docker中的端口是将docker的端口映射到本地端口 --rm 当其关闭后将删除开启的资源 docker ps -a 显示容器container容器的id image 命令 端口等信息 docker exec -it (id号) /bin/bash 进入id号的shell
docker images 查看存在的镜像 docker image rm <id> 删除镜像 docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs 运行存在的镜像 docker exec -it <container ID> /bin/bash 进入运行中的容器 docker run -it --rm ubuntu /bin/bash 运行存在的镜像,并以交互的方式进入容器,运行完删除容器 docker ps docker container ls 查看运行中的容器 docker stop <container ID> 停止指定的容器,不指定为停止所有容器 docker rm 删除所有的容器 docker container [stop/start/restart] 停止/开启/重启容器 docker container kall <container ID> 强制停止容器 docker commit -p <container ID> container-backup 创建Docker的快照 把宿主机文件拷到容器里面 docker cp 要拷贝的文件路径 容器名: 要拷贝到容器里面对应的路径 容器里面拷文件到主机 docker cp 容器名: 要拷贝的文件在容器中的路径 要拷贝到宿主机器的响应路径
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["http://hub-mirror.c.163.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
https://github.com/vulhub/vulhub
git clone https://github.com/vulhub/vulhub.git
下载完成后,进入目录下
cd vulhub
可以看到很多子文件夹,就是不同的漏洞
此处举例搭建struts2漏洞环境
cd struts2
举例一个S2-057
cd s2-057
然后执行命令,开启struts2-057漏洞
sudo docker-compose up -d
sudo docker ps 查看运行中的容器环境
访问 ip地址:8080
注意:如果没有回显可以加一些参数比如index
环境运行结束后要及时停止进程
docker stop (id号)
如果想要再次执行,可以输入
docker run -d -p 8080:8080 medicean/vulapps:s_struts2_s2-057
至此,漏洞复现环境就全部搭建完成
转自:https://www.freebuf.com/vuls/282626.html