使用pwn_deploy_chroot部署国赛pwn比赛题目

使用pwn_deploy_chroot部署国赛pwn比赛题目

1、前言

最近打国赛,须要build,组内大佬们决定build pwn题,因而啥也不会的我就去看docker了。可是本身从头看docker、dockerfile有点困难,最后找到一个工具pwn_deploy_chroot,很方便的完成了docker搭建。python

2、Docker

Docker是一种容器,能够理解为轻量级虚拟机,因为占用的资源少,能够同时开启不少个docker,因此很适合来作ctf题目的容器。
我参考的是这篇博客这多是最为详细的Docker入门吐血总结,关于docker的概念和基本用法大佬讲的很详细了。
因为我在ubuntu上安装,参考官方文档Get Docker CE for Ubuntu,一步一步照着作就行。linux

3、部署镜像

首先要下一个镜像,而后使用sudo cat ubuntu-16.04-x86_64.tar.gz |docker import - ubuntu:16.04导入。不过好像若是dockerfile里面有FROM ubuntu:16.04这种语句的话,docker会本身从官方镜像源帮你下,以后能够用docker images查看当前已有的镜像。git

4、pwn_deploy_chroot

彻底本身搭建环境太难了。。幸亏找到了大神的工具,没错就是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进入

5、check && exp

输入ifconfig查看docker的ip,尝试用nc连

最后用官方给的check和exp来验证是否正确

成功跑出flag!接下来只要把咱们本身出的pwn题放进bin,重复以上步骤就能够了。

6、参考连接

这多是最为详细的Docker入门吐血总结
如何安全快速地部署多道 ctf pwn 比赛题目
Docker 建立镜像、修改、上传镜像
ctf pwn出题和搭建环境

相关文章
相关标签/搜索