专栏首页FreeBuf手把手教你打造超级CTF平台

手把手教你打造超级CTF平台

CTF,是最近大火的一个IP……

随之而来的是大批CTF训练平台和CTF比赛的到来。

这其中呢,具有代表的CTF比赛有老牌的WCTF、XCTF,还有各大厂所举办的数不清的CTF比赛,这里为了避免广告嫌疑, 不写上了。

但是呢,可以给大家安利个好的CTF训练平台,老牌的Bugku咱不提,基本上都知道。

但新起之秀的圈子的砺剑CTF平台、BUUCTF 以及未来我朋友的超级平台(字节脉搏)也即将上线了。

这些平台无疑都采用了动态靶场 + 丰富的CTF题目,更有的还有今年各大比赛的原题,实属“牛批”……

那你想不想做一个,一样的CTF平台呢?

那就由孙德胜,来教大家如何搭建CTF的训练平台,以及炫酷的CTF比赛平台!

训练平台,感谢琴里大佬提供

比赛平台,感谢琴里大佬提供

训练平台搭建方法(CTFd)

安装git

sudo apt-get install git

下载ctfd

sudo git clonehttps://github.com/isislab/CTFd.git

安装pip

sudo apt-get install python-pip

安装pip

sudo apt-get install python-pip

安装Flask

sudo pip2 install Flask

到 CTFd的路径下,运行prepare.sh

sudo ./prepare.sh

运行CTFd目录下的serve.py

sudo python serve.py

安装完成

访问IP

步骤太繁琐?网上同类文章太多?想一键获取搭建好的CTF平台?刚好,你认识孙德胜,文章结尾提供建好的镜像!

一键部署,快人一步!

比赛平台搭建

安装Git

git clone https://github.com/facebook/fbct

进入FBCTF文件夹

cd fbctf

安装Virtualbox和Vagrant

apt-get install virtualbox vagrant

查看Vagrant版本

vagrant -v

下载安装Ubuntu14.04(需要安装Virtualbox)

vagrant box add ubuntu/trusty64

通过Vagrant开启虚拟机

vagrant up

开启成功后,可以通过浏览器访问 https://10.10.10.5 使用平台,并且可以通过‘vagrant ssh’命令连接Ubuntu14.04,连接后源代码位置:/var/www/fbctf/,做二次开发可以直接修改源代码,修改后重启服务即可。

什么?还是不想搭建?想一键获取搭建好的CTF平台?那么,巧了!因为你认识孙德胜,所以依旧在文章的结尾提供建好的镜像。

现在,我们讨论如何生成动态靶机。

利用大佬开发的CTFd-Whale:

1、在机器上安装好 Docker 和 Docker-Compose,并且启用 Docker Swarm。

Docker Swarm 参考:https://www.jianshu.com/p/77c4c62d9afe

注意需要用以下命令来标记节点:

docker node ls #检查节点 ID docker node update —label-add name=linux-1 <节点 ID>

参考链接:

https://docs.docker.com/install/linux/docker-ce/ubuntu/ https://docs.docker.com/compose/install/

2、在机器上下载代码。

git clone -b single https://github.com/glzjin/CTFd.git

3、进入目录,编辑 frp 两端配置文件,使 token 随机,再使用 docker-compose 启动相关组件。

cd CTFd

    vi frp/frps.ini # token 一定要随机

    vi frp/frpc.ini # token 一定要随机

    git submodule update --init

    docker-compose up -d

4、启动完毕,打开 http://ip:8000 安装 CTFd。

5、进入系统后台设置,打开插件设置页面,按照如下指导进行设置。点击可看大图。

Frp Config Template,记得修改 token:

[common]
    token = randomme
    server_addr = 172.1.0.4
    server_port = 6490
    pool_count = 200
    tls_enable = true
    admin_addr = 172.1.0.3
    admin_port = 7400

其他内容无特殊情况无需修改。

6、添加一个题目,进行测试。

具体可以参照这位大佬的博客:

https://www.zhaoj.in/read-6333.html

当你做完了以上的所有步骤,恭喜你,你已经成功搭建CTF平台了!

最后,我要感谢以下的几位大佬:

@圈子社区 国士无双 @圈子社区 段鹏 @Tone @glzjin @admin-琴里

没有你们,就没有德胜的这篇文章,非常感谢!

比赛平台:链接: https://pan.baidu.com/s/1BWPGqLRUAyBcl-81c3xKGg# 提取码:zcfr 训练平台:链接: https://pan.baidu.com/s/1N_IBcgH5lUpoUzrwC7_ifg# 提取码:zvz6

*本文作者:独立团孙德胜,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:独立团孙德胜

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 企业安全建设的体系思考与落地实践

    企业安全建设是一个老生常谈的问题,由于每个人的工作经验和心得体会的不同,因此看法和实践通常也不一样。

    FB客服
  • 挖洞经验 | 记一次有关参数指定型XSS的故事

    各位信息安全大神们,大家好!我准备在这篇文章中跟大家分享一些我在最近一次挖洞过程中的发现,并与安全社区一同分享我的挖洞经验。 ? 写在前面的话 在这篇文章中,我...

    FB客服
  • 九种姿势运行Mimikatz

    *本文原创作者:R1ngk3y,本文属FreeBuf原创奖励计划,未经许可禁止转载

    FB客服
  • 使用pipework将Docker容器配置到本地网络环境中

    kongxx
  • 电商网站分析实践(中)

    第二部分:从产品放入购物车到订单达成 用户已选择好了产品并放入到购物车中,这时我们的任务就是保证用户购买支付的流程可以尽量流畅,使得尽量多的用户可以到达订单达成...

    小莹莹
  • 网络安全等级划分

    网络安全级别分为几个等级?依照安全性从高到低划分为 A,B,C,D四个等级,其中这些安全等级不是线性的,而是指数级上升的。

    随心助手
  • CSS命名规范之BEM-源自Yandex的CSS命名方法论

    BEM即块(Block)、元素(Element)、修饰符(modifier),是由著名的俄罗斯搜索引擎团队Yandex提出的一种前端命名方法论。BEM命名约定更...

    老九学堂-小师弟
  • Centos7新增静态路由

    新增或编辑配置文件route-interfacename,interfacename为网卡名,本文为ens33

    loong576
  • LeetCode 430. 扁平化多级双向链表(DFS)

    您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如...

    Michael阿明
  • 人生中的选择

    用户1756920

扫码关注云+社区

领取腾讯云代金券