[原创] Pwn 的比赛环境配置

此恨不关风月 2018-6-10 17:33 1840

起因

去年看了几个看雪的Pwn题,打上去后就发现环境仅仅只是简单的 socat起的,这样做法有几个问题

  • 权限没有很好的配置
  • fork 炸弹会导致服务崩溃

总而言之就是容易被搅屎。加上最近看雪CTF又要开始了...所以在这里发一个贴,仅仅简单的介绍如何快速又安全的配置好一个Pwn的环境

配置

socat

这个配置方法一般是:
socat tcp-l:9999,fork exec:./pwn1

 

9999是端口号, pwn1是程序路径

 

socat的配置一般没有timeout 也没有限制连接上限 如果用户太多,可能导致服务器资源吃紧

xinted

现在一般 CTF Pwn的环境都是由 xinted + docker 组成。在github上 xinetd 的项目从权限到服务配置都做好了一个dockerfile 我们只需要build一下就好了..具体步骤如下

  • 安装 docker
    在 ubuntu环境下,需要以root 安装 docker
    sudo apt-get install docker-ce
  • clone ctf_xinetd项目
    git clone https://github.com/Eadom/ctf_xinetd.git
  • 配置 docker环境
    1、 将你的bin 文件放置到 bin 目录下
    2、 修改 flag 文本内容 为你指定的 flag
    3、紧接着修改 ctf.xinetd 的服务:
    port为指定端口
    server_args = --userspec=1000:1000 /home/ctf ./helloworld
    修改"helloworld"为你的bin文件名称
  • build dockerfile
    在git下的目录下
    docker build -t "helloworld" . (注意后面是有个点的),helloword是你编译后image的名称
  • 创建容器
    docker 的容器相当于是运行了一个虚拟机,创建容器后,就是将镜像跑起来了。
    docker run -d -p "0.0.0.0:9999:9999" -h "helloworld" --name="helloworld" helloworld

另外

正常情况下 docker是需要sudo权限才能跑的。所以如果在非root下创建环境,记得用sudo 运行docker

最后于 2018-6-10 17:51 被此恨不关风月编辑 ,原因: 补充完整
最新回复 (5)
BlackJZero 2018-6-10 17:38
2
围观
kxltjxh 2018-6-10 18:18
3
感谢楼主分享
netwind 2018-6-10 18:44
4
感谢分享
此恨不关风月 2018-6-10 19:03
5
统一回复:只是一个搬运工 
人在塔在 6天前
6
还可以chroot
返回