-
-
[原创] Pwn 的比赛环境配置
-
2018-6-10 17:33
14330
-
起因
去年看了几个看雪的Pwn题,打上去后就发现环境仅仅只是简单的 socat起的,这样做法有几个问题
总而言之就是容易被搅屎。加上最近看雪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
被此恨不关风月编辑
,原因: 补充完整