0%

基于AWD-platform的AWD环境搭建

基于AWD-platform的AWD环境搭建

用zhl2008大佬的平台搭了个AWD平台,下面记录搭建过程和运维指南。

参考链接:

夜莫离大佬的教程

搭建CTF-AWD训练平台

暗月博客搭建AWD平台

下载

1
git clone https://gitee.com/jikemofan/awd-platform

原版有无限提交flag的bug,我用的暗月的版本,主要bug均已经修复。(但是有新的bug,比如说他写的提交flag功能是个摆设)

进入项目:

1
cd awd-platform/

从网上拉取一下zhl2008的docker镜像:

1
docker pull zhl2008/web_14.04

然后要改名!大坑。不改名就去改dockerfile

1
docker tag zhl2008/web_14.04 web_14.04

至此,awd平台已经安装完毕。但是,要安装python2,先更新源:

1
sudo apt update

然后装python2

1
sudo apt install python2

比赛环境介绍

服务器全部以docker形式部署在同一台虚拟机上。

Check_server:

服务检查服务器,用于判定选手维护的服务是否可用,如果不可用,则会扣除相应的分数。不开启任何端口。需要与flag服务器通信。

Flag_server:

选手提交flag的服务器,并存储选手的分数。开启80端口。

Web_server:

选手连接的服务器,选手需要对其进行维护,并尝试攻击其他队伍的机器。通常开启80端口,22端口,并将端口映射到主机。

比赛逻辑拓扑

7-1

比赛启动

例如我要创建5支队伍,赛题使用web_yunnan_simple

1
python2 batch.py web_yunnan_simple 5

启动比赛:

1
python2 start.py ./ 5

此时可以访问8080端口看到计分板。靶机也可以正常访问。

1
2
3
4
5
6
7
8
9
映射规则:
站的位置:
team1 ---- 8801
team2 ---- 8802
team3 ---- 8803
SSH位置:
team1 ---- 2201
team2 ---- 2202
team3 ---- 2203

各队伍的ssh密码在pass.txt中

1
cat pass.txt

关于check模块,他的check脚本是不能用的,我们需要进行一些修改,这个规则要根据自己的环镜自己编写,总体思路就是判断页面是否存在,存在就加一分,不存在就减一分,在他内置check脚本的基础上,我们可以稍微修改一下靶机环境的源码,然后用check脚本去访问,在他内置的脚本中还可以修改每次加分和扣分的多少。

image-20210927210321320

还有一个要注意的地方就是,在项目的根目录的flag_server/中,我们 要赋予score.txt 和result.txt 777权限,否则分数变动无法进行同步。

关闭环境和题目:

1
python2 stop_clean.py

比赛参数

Flag 提交: /flag_file.php?token=teamx&flag=xxxx (x为你们的队伍号)

比赛规则

1.每个队伍分配到一个docker主机,给定ctf用户权限,通过制定的端口和密码进行连接;

2.每台docker主机上运行一个web服务或者其他的服务,需要选手保证其可用性,并尝试审计代码,攻击其他队伍;

3.比赛开始后,前30分钟,选手维护各自的主机,在这个阶段,所有的攻击和服务不可用不影响分数;

4.选手可以通过使用漏洞获取其他队伍的服务器的权限,读取他人服务器上的flag并提交到指定的flag服务器:

http://flag服务器IP:端口/flag_file.php?token=队伍token&flag=获取到的flag 来获得相应的分数。

例如:flag server地址为8.8.8.8,端口为8080,队伍token为team1,flag为40ed892b93997142e46124516d0f5ac0,则请求/flag_file.php?token=team1&flag=40ed892b93997142e46124516d0f5ac0来获得相应分数。

每次成功攻击可获得2分,被攻击者扣除2分;有效攻击两分钟一轮

5.选手需要保证己方服务的可用性,每次服务不可用,扣除1分,服务可用,加1分;服务检测两分钟一轮

6.选手可以从flag服务器上获取所有的攻击情况以及当前的分数:

攻击情况url地址:http://flag服务器IP:端口/result.txt

得分情况地址:http://flag服务器IP:端口/score.txt

7.不允许使用任何形式的DOS攻击

注意事项

比赛节奏巨快,2分钟一轮。要修改的话可以看看这个(但我没有成功)

image-20210927210717817

还有夜莫离大佬写的前端计分板。

image-20210927210806037

计分板源码打包:https://pan.baidu.com/s/18KlIeluaTtm-kT3KuXHseQ

提取码:cvdn

-------------本文结束感谢您的阅读-------------