基于ctf_xinetd部署pwn环境
1.克隆ctf_xinetd文件
# git clone https://github.com/Eadom/ctf_xinetd
- 克隆好之后我们进入该目录-cd ctf_xinetd(cd 文件名 即进入该文件)
- ls为查看该文件下的目录
ctf_xinetd目录下的文件介绍
- bin目录下面放的是flag和pwn题目程序文件;默认是helloworld和flag,我们可以将它们替换成我们自己想要的flag和题目程序(这里我自己放入的文件为pwn_easy,改完之后记得保存)
- 注意,bin目录下的二进制码需要有可执行权限(即原本的helloworld文件,包括后续自己需要拉进来的文件)我们使用chmod命令加权,一般加到750就好了---chmod 750 pwn_easy(文件名)
- ctf.xinetd文件中的这段配置是针对一个服务(可能是使用xinetd或类似的服务守护进程管理的服务)的配置文件片段。
- Dockerfile文件,这里就不过多介绍了(具体参考我的另一篇blog:docker学习)
2.修改ctf_xinetd文件中的一些配置
ctf.xinetd和Dockerfile文件不改,你只能连接本地地址,即 nc 0.0.0.0 才能访问。我们下载的这个ctf_xinetd里面默认的端口是被映射到了9999,所以我们需要在ctf.xinetd和Dockerfile文件中进行修改。
1)ctf.xinetd文件的修改
- 将port改为80(我们搭建的这种ctf靶场一般在80端口)
- 同时将./后面的helloworld改成你自己放在bin目录下的程序名
- 修改完后wq保存退出
2)Dockerfile文件的修改
- 将文件末尾的expose改为80
- 一般来说,我们拉进bin目录下的文件为二进制码文件,在这里我使用的是ubuntu22.04反编译出来的文件,所以还要进行一定的修改,将FROM后的ubuntu版本号更新(文件用什么版本号的ubuntu就修改为该版本号)然后图中标注的地方原本有两行目标RUN代码,将第一行删除
- 修改完后wq保存退出
3.开始创建容器
- 使用下一行代码进行创建容器,pwn是你创建的镜像名称,可以自己随意取
# docker build -t "pwn" .
- 创建好后,我们开始进行启用
# docker run -d -p “0.0.0.0:8090:80” -h “pwn” –name=”pwn” pwn
这里的8090端口换成你自己的希望放的一个未使用的端口,然后记得在自己的服务器防火墙中开启该端口权限。
4.总结
* 一切完成后,该pwn环境部署完成,我们直接nc靶场地址端口
* 然后正常按照ctf中pwn的题目解答得到flag
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 wyz's blog!