草庐IT

AWD平台搭建——Cardinal

路baby 2023-08-04 原文

目录

一. 介绍

二. 环境介绍

本次我使用的环境是

靶机使用的是

使用的Cardina版本

三. 开始配置AWD

1.可以先创建一个文件夹

2.启动mysql,创建数据库

3.搭建Cardinal平台

4.登入管理后台

添加队伍并保存密码

添加题目,设置可见

配置文件

四. 搭建靶场

上传文件并编制

启动docker

访问靶机

获取docker容器的SSH root用户密码

五. 在cardinal上部署靶机

测试ssh连接

生成flag

查看选手登入账号和密码

测试连接

更改数据库密码、比赛开始和结束的时间

六. 连接Asteroid大屏 

加油各位( •̀ ω •́ )y 期待与君再相逢


 先来个效果图展示,吸引吸引你们眼球 哈哈哈

正文开始

一. 介绍

Cardinal 是由 Vidar-Team 开发的 AWD 比赛平台,使用 Go 编写。本程序可以作为 CTF 线下比赛平台,亦可用于团队内部 AWD 模拟练习。

Cardinal 这个名字来源于作品《刀剑神域》中的 Cardinal System 游戏系统,小说中描述为可在无需任何人工外界输入就可以独立完成对玩家的监控、维护游戏数据平衡、自动产生新的游戏任务、进行自我修复与完善......

这也是我们对于 AWD 比赛平台的愿景,我们希望能有一个监测管理选手靶机动态,准确计算得分,自动更新靶机状态,并在发生异常时能及时反馈甚至自我调节修复的平台。因此,我将这个项目命名为 Cardinal。

文档指南

https://cardinal.ink/

二. 环境介绍

  • 操作系统:Windows / Linux / macOS
  • 内存:512Mb 及以上可用
  • 磁盘空间:2Gb 及以上可用

本次我使用的环境是

  • kali-linux-2022.3-installer-everything-amd64
  • docker
  • docker-compose
  • mysql   用的是kali自带的mysql,需要自己启动​​​​​​​

靶机使用的是

靶机使用https://github.com/glzjin/20190511_awd_docker

使用的Cardina版本

使用的Cardina版本http://​ https://github.com/vidar-team/Cardinal/releases ​

 要将Cardina和靶场提前下载到本地

再传到Linux kali上

三. 开始配置AWD

1.可以先创建一个文件夹

mkdir AWD

然后进入文件夹

cd AWD

上传并解压刚刚下载的Cardina

tar -zxvf Cardinal_v0.7.3_linux_amd64.tar.gz

给Cardinal增加权限

chmod +X Cardinal
                     

2.启动mysql,创建数据库

启动mysql

service mysql start  启动mysql

输入密码登入msql

mysql -u root -p   输入密码登入msql

 

 创建2个数据库:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
CREATE DATABASE  `cardinal` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

 查看是否成功:

show databases;

出现这个,就代表搭建数据库成功了

3.搭建Cardinal平台

运行Cardinal

./Cardinal
┌──(root㉿kali)-[~/AWD]
└─# ./Cardinal                                  
1 - en-US
2 - zh-CN

> type 1, 2... to select
2022/08/23 22:05:37 [ INFO] Please select a preferred language for the installation guide:                                                                
2
> 请输入比赛开始时间(格式 2020-02-17 12:00:00)
2022/08/23 22:05:40 [ INFO] Cardinal.toml 配置文件不存在,安装向导将带领您进行配置。                                                                     
2022-08-23 22:10:00
> 请输入比赛结束时间(格式 2020-02-17 12:00:00)
2022-08-23 24:10:00
> 请输入比赛结束时间(格式 2020-02-17 12:00:00)
2022-08-23 23:10:00
> 请输入每轮长度(单位:分钟,默认值:2)

> 请输入后端服务器端口号(默认值:19999)

