首页
社区
课程
招聘
[原创] Pwn 的比赛环境配置
2018-6-10 17:33 14330

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

2018-6-10 17:33
14330

起因

去年看了几个看雪的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


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-6-10 17:51 被此恨不关风月编辑 ,原因: 补充完整
收藏
点赞1
打赏
分享
最新回复 (5)
雪    币: 2694
活跃值: (80)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
BlackJZero 2018-6-10 17:38
2
0
围观
雪    币: 1
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kxltjxh 2018-6-10 18:18
3
0
感谢楼主分享
雪    币: 7231
活跃值: (2630)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
netwind 13 2018-6-10 18:44
4
0
感谢分享
雪    币: 118
活跃值: (118)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
此恨不关风月 1 2018-6-10 19:03
5
0
统一回复:只是一个搬运工 
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
人在塔在 2018-6-13 09:12
6
0
还可以chroot
游客
登录 | 注册 方可回帖
返回