使用 CTFd 搭建靶场


众所周知,渗透测试练习有许多平台可供使用,比如 MetasploitableDVWA 等环境,而搭建 CTF 平台也有许多项目可供参考,如 CTFdFBCTF,一些比赛以及各个大学的练习站点就使用了这些项目。

CTFd 可使用多种方式 部署,为了以更加轻便的方式运行,此处使用 Docker

环境部署

Docker

  1. 安装 Docker 的依赖
$ yum install yum-utils device-mapper-persistent-data lvm2 bind-utils
  1. 添加 Docker 的源,再 安装 Docker
      $ yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
      $ yum install docker-ce

Docker Compose

Docker Compose 使用 Python 开发,因此需先安装好 Python 的 pip

$ yum install epel-release python-pip
$ pip install docker-compose

启动 CTFd

CTFd

  1. 下载 CTFd
    $ git clone https://github.com/CTFd/CTFd.git
  2. 进入 CTFd,会发现项目文件夹中还有一个 CTFd 文件夹
    $ cd CTFd
    $ docker-compose up -d
    docker-compose 使用了 Docker API,等同于 dockerup 选项构建、运行容器,-d 参数表示在后台运行。

首次构建将拉取几个镜像(mariadb、python、redis 等),速度较慢,等到脚本跑完,就可以在本地通过 http://127.0.0.1:8000 访问。初次运行需注册 Admin 用户,填写相关信息。

汉化

其实没必要汉化,不过为了后期可定制化,此处 为汉化项目的地址,不过该项目只汉化了选手的界面,管理员相关页面仍为英文。

  1. 下载汉化包
    $ git clone https://github.com/Gu-f/CTFd_chinese_CN.git
  2. 替换或者增加 theme
    • core_chinese 文件夹直接放入 CTFd/CTFd/themes 目录
    • themes 直接替换 CTFd/CTFd 目录下的 themes 即可

动态独立靶机

现在很多比赛都使用了动态独立靶机(dynamic standalone instance),每道题目环境分离,且能为每个队伍生成独一无二的 flag,动态创建也能减少资源开销。

此处使用 赵师傅 的 [CTFd-whale]

根据 README,需要下载 frps,以实现穿透

docker-compose.ymlvolume: 添加:

service:
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock

参考资料

  1. 手把手教你如何建立一个支持ctf动态独立靶机的靶场(ctfd+ctfd-whale)
  2. CTFd动态flag镜像编写

文章作者: Palm Civet
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Palm Civet !
 上一篇
gmpy2 编译安装的坑 gmpy2 编译安装的坑
本文记录 Kali 下编译安装 gmpy2 的过程,需要在网上爬很多帖,但后来发现,可以直接使用 apt 就可以安装,所以踩坑记录变成了部署记录。
2019-11-02
下一篇 
踩坑小记——薛定谔的 Console.log() 踩坑小记——薛定谔的 Console.log()
当你在控制台展开打印出来的数组(或者对象)的时候,如果此时该数组(或对象)的数据已经发生了改变,那么将显示改变之后的数据。
2019-09-01
  目录