> 请输入每次 Checkdown 扣分(默认值:50)

> 请输入每次攻击得分(默认值:50)

> 是否自行另外部署前端?(true / false,默认值:false)

> 发送您的统计数据,帮助我们使 Cardinal 变得更好?(true / false,默认值:true)

> 请输入数据库地址(默认值:localhost:3306)

> 请输入数据库账号:
user
> 请输入数据库密码:
password
> 请输入数据库表名(默认值:cardinal)

2022/08/23 22:07:46 [ INFO] 创建 Cardinal.toml 配置文件成功!
2022/08/23 22:07:46 [TRACE] 加载配置文件成功
> 请输入管理员账号:
root
> 请输入管理员密码:
kali
2022/08/23 22:08:32 [ INFO] 添加管理员账号成功,请妥善保管您的账号密码信息!
2022/08/23 22:08:32 [TRACE] 比赛总轮数:30
2022/08/23 22:08:32 [TRACE] 比赛总时长:60  分钟
2022/08/23 22:10:01 [TRACE] New round: 1

除了圈过的 其他没有特殊情况默认就行 

根据提示选择安装即可

是否自行另外部署前端?(true / false,默认值:false)

这一项最好按默认 不然后面可能会出错  除非有特殊需要

注:如果使用的是服务器,必须保证需要使用的端口是在控制台打开的,不然无法访问。(虚拟机kali不用管)

4.登入管理后台

IP:19999端口是选手登入页面
IP:19999/manager 是管理员页面

192.168.2.249:19999/manager (前面是kali的ip,19999是你在前面配置文件写的端口号)

打开网站 输入之前的管理员账号密码

这是数据大屏 

但在之前需要先配置一下啊队伍题目信息

添加队伍并保存密码​​​​​​​

添加题目,设置可见

更新Flag Shell:
echo {{FLAG}} > /flag
在根目录创建flag文件,并写入东西。

根据需要更改比赛名称,flag标识

配置文件

四. 搭建靶场

​​​​​​​靶场文件搭建https://github.com/glzjin/20190511_awd_docker

上传文件并编制

创建一个新的文件用于搭建靶场

将下载后的文件传到文件里

然后解压20190511_awd_docker-master.zip

unzip 20190511_awd_docker-master.zip 

 因为名字太长了  为了后面方便操作我们把文件名字改一下

 mv 20190511_awd_docker-master web1_1

查看文件

 

 编译其中的 docker-compose.yml 文件 

 vim docker-compose.yml
                            

改之前的 

 改之后的

 编制完后 wq 保存退出

启动docker

(如果之前没有安装请先安装 docker,在这里我就不严实了)

docker-compose up -d --build

 如果你docker没有问题 正常情况是如上图所示

查看镜像:docker images
查看正在运行的容器:docker ps

 

 如图所示说明没有问题

访问靶机

访问靶机
IP:8801

访问靶机 如下图说明没有问题 环境部署成功。

获取docker容器的SSH root用户密码

docker exec -it 容器id passwd

 此密码也是该靶机的root用户密码

温馨提醒:到这里容器算配完了,但这只是一个,后面配置靶机,是一个靶机一个容器

所以你们根据自己需求添加

五. 在cardinal上部署靶机

打开管理页面 按图操作

 

 注意:选择题目和队伍,IP为靶机IP,端口为靶机端口,密码为刚刚设置的靶机密码。
注意的是这里的Flag SSH 就是我们设定的容器root的账户密码,必须要有足够的权限,因为这里需要写入flag进容器。如果权限不够,无法写入Flag

测试ssh连接

生成flag

 

 说明:一个动态的flag,如果不是后台被拿下,选手是不可能提前知道flag的

查看选手登入账号和密码

at Dockerfile

 账号是glzjin 密码是123456

测试连接

用Xshell或者其他工具连接靶机

 输入账号和密码

 如图测试即为测试成功

更改数据库密码、比赛开始和结束的时间

在AWD页面找到conf文件

里面有个Cardinal.toml配置文件 使用vim编辑

 

 

 就可以在这里面更改数据库密码、比赛开始和结束的时间

六. 连接Asteroid大屏 

下载连接https://github.com/wuhan005/Asteroid/releases

 解压

 StandaloneWindows64\Asteroid_Data\StreamingAssets  进入到这个目录

 将IP改成自己kali的就可以了

 

运行程序即可

 就会有炫酷的页面

还有更多玩法,各位就自己去摸索吧

加油各位( •̀ ω •́ )y 期待与君再相逢

有关AWD平台搭建——Cardinal的更多相关文章

  1. NFT交易平台开发 创建NFT数字藏品平台 - 2

    为什么需要NFT市场?NFTMarketplace允许用户购买、出售、交易、查看或创建自己的NFT,就像他们需要一个市场来购买物理或数字世界中的大多数产品一样。几乎每个人都可以进入NFT市场,但要做到这一点,用户必须满足以下要求:一个NFT市场用户账户,允许您在给定平台上购买NFT。你需要一个与区块链兼容的加密钱包来购买NFT。NFTMarketplace非常重要,因为它连接了买卖双方,并为用户提供了多种工具来快速创建自己的NFT。艺术家可以在市场上列出要出售的NFT,买家可以通过投标过程探索市场并购买物品。NFT市场开发过程解释创建NFT市场是一个耗时的过程,需要编程知识和理解。那么搭建NF

  2. Ruby跨平台EOF符号的写法 - 2

    在Ruby中是否有一种平台无关的方式将EOF符号写入字符串。在*nix中,我认为符号是^D,但在Windows中是^Z,这就是我问的原因。 最佳答案 EOF不是一个字符,它是一个状态。终端使用控制字符来表示此状态(C-d)。没有这样的事情是“读一个EOF字符”,写一个也是一样的。如果您正在写入文件,请在完成后将其关闭。看这个mailinglistpost:ItsoundslikeyouarethinkingofEOFasanin-bandbutspecialcharactervaluethatmarkstheendoffile.It

  3. LinuxGUI自动化测试框架搭建(二十二)-框架主入口main.py设计&log日志调用 - 2

    (二十二)-框架主入口main.py设计&log日志调用和生成1测试目的2测试需求3需求分析4详细设计4.1新建存放日志目录log4.1.1配置config.py中写入log的目录4.2`baseInfo.py`中加入日志4.3`test_gedit.py`中加入日志4.4主函数入口main.py中调用日志5调用日志主函数main.py源码6`baseInfo.py`源码7`test_gedit.py`源码8运行效果9目前框架结构1测试目的组织运行所有的测试用例,并调用日志模块,便于问题定位。

  4. 基于ActiveMQ搭建MQTT服务备忘(二):webapp集成 - 2

    (1)为什么写这个话题(Why)读万卷书不如行千里路。这次搭建MQTT服务,遇到了一些误解,特此记录备忘。主要包括:(1)服务(Broker)的账户管理与网页管理平台的账户(2)与web应用的集成(Spring系)(2)ActiveMQ版本选择因为JAVA环境是JDK8,所以按兼容性考虑选择了ActiveMQ5.15的最后版本5.15.15。如果你是JDK11则可考虑ActiveMQ的最新版本5.17或5.18。ActiveMQ支持MQTTv3.1.1andv3.1。(3)ActiveMQ与web应用的集成主要介绍与Spring系的webapp集成(SpringBoot和SpringMVC)。

  5. 【微服务笔记23】使用Spring Cloud微服务组件从0到1搭建一个微服务工程 - 2

    这篇文章,主要介绍如何使用SpringCloud微服务组件从0到1搭建一个微服务工程。目录一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件(2)微服务依赖1.2、搭建注册中心(1)引入依赖(2)配置文件(3)启动类1.3、搭建配置中心(1)引入依赖(2)配置文件(3)启动类1.4、搭建API网关(1)引入依赖(2)配置文件(3)启动类1.5、搭建服务提供者(1)引入依赖(2)配置文件(3)启动类1.6、搭建服务消费者(1)引入依赖(2)配置文件(3)启动类1.7、运行测试一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件这里主要是使用的SpringCloudNetflix

  6. 视频融合技术解决方案,三维全景拼接赋能平台 - 2

    近年来,随着信息化时代的到来,三维全景拼接以视频监控领域为代表的智能硬件公司迅速崛起,随后全国各地在视频监控领域进行了大量的建设。但随着摄像头数量的增加,视频监控画面离散、庞杂、关联性差等诸多问题日渐凸显。如何优化现有视频技术,助力管理者或使用者有效、直观、准确地掌控现场实时动态,成为我国信息化前行路上面临的新课题。视频融合技术平台解决方案北京智汇云舟科技有限公司成立于2012年,专注于创新性的“视频孪生(实时实景数字孪生)”技术研发与应用。公司依托自研三维地理信息引擎(3DGIS),融合建筑信息模型(BIM)、视频监控(Video)、人工智能(AI)及物联网(IOT)等多种技术,并在此基础上

  7. ruby - 如何指定 gem 仅是 JRuby 平台? - 2

    我正在开发一个只适用于JRuby平台的gem。如何在我的.gemspec中指定它? 最佳答案 你可以简单地输入gemspecspec.platform='java'表示它仅适用于JRuby。具体设置平台可以看一下:RubygemSpecificationReference 关于ruby-如何指定gem仅是JRuby平台?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/189366

  8. ruby-on-rails - 选择 Ruby on Rails 作为基于浏览器的在线游戏平台 - 2

    对于类似Travian的在线策略游戏,我有一些(我认为)非常棒的想法。有些内容我还没有想通,还有一些我还不知道的挑战。这是一个相当大的项目,对于(还)不是熟练的Web开发人员的人来说可能太重了。我还是想试一试,但我在选择平台时遇到了麻烦。世界上的“规模”最近被抛得一团糟,我看到RubyonRails因规模不佳而受到抨击,所以我来这里是为了得到一些答案。我喜欢RubyonRails,无论是Ruby还是Rails。我当然不是这方面的专家,但我喜欢使用它。我之前也使用过Python+Django,也使用过PHP(我不喜欢它。)理想情况下,假设每个服务器有7000名玩家,大概每秒要处理大量数据

  9. ruby-on-rails - 有谁知道 Ruby On Rails 的任何跨平台 GUI 日志查看器? - 2

    我厌倦了使用:tail-fdevelopment.log跟踪我的Rails日志。相反,我想要在网格中显示信息并允许我对每个日志消息进行排序、过滤和查看堆栈跟踪的东西。有谁知道用于显示Rails日志的GUI工具。理想情况下,我想要一个独立的应用程序(不是Netbeans或Eclipse中的东西) 最佳答案 Splunk,有一个免费版本,限制为500mb,但具有与完整版本相同的所有功能。 关于ruby-on-rails-有谁知道RubyOnRails的任何跨平台GUI日志查看器?,我们在St

  10. ruby - bundle 安装错误 - 你的 bundle 只支持平台 [] 但你的本地平台是 ["ruby", "x86_64-linux"] - 2

    在执行bundle安装时出现此错误;谷歌似乎是一个常见问题,但我似乎找不到解决方法(似乎是关于Gemfile.lock的建议,但我将该文件移到了另一个目录)#bundleinstallYourbundleonlysupportsplatforms[]butyourlocalplatformsare["ruby","x86_64-linux"],andthere'snocompatiblematchbetweenthosetwolists.这是我的Gemfile,目录中没有Gemfile.lock。[root@ip-172-30-4-16rails]#gem-v2.6.11[root@i

随机推荐