基于xinetd部署pwn题(百分百搭成并且可以nc靶场地址)

简介: 基于xinetd部署pwn题(百分百搭成并且可以nc靶场地址)

这种搭建方法需要你先装好docker,关于docker命令的安装这里就不过多介绍了,下面讲的是基于你已经安装好了docker,我们再使用xinetd在CTFd上部署pwn题目。


首先讲一下我自己搭建pwn题的一些经历,我最开始参考的是用socat命令来搭,但是我没有成功,依旧是端口的问题或者是命令执行不成功,停在了那里无法执行,我也试过pwn_deploy_chroot以及相关的,但是也是命令执行卡住了,以及由于我没有注册GitHub账号,导致无法克隆那个工具,于是我最终还是选择用的xinetd来搭建。

第一步,我们先克隆xinetd

git clone https://github.com/Eadom/ctf_xinetd


克隆好之后我们进入该目录,如下图所示

 

下面讲的东西请大家务必耐心看完,先不要着急去搭建, 如果只是为了搭建我直接就给你们放几个命令就行了,还是真心希望各位能顺利部署pwn题目。


这里要先给大家说清楚一个东西,我们搭建的这种CTF靶场一般是在80端口

而实际上我们的题目部署所在的端口是被映射到了一个80端口(网页服务)

使用 docker ps  命令可以查看开启的容器

如下图,蓝色标注为容器名,红色标注为端口间的映射关系

关于ctf_xinetd下的目录介绍:

bin目录下面放的是flag和pwn题目程序文件;


默认是helloworld和flag,我们可以将它们替换成我们自己想要的flag和题目程序


(注意在做这些替换之前不要去创容器、拉取镜像这些,什么意思呢,如果你已经创好了这道题的容器,那么它里面放的就是helloworld和默认flag的内容,这时你再去bin目录里作更改是无效的,bin目录里内容虽然改了,但是容器里的东西是没改的,并且,对于容器中来说,helloworld和flag并不在bin目录,而是在 /home/ctf 目录下)


关于更换flag和pwn程序我们有两种方法:


(1)在创建容器之前,替换bin目录下的内容;


直接改flag的内容或者自己拉一个进去,再拉一个题目程序(我这里叫stack)进去,并删掉原来的程序(helloworld),注意,stack需要有可执行权限,我们使用chmod命令加权,一般加到750就够了,加777权限更高但是风险也上去了,这里建议加750就行。

chmod 750 stack


加权之后我们发现程序名变成了绿色,说明该程序已经具有可执行权限

(2)哪怕我们创建好了题目容器,后面又需要更换flag或者题目程序,我们可以使用docker cp 命令来替换:

docker cp 程序所在位置(如果你是在文件当前路径那就直接用文件名) 容器名:要添加到的位置

比如我们更换flag:

docker cp flag eb5d199dfc0f:/home/ctf #eb5d199dfc0f是你自己这道题的容器名

但是更建议各位创建容器之前就对bin目录里内容进行替换

接下来我们还需要改另外两个文件,如果不改,你只能连接本地,即nc 0.0.0.0 才能访问,而将0.0.0.0替换成你靶场地址时就无法访问。

因为我们下载的这个 ctf_xinetd 它里面默认端口是被映射到了9999,而我们前面说了,我们需要的是80,因此我们要将所有的9999替换成80。

vim ctf.xinetd

将port改为80

(这里顺便把./后面的hellworld改成你放到bin目录下的程序名)

修改后wq保存退出

vim Dockerfile

将expose改为80并保存退出

现在我们才开始创建容器:

docker build -t "stack" .

这个stack是你创建的镜像的名称,应该是可以随便取的,但是我用的是pwn程序名,方便之后的管理和识别。

创建好后,我们启用它:

docker run -d -p "0.0.0.0:8090:80" -h "stack" --name="stack" stack

这里的stack换成你自己的bin目录下的pwn程序名,8090换成你自己希望放的一个未使用的端口。

启用成功后我们便可看到这个容器

我们直接nc 靶场地址 端口

使用exp脚本测试一遍,没有任何问题,可以成功建立连接并获取flag

至此,我们在终端的部署完成

接下来只需将题目添加到CTFd前端即可

填写好相关的信息,上传题目程序,给出nc的地址和端口

最终效果

至此我们基于xinetd完成了对pwn题目的所有部署


关于web题目的部署,可以参考我的另一篇博客 http://t.csdn.cn/cywRR


此外,也欢迎各位来我自己搭的靶场玩 ,杂项和密码学那些都比较简单,很容易AK,主要是针对想入门CTF的朋友,特别是杂项的题目,很具有总结性,也都是原创题,算是我自己以前对杂项知识的一个简单总结,Welcome! 靶场地址 MyonCTF

目录
相关文章
|
11月前
|
安全 网络安全 PHP
CISP-PTE综合靶机-WinServer2008学习
CISP-PTE综合靶机-WinServer2008学习
582 0
|
4天前
|
安全 网络安全 数据安全/隐私保护
VulnHub 靶场--super-Mario-Host超级马里奥主机渗透测试过程
这篇文章描述了在一个网络安全靶场环境中进行渗透测试的过程。首先,从百度网盘下载并导入虚拟机镜像,然后将其网络设置为NAT或仅主机模式。接下来,通过扫描靶机IP地址的本地网络段,发现靶机IP为192.168.220.135,并且了解到靶机上有一个名为“mario.supermariohost.local”的Web服务,运行在8180端口。尝试SSH弱口令攻击失败后,通过信息收集找到一个名为“luigi.php”的页面,其中包含一段英文提示,提示需要将域名添加到hosts文件中。 通过cewl工具从luigi.php生成字典文件passwords,然后使用hydra工具尝试SSH登录,成功获得l
13 0
|
9月前
|
安全 Java Shell
Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
|
11月前
|
SQL Shell 网络安全
CISP-PTE综合靶机-WinServer2003学习
CISP-PTE综合靶机-WinServer2003学习
863 0
|
11月前
|
Windows
pikachu靶场通关秘籍之命令执行攻击
pikachu靶场通关秘籍之命令执行攻击
89 0
|
网络协议 Ubuntu 应用服务中间件
Linux开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
Linux开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
375 0
|
Java 关系型数据库 MySQL
pikachu 启航篇之靶场环境准备
pikachu 启航篇之靶场环境准备
143 0
pikachu 启航篇之靶场环境准备
|
JSON 安全 前端开发
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
315 0
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
|
SQL 安全 Ubuntu
|
运维 安全 网络协议
Linux网路SSH服务(愿你我以渺小启程,以伟大结局)(一)
Linux网路SSH服务(愿你我以渺小启程,以伟大结局)(一)
78 0
Linux网路SSH服务(愿你我以渺小启程,以伟大结局)(一)