目录html
最近打国赛,须要build,组内大佬们决定build pwn题,因而啥也不会的我就去看docker了。可是本身从头看docker、dockerfile有点困难,最后找到一个工具pwn_deploy_chroot,很方便的完成了docker搭建。python
Docker是一种容器,能够理解为轻量级虚拟机,因为占用的资源少,能够同时开启不少个docker,因此很适合来作ctf题目的容器。
我参考的是这篇博客这多是最为详细的Docker入门吐血总结,关于docker的概念和基本用法大佬讲的很详细了。
因为我在ubuntu上安装,参考官方文档Get Docker CE for Ubuntu,一步一步照着作就行。linux
首先要下一个镜像,而后使用sudo cat ubuntu-16.04-x86_64.tar.gz |docker import - ubuntu:16.04
导入。不过好像若是dockerfile里面有FROM ubuntu:16.04
这种语句的话,docker会本身从官方镜像源帮你下,以后能够用docker images
查看当前已有的镜像。git
彻底本身搭建环境太难了。。幸亏找到了大神的工具,没错就是pwn_deploy_chroot,参考博客如何安全快速地部署多道 ctf pwn 比赛题目。
由于咱们已经安装好了Docker,因此接下来安装docker compose 和 git
apt install docker-compose git
把仓库克隆到本地
git clone https://github.com/giantbranch/pwn_deploy_chroot.git
这是我最终的目录结构,其中docker-compose.yml、Dockerfile、flags.txt、pwn.xinetd都是运行initialize.py后自动生成的,check和exp都是官方给的。
github
要使用这个工具,咱们只须要 3 步:docker
一、将全部 pwn 题目放入 bin 目录(注意名字不带特殊字符,由于会将文件名做为 linux 用户名)
二、python initialize.py
三、docker-compose up --build -dubuntu
它会自动部署pwn题,端口默认从10000依次增长。
由于国赛要求端口是8888,因此咱们要修改一下config.py,把这里的10000改为8888,而后把官方测试用的pwn放到bin里
安全
运行initialize.py
bash
会出现生成的flag、端口和文件名。
接下来启动环境
docker-compose up --build -d
显示done,用netstat -antp | grep docker
查看,确认完成
工具
能够进入image去玩玩,先sudo docker ps
查看当前运行着的容器,而后sudo docker exec -ti fa53dbfdb6b7 bash
进入
输入ifconfig
查看docker的ip,尝试用nc连
最后用官方给的check和exp来验证是否正确
成功跑出flag!接下来只要把咱们本身出的pwn题放进bin,重复以上步骤就能够了。
这多是最为详细的Docker入门吐血总结
如何安全快速地部署多道 ctf pwn 比赛题目
Docker 建立镜像、修改、上传镜像
ctf pwn出题和搭建环境