CTFd+CTFd-whale动态靶机插件搭建

文章目录

  • CTFd+CTFd-whale动态靶机插件搭建
    • 1.安装docker
    • 2.安装docker-compose
    • 3.Frp的配置
    • 4.CTFd和CTFd-whale插件的安装

环境Ubutun20.04-desktop

1.安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或者
curl -sSL https://get.daocloud.io/docker | sh

设置docker镜像加速(可参考:https://blog.csdn.net/qq_45637155/article/details/109902726)

  • 访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
  • 找到镜像加速器,按照指示修改daemon配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.安装docker-compose

1. 进入https://github.com/docker/compose/releases 查看最新版本。sudo curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose2. 设置权限
sudo chmod +x /usr/local/bin/docker-compose3. 查看是否安装成功
docker-compose --version
出现docker-compose version 1.26.2即安装成功

3.Frp的配置

#请在/root目录下执行
cd
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
cd frp_0.29.0_linux_amd64
sudo cp systemd/* /etc/systemd/system/
sudo mkdir /etc/frp
sudo cp frpc.ini  frps.ini /etc/frp/
sudo cp frpc  frps /usr/bin/
sudo chmod a+x /usr/bin/frpc /usr/bin/frps
sudo systemctl enable frps

3.1 编辑/etc/frp/frps.ini

vim /etc/frp/frps.ini
[common]
bind_port = 7897
bind_addr = 0.0.0.0
token =thisistoken

3.2 启动frps服务

systemctl start frps

3.3 修改/etc/frp/frpc.ini的配置文件(和上面的frps.ini对应)

vim /etc/frp/frpc.ini
[common]
server_addr = 172.17.0.1 #docker0的ip
server_port = 7897
token=thisistoken

3.4 再修改/frp_0.29.0_linux_amd64/frpc.ini(这个文件会用来配置frpc容器的)

vim /frp_0.29.0_linux_amd64/frpc.ini
[common]
server_addr = 172.17.0.1 # 这里填写宿主机ifconfig之后docker0的ip
server_port = 7897
token=thisistoken
admin_addr = 172.19.0.2 #这里填写frpc容器在frpcadmin网络里的ip,可以先指定
admin_port = 7400
log_file = ./frps.log

3.5 创建网络并启动frpc容器并配置frpc.ini

docker network create ctfd_frp-containers
docker run  -d -v ~/frp_0.29.0_linux_amd64/frpc.ini:/etc/frp/frpc.ini --network="ctfd_frp-containers" --restart=always "glzjin/frp"

3.6 创建网络frpcadmin用于ctfd容器和frpc容器通信(通过docker ps查看刚创建的fprc容器的id)

docker network create frpcadmin
docker network connect frpcadmin id # <frpc容器名或者ID>
#将frpc和ctfd容器单独连接到网络frpcadmin,注意要等容器创建好之后再连接,因此ctfd将在稍后连接

3.7 查看frpcadmin网络的连接情况并记录frpc容器的网络IP

docker network inspect frpcadmin

图中的IP就是frpc容器在frpcadmin网络中的ip地址。是可以由我们在/frp/frpc.ini中来指定的(admin_addr)。

这个地址在后面填写ctfd-whale插件配置的时候也会用到

4.CTFd和CTFd-whale插件的安装

#切到root的家目录
cd /root
#下载ctfd
git clone https://github.com/CTFd/CTFd.git
#进入CTFd目录
cd CTFd
#回退到某个版本,直接执行下面命令
git reset 6c5c63d667a17aec159c8e26ea53dccfbc4d0fa3 --hard#进入CTFd/plugins(注意下载的CTFd文件有一个同名的子目录CTFd,子目录下有plugins,不要混淆了)
cd CTFd/plugins
#下载插件并确保文件名小写
git clone https://github.com/glzjin/CTFd-Whale.git ctfd-whale
#进入ctfd-whale
cd ctfd-whale
#回退版本
git reset 5b32f457e9f56ee9b2b29495f4b3b118be3c57bd --hard
#回到第一层CTFd目录
cd ../../../
#配置docker-compose
vim docker-compose.yml

配置docker-compose.yml(可以直接复制覆盖)

version: '2.2'services:ctfd:build: .user: rootrestart: alwaysports:- "8000:8000" #第一个是访问ctfd的端口,第二个是docker端口映射出去的端口environment:- UPLOAD_FOLDER=/var/uploads- DATABASE_URL=mysql+pymysql://root:ctfd@db/ctfd- REDIS_URL=redis://cache:6379- WORKERS=1- LOG_FOLDER=/var/log/CTFd- ACCESS_LOG=-- ERROR_LOG=-volumes:- .data/CTFd/logs:/var/log/CTFd- .data/CTFd/uploads:/var/uploads- .:/opt/CTFd:ro- /var/run/docker.sock:/var/run/docker.sock #添加这句即可,别的基本按照官方的不用动depends_on:- dbnetworks:default:internal:db:image: mariadb:10.4.12 #这里改成10.4.12,10.4.13会出错restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=ctfd- MYSQL_USER=ctfd- MYSQL_PASSWORD=ctfd- MYSQL_DATABASE=ctfdvolumes:- .data/mysql:/var/lib/mysqlnetworks:internal:# This command is required to set important mariadb defaultscommand: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --wait_timeout=28800, --log-warnings=0]cache:image: redis:4restart: alwaysvolumes:- .data/redis:/datanetworks:internal:networks:default:internal:internal: true

修改Dockfile:

进入CTFd目录,vim Dockerfile,然后复制下面内容

FROM python:3.6-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories &&\apk update && \apk add python3 python3-dev linux-headers libffi-dev gcc make musl-dev py-pip mysql-client git openssl-dev
RUN adduser -D -u 1001 -s /bin/bash ctfdWORKDIR /opt/CTFd
RUN mkdir -p /opt/CTFd /var/log/CTFd /var/uploads
RUN pip config set global.index-url https://pypi.doubanio.com/simple
RUN pip config set install.trusted-host pypi.doubanio.com
COPY requirements.txt .RUN pip install -r requirements.txt -i  https://pypi.doubanio.com/simpleCOPY . /opt/CTFdRUN for d in CTFd/plugins/*; do \if [ -f "$d/requirements.txt" ]; then \pip install -r $d/requirements.txt -i  https://pypi.doubanio.com/simple; \fi; \done;RUN chmod +x /opt/CTFd/docker-entrypoint.sh
RUN chown -R 1001:1001 /opt/CTFd
RUN chown -R 1001:1001 /var/log/CTFd /var/uploadsUSER 1001
EXPOSE 8000
ENTRYPOINT ["/opt/CTFd/docker-entrypoint.sh"] 

在CTFd目录qiurements.txt添加:banal==0.4.2

构建启动镜像

docker-compose build

启动镜像

docker-compose up -d

将ctfd容器加入到frpcadmin网络中

#查看ctfd容器的id
docker ps
docker network connect frpcadmin 容器id

可以看到ctfd容器已经加入到了frpcadmin网络中

最后启动好了的docker界面如下:

访问:http://ip:8000

(我这里是在本机上搭建的,所以ip写的是127.0.0.1。若是在云上搭建的,直接写公网的ip即可)

首次进入需要完善一下管理员信息和相关模式,根据需要填写即可。

解决平台加载很慢的问题:

原因是用了一个all.css。这个样式文件是从外网加载过来的。修改一下网址即可实现快速加载。这个样式文件的位置在:/CTFd/CTFd/themes/core/static/css/vendor/font-awesome/下的fontawesome-fonts.css。

将:

@import url('https://use.fontawesome.com/releases/v5.4.1/css/all.css');

替换为:

@import url('https://cdn.bootcss.com/font-awesome/5.13.0/css/all.css');

然后再重启docker

systemctl restart docker

以管理员的方式登录,然后再导航栏中点击Admin -> Plugins

进入设置界面

添加题目:



启动靶机

对于MISC,REVERSE类型的题目。我们只需要上传题目附件和填好flag就可以了。

参考文章:

https://blog.csdn.net/qq_42111373/article/details/106398981

https://blog.csdn.net/qq_45637155/article/details/109902726

https://blog.csdn.net/weixin_43802844/article/details/108572271

CTFd+CTFd-whale动态靶机环境搭建相关推荐

  1. JSP动态网站环境搭建应用中的详细步骤(Tomcat和Apache/IIS的整合)

    链接地址:http://www.cnblogs.com/dartagnan/archive/2011/03/25/2003426.html JSP动态网站环境搭建应用中的详细步骤(Tomcat和Apa ...

  2. 路由器逆向分析------路由器固件分析和动态调试环境搭建简述

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70140865 01.路由器固件分析和动态调试环境搭建简述的原文 <Emula ...

  3. Ubuntu搭建CTFd平台实现动态靶机的过程

    记录搭建CTFd过程 学校的毕业设计是搭建Web渗透攻防教学实训平台搭建,写这篇的目的是让大家少走弯路,一次性搭建完成 搭建环境:阿里云eos云主机1g2核 ubuntu版本:20.04 采用的是第一 ...

  4. MS08067/MS10061漏洞靶机环境搭建总结

    MS10-061靶机搭建环境网上并没找到什么资料,做一个总结,为大家提供参考: MS10-061:​打印后台程序服务中可能允许远程执行代码漏洞 准备环境: VMware WINDOWS XP SP3  ...

  5. weblogic动态调试环境搭建

    一:docker配置修改以支持远程调试 Docker-compose.yml 添加8453端口,该端口会是远程调试端口 Docker-compose up -d 下载并运行镜像 修改weblogic配 ...

  6. P22 22、动态SQL环境搭建

    ## 12.动态 SQL ==**什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句**== 利用动态 SQL 这一特性可以彻底摆脱这种痛苦. 注: 动态sql就是简化类似步骤 注释 ...

  7. [ vulnhub靶机通关篇 ] vulnhub靶机环境搭建教程并寻找真实IP -- 以DC1为例

  8. 【网络安全学习】渗透测试篇01-DVWA靶场环境搭建教程

    渗透测试:通过经授权的模拟攻击,发现存在的漏洞,并以此对网络.主机.应用及数据的安全性进行评估. 靶场作用:在合法的环境下进行网络安全学习与演练 目录 为什么写这篇文章? 介绍及注意事项 环境搭建 1 ...

  9. `ctfd`+CTFd-Whale环境搭建详细过程(图文)

    1.ctfd环境搭建 1.在home目录下建立ctfd文件 mkdir ctfd 注意所有的文件下载解压都需要注意文件的目录!一方面后面的指令我已经写好,路径已经确定,另一方面,有些配置文件里面路径也 ...

最新文章

  1. 初学Java--计算器
  2. ysoserial java 反序列化 Groovy1
  3. 获取height固定折叠元素真实高度方法
  4. Hadoop 2.0联邦机制
  5. springboot 整合 mongodb实现 批量更新数据
  6. 年发5篇Science,现入选中国榜“35岁以下科技创新35人”!
  7. easy poi 模板生成多表excel
  8. jquery版本共存_多个jQuery版本共存的处理方案
  9. 利用计算机实现排列组合公式,计算机算法基础 ——数学(排列组合函数)
  10. Stratified Transformer复现和调试记录,ubuntu20复现S3DIS数据集(点云语义分割)
  11. ROS1云课- 1 0 2 4
  12. Android MVP 架构设计 (一)
  13. 吴恩达 - 卷积神经网络 学习笔记(一)
  14. c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...
  15. 网页/博客Hexo添加live2d游戏角色看板娘,简易添加,碧蓝航线等live2d新型游戏角色模型(moc3)
  16. Win8初体验 内存/SSD硬盘性能挑Win7(一)
  17. LaTex “too many unprocessed floats” 解决
  18. 问答系统概述(待续)
  19. 干货 | 想学习STEAM科学知识,必看这15个超赞的国外网站
  20. js扫描二维码并跳转

热门文章

  1. 【golang】处理jpeg图片压缩后方向发生变化问题
  2. echarts 路线图 实例 线路图 及线路图特效
  3. ubuntu文献翻译软件:兰译
  4. 如何使用ue编辑java,UltraEdit文字编辑器教程:UltraEdit / UEStudio脚本访问剪贴板内容...
  5. 远控免杀专题(9)-Avet免杀(VT免杀率14/71)
  6. 60项基于深度学习的SLAM顶会开源方案汇总(上篇)
  7. 曲率发动机和反重力装置原理
  8. 打印机用计算机名慢,“电脑连上打印机就超级慢”的解决方案
  9. 周金涛生前20篇雄文精华,一文尽览
  10. 使用VS编写C语言程序遇到的scanf错误