一个awd训练平台

前言

如果是第一次打awd,那么使用这个平台是非常好的选择,下面我将我使用这个平台的过程和踩得坑一一列举,希望对其他awd新手有所帮助。

介绍这个平台的博客很多,我感觉这位师傅写的比较好,我刚开始就是看的这些博客学习如何使用:
AWD线下攻防平台搭建
AWD线下攻防环境使用

0x01 环境配置-安装docker

我安装docker都是按下面这篇文章来的,一个命令一个命令的复制粘贴即可,安装过程非常简单。

kali安装docker环境

注:如果下载速度慢请换源,百度一大堆教程。

0x02 环境配置-配置加速服务器

这一步是非常重要的,如果不配置加速服务器的话,下载会很慢很慢。。。

创建目录

mkdir -p /etc/docker

在配置文件中写入加速器地址(建议用自己的)

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://0n6y45mf.mirror.aliyuncs.com"]
}
EOF

重启服务,让配置生效

sudo systemctl daemon-reload
sudo systemctl restart docker

我单独写了一篇文章:docker设置加速服务器(解决下载镜像慢的问题)

推荐使用阿里云的加速器,注册登录就有。阿里云镜像加速器地址

0x03 平台搭建

平台地址为:https://github.com/zhl2008/awd-platform

可以直接在服务器上用命令下载:

git clone https://github.com/zhl2008/awd-platform.git

也可以直接去github上下载,然后拖到虚拟机或上传到服务器(挂个vpn,github上下东西贼快):
在这里插入图片描述
我是下载好后拖到服务器上的:
在这里插入图片描述
然后进入这个文件夹,位置每个人不一样:

cd /ctf-题目/awd-platform-master/

下载docker镜像:

docker pull zhl2008/web_14.04

改镜像名:

docker tag zhl2008/web_14.04 web_14.04

0x04 平台使用

创建比赛

python batch.py web_yunnan_simple 10

除了 web_yunnan_simple下面这些都可以用
在这里插入图片描述

在这里插入图片描述

python start.py ./ 10

在这里插入图片描述

2,,启动check脚本:

这里要改一下check脚本,后面会有讲

docker attach check_server
python check.py

3,关闭比赛

python stop_clean.py

注:这个命令会删除所有的容器。

4,提交flag

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

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

5,计分板
计分板:http://平台ip:8080/score.txt

创建的靶机的数据:
在这里插入图片描述
web页面端口:

team1 ~8801
team2 ~8802
team3 ~8803
......

直接浏览器访问即可

ssh端口:

team1 ~2201
team2 ~2202
team3 ~2203
......

可以使用xshell连接,ssh连接密码在:awd-platform/pass.txt

0x05 一些小问题

全部写在这里了:解决zhl2008/awd-platform这个awd平台的问题

一个awd攻防比赛的裁判平台。 版本:beta v2.0 开发语言:python3 + django 平台分为两个部分 裁判机 靶机 通过特定接口,来实现靶机flag与服务器的通信 搭建流程 裁判机 安装所需环境 裁判机:python3+django 全局搜索woshiguanliyuan,并修改为随机字符串,此处为管理平台地址 /untitled/urls.py path('woshiguanliyuan/',views.admin,name='admin'), path('woshiguanliyuan/table/',views.admin_table,name='admin_table'), /app/views.py if 'woshiguanliyuan' not in request.META['HTTP_REFERER']: 第31和47换为你的目录 列:("/var/www/awd_platform/app/qwe.txt","a") 修改app/management/commands/init.py,添加用户 #['用户名','用户靶机token','用户靶机token'] user=[ ['123456','FF9C92C7SDFABB71566F73422C','FF9C92C7SDFABB71566F73422C'], ['aaabbb','311F8A54SV9K6B5FF4EAB20536','311F8A54SV9K6B5FF4EAB20536'] ] 修改/app/views.py第行d89f33b18ba2a74cd38499e587cb9dcd为靶机中设置的admin_token值的md5 if('d89f33b18ba2a74cd38499e587cb9dcd'==hl.hexdigest()): 运行 python3 manage.py init python3 manage.py manage.py runserver --insecure 靶机 安装所需环境 靶机:python+requests 修改send_flag.py参数,并将其放入靶机,设权限700。 靶机 sudo python send_flag.py。 靶机生成flag脚本,send_flag.py import requests import time import random import string import hashlib token='woshiwuxudong' # 红队 baji='311F8A54SV9K6B5FF4EAB20536' def getFlag(): #return ''.join(random.sample(string.ascii_letters + string.digits, 48)) m = hashlib.md5(''.join(random.sample(string.ascii_letters + string.digits, 48)).encode(encoding="utf-8")).hexdigest() return m while(1): f=open('/flag','w') flag=getFlag() f.write(flag) data={ 'flag':flag, 'token':token, 'baji':baji, } r=requests.post('http://127.0.0.1/caipanflag/',data=data) print(r.text) f.close() time.sleep(300) 重要须知 更新作者基础上: 1.增加flag验证一次性失效性,使得每个用户都并且仅可以提交一次flag 2.增加排名情况 3.flag改为MD5 4.增加丢失flag一轮扣100分
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值