文章目录
- 一、docker 快速搭建漏洞靶场指南
- 二、执行步骤
- 三、为 kali 配置 docker 加速器
- 四、访问 dockerhub 的 dvwa 镜像
- 五、漏洞利用初探,修改 requests 请求参数远程执行命令
- 六、vulhub 搭建漏洞复现
包括什么是 docker、docker 和虚拟机的的区别、docker 搭建 DVWA 及执行步骤、为 kali 配置 docker 加速器、访问 dockerhub 的 dvwa 镜像、vulhub 搭建漏洞复现。
一、docker 快速搭建漏洞靶场指南
1、什么是 docker
- Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
2、docker 和虚拟机的的区别
-
vm 虚拟机是一个完整的操作系统
-
docker 直接在宿主主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源
3、docker 搭建 DVWA
(1)、kali 安装 docker:
-
sudo apt install -y docker.io
-
apt 是 debian 系统的软件包管理器(kali 和 ubuntu 其实也是 debian 的分支)
(2)、使用示例:
-
apt install firefox(安装火狐浏览器)
-
apt remove firefox(卸载火狐浏览器)
-
apt upgrade firefox(升级火狐浏览器)
(3)、windows 能不能安装 docker?当然可以:https://www.docker.com/products/docker-desktop
二、执行步骤
(1)、添加Docker官方的GPG密钥
- curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
(2)、更新源
- echo ‘deb https://download.docker.com/linux/debian stretch stable’> /etc/apt/sources.list.d/docker.list
(3)、直接导入证书
- echo deb https://download.docker.com/linux/debian/ stretch stable> /etc/apt/sources.list.d/docker.list
(4)、系统更新
- apt-get update
(5)、安装 docker
- sudo apt install docker.io
(6)、检查 docker 安装是否成功
- docker -v
如图,显示出 docker 版本信息,代表 docker 安装成功
三、为 kali 配置 docker 加速器
(1)、阿里云镜像加速器:https://help.aliyun.com/document_detail/60750.html
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
(2)、进入阿里云网址,点击 容器镜像服务控制台,没账号注册一个即可
(3)、点击 镜像工具,点击 镜像加速器
(4)、创建一个文件
- sudo mkdir -p /etc/docker
(5)、第二句
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://2fnam28c.mirror.aliyuncs.com"]
}
EOF
注:直接复制,在 kali 中右键点击 Paste Selection,即可粘贴上去
(6)、启动加速器
- sudo systemctl daemon-reload
(7)、重启服务
- sudo systemctl restart docker
四、访问 dockerhub 的 dvwa 镜像
查看镜像:docker search dvwa
-
下载镜像:docker pull vulnerables/web-dvwa
-
通过镜像启动容器:docker run --rm -it -p 80:80 vulnerables/web-dvwa / -p 80:80 (将容器里的80端口映射到 Kali 的80端口(网站服务))
-
关闭容器:docker stop [container_id(容器 id)]
-
开启容器:docker start [container_id(容器 id)]
注:使用 docker 命令获取容器 id
-
启动 docker 服务:systemctl start docker
-
列出镜像:docker images
-
列出容器:docker ps -a / docker container ls -a
-
删除镜像:docker rmi [image_id]
-
删除容器:docker rm [container_id]
如图,第一列 CONTAINER ID 字符就是容器 id,第二列 IMAGE 为镜像名称
(1)、查看镜像
- docker search dvwa
(2)、下载镜像
- docker pull citizenstig/dvwa
(3)、启动容器
- docker run --rm -it -p 80:80 citizenstig/dvwa
(4)、访问,首先重新打开一个终端控制台,查看 ip
- ipconfig
如图:查看 eth0 中的 ip 地址
(5)、本地浏览器输入 ip 地址:http://192.168.159.128/
(6)、输入账号密码,点击 Login
-
账号:admin
-
密码:password
(7)、如图,表示搭建成功
五、漏洞利用初探,修改 requests 请求参数远程执行命令
本地打开 cmd,输入 whoami。如图:admin 为此电脑的用户名
漏洞:网站原本给予我们的功能,我们突破了这个功能,执行的实现了其它一个功能;只要突破了网站的限制,达到未给予的功能
六、vulhub 搭建漏洞复现
1、docker-compose 是什么?
- Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。一个使用 Docker 容器的应用,通常由多个容器组成。使用 Docker Compose 不再需要使用 shell 脚本来启动容器
2、安装
(1)、安装 pip(需要有 python3)
-
curl -s https://bootstrap.pypa.io/get-pip.py | python3
-
kali 默认有 python3,所以不需要安装 python3
如图:kali 输入 python3,会显示出 python 版本
(2)、安装 docker-compose
-
pip3 install docker-compose
-
sudo pip3 install docker-compose(备用命名)
注:如果报错使用:sudo pip3 install docker-compose
(3)、查看版本
- docker-compose -v
(4)、下载 vulhub-master.zip 包
-
vulhub官网:https://vulhub.org/
-
开启靶场容器:docker-compose up -d
-
关闭靶场容器:docker-compose down
1)、进入 vulhub 官网,下载 vulhub-master.zip 压缩包
注:网站下载的压缩包有问题,可以上百度网盘上取
网盘获取地址:https://pan.baidu.com/s/1vwwid_t5Q-Ie-HgcjB2LJA?pwd=ue1e
提取码:ue1e
2)、下载后,将压缩包直接拉取或复制到 kali 中
(5)、解压 zip 包
- unzip vulhub-master.zip
(6)、进入解压后的 vulhub-master 文件夹
- cd vulhub-master
如图,vulhub-master 文件夹下有许多集成的漏洞;基于不同平台、基于不同组件、基于不同中间件等
(7)、开启靶场,例如 thinkphp,进入此目录下的 5.0.23-rce,目录下存在 docker-compose.yml 文件,才可以启动,如图
-
cd thinkphp
-
cd 5.0.23-rce
(8)、在路径下,使用 docker-compose up -d 命令启动靶场
- docker-compose up -d
注:如图,路径下不存在 docker-compose.yml 文件,启动靶场会提示文件不存在
必须进入到有 docker-compose.yml 文件的目录下,才可以使用 docker-compose up -d 命令启动靶场
(9)、启动靶场后,使用命令查看全部启动的容器
- docker ps
如图,可以看到启动的容器名,映射端口为8080
(10)、使用本地浏览器登录网站
注:如果不知道 ip,重新开一个终端控制台,可以使用 ifconfig 命令查看
(11)、关闭靶场
- docker-compose down