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

27 篇文章 1 订阅
10 篇文章 1 订阅
文章详细介绍了如何在已安装docker的环境下,利用xinetd通过CTFd部署pwn类型的挑战题目。步骤包括克隆ctf_xinetd项目,修改端口,替换bin目录中的flag和pwn程序,调整Dockerfile,然后创建和启动容器。文章强调了注意事项,如确保程序有执行权限,以及如何在容器创建前后替换文件。最后提到了将题目添加到CTFd前端并展示最终效果。
摘要由CSDN通过智能技术生成

这种搭建方法需要你先装好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

 

 

靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场为安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发现系统和应用的漏洞,并进行渗透测试,从而及时修复和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场的搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My6n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值