使用pwn_deploy_chroot部署國賽pwn比賽題目


使用pwn_deploy_chroot部署國賽pwn比賽題目

一、前言

最近打國賽,需要build,組內大佬們決定build pwn題,於是啥也不會的我就去看docker了。但是自己從頭看docker、dockerfile有點困難,最后找到一個工具pwn_deploy_chroot,很方便的完成了docker搭建。

二、Docker

Docker是一種容器,可以理解為輕量級虛擬機,由於占用的資源少,可以同時開啟很多個docker,所以很適合來做ctf題目的容器。
我參考的是這篇博客這可能是最為詳細的Docker入門吐血總結,關於docker的概念和基本用法大佬講的很詳細了。
由於我在ubuntu上安裝,參考官方文檔Get Docker CE for Ubuntu,一步一步照着做就行。

三、部署鏡像

首先要下一個鏡像,然后使用sudo cat ubuntu-16.04-x86_64.tar.gz |docker import - ubuntu:16.04導入。不過好像如果dockerfile里面有FROM ubuntu:16.04這種語句的話,docker會自己從官方鏡像源幫你下,之后可以用docker images查看當前已有的鏡像。

四、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都是官方給的。

要使用這個工具,我們只需要 3 步:

1、將所有 pwn 題目放入 bin 目錄(注意名字不帶特殊字符,因為會將文件名作為 linux 用戶名)
2、python initialize.py
3、docker-compose up --build -d

它會自動部署pwn題,端口默認從10000依次增加。
因為國賽要求端口是8888,所以我們要修改一下config.py,把這里的10000改成8888,然后把官方測試用的pwn放到bin里

運行initialize.py

會出現生成的flag、端口和文件名。
接下來啟動環境
docker-compose up --build -d
顯示done,用netstat -antp | grep docker查看,確認完成

可以進入image去玩玩,先sudo docker ps查看當前運行着的容器,然后sudo docker exec -ti fa53dbfdb6b7 bash進入

五、check && exp

輸入ifconfig查看docker的ip,嘗試用nc連

最后用官方給的check和exp來驗證是否正確

成功跑出flag!接下來只要把我們自己出的pwn題放進bin,重復以上步驟就可以了。

六、參考鏈接

這可能是最為詳細的Docker入門吐血總結
如何安全快速地部署多道 ctf pwn 比賽題目
Docker 創建鏡像、修改、上傳鏡像
ctf pwn出題和搭建環境


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM