基于华为ECS弹性云服务器技术搭建CTFd动态靶场

举报
yd_257605159 发表于 2023/12/09 09:13:37 2023/12/09
【摘要】 基于华为ECS弹性云服务器搭建CTFd动态靶场

基于华为ECS弹性云服务器搭建CTFd动态靶场

弹性计算需求:华为云的弹性虚拟服务器(Elastic Virtual Server)可以用于部署CTFd平台的服务器实例。根据参赛人数的需求,弹性地调整服务器的规模和配置,确保平台在比赛期间能够处理高负载情况。

一.服务器

  • 云服务器:华为云弹性云服务器 ECS

  • 操作系统:Ubuntu 18.04 server 64bit with ARM(40GiB)

二.搭建

1.更新源

apt-get update
apt-get upgrade

PixPin_2023-12-08_20-28-13

2.安装环境

  • 动态靶机是通过 docker 实现的,因此首先要准备安装一下 docker
curl -fsSL https://get.docker.com | bash -s docker

image-20231208203749148

  • 安装docker-compose
sudo pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple

image-20231208210017428

3.配置环境

  • 插件使用的是集群的模式,这里要创建一个单个服务器的集群
docker swarm init
  • 将该服务器加入集群
docker node update --label-add='name=linux-1' $(docker node ls -q)

image-20231208210218637

docker 更换华为镜像源,修改文件 /etc/docker/daemon.json

{
    "registry-mirrors": [ "https://f4d0e153e5f349498b744bc6f9228fca.mirror.swr.myhuaweicloud.com" ]
}

重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

4.下载

  • 下载CTFd
git clone https://github.com/Un1kTeam/CTFd --depth=1

image-20231208210805555

5.配置

cd CTFd
nano conf/frp/frps.ini # token 一定要随机
nano conf/frp/frpc.ini # token 一定要随机

这里给出 frp 两个配置文件的内容

  • frps.ini

    [common]
    bind_port = 7000
    vhost_http_port = 9123
    token = your_token
    subdomain_host = node.vaala.ink
    
  • frpc.ini

    [common]
    token = your_token
    server_addr = 172.1.0.3
    server_port = 7000
    admin_addr = 172.1.0.4
    admin_port = 7400
    

    6.安装

    • 安装插件并启动
    git submodule update --init
    docker-compose up -d
    

    image-20231208211040446

    image-20231208220256427

    查看是否有没有正确启动的镜像

    docker ps -a
    

    三.平台设置

    • 访问 9124 端口进入平台,完成平台基本配置,然后进入后台,右上角的插件中进入 Whale 设置,其中,左侧 Docker 菜单栏如果没有特殊需求无需更改,只需更改左侧 Frp 菜单栏中的内容
内容
Http Domain Suffix node.vaala.ink 这里填写使用http方式访问靶机的泛解析域名
Http Port 9123 这里填写frps中的vhost_http_port,该端口为http方式靶机访问的端口
Direct IP Address chive.vaala.cloud 这里填写服务器ip,用于显示Direct方式访问的题目的IP
Direct Minimum Port 9125 这里填写用于动态靶机Direct方式的开始端口
Direct Maximum Port 9129 这里填写结束端口

最后点一下更新就可以保存配置了,填写完成后新建题目测试是否成功,按下表新建题目,表中没有提到的保持默认就好

内容
Choose Challenge Type Dynamic docker
Name test
Category test
Docker Image vaalacat/push_f12
Frp Redirect Type Direct 或者 Http
Frp Redirect Port 80
Initial Value 1
Decay Limit 1
Minimum Value 1
Score Type dynamic score

新建题目过后点击启动,然后等待靶机创建,可以在服务器中 docker ps -a 查看是否启动,若启动成功则搭建完成

三.访问

在浏览器中输入IP:9124即可访问

image-20231208200333854

image-20231208200803576

image-20231208200616838

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。