目錄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出題和搭建環境