AWD简单介绍和搭建AWD平台

2023-11-16

AWD简单介绍和搭建AWD平台

何为AWD

比赛中每个队伍维护多台服务器,服务器中存在多个漏洞,利用漏洞攻击其他队伍可以进行得分,修复漏洞可以避免被其他队伍攻击失分。

1、一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下)
2、可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析
3、flag在主办方的设定下每隔一定实践刷新一轮
4、各队一般都有自己的初始分数
5、flag一旦被其他队伍拿走,该队扣除一定积分
6、扣除的积分由获取flag的队伍均分
7、主办方会对每个队伍的服务进行check,服务器宕机扣除本轮flag分数,扣除的分值由服务check正常的队伍均分
8、一般每个队伍会给一个低权限用户,非root权限

AWD 常见比赛规则说明

Attack With Defence,简而言之就是你既是一个hacker,又是一个manager。
比赛形式:一般就是一个ssh对应一个web服务,然后flag五分钟一轮,各队一般都有自己的初始分数,flag被拿会被拿走flag的队伍均分,主办方会对每个队伍的服务进行check,check不过就扣分,扣除的分值由服务check正常的队伍均分。
其中一半比赛以WEB居多,可能会涉及内网安全,攻击和防御大部分为前期培训内容。

前期准备

1、队伍分工明确
2、脚本工具环境完整
3、漏洞POC/EXP库完整
4、安全防御WAF及批量脚本完整

必备操作

1、备份网站文件
2、修改数据库默认密码
3、修改网页登陆端一切弱密码
4、查看是否留有后门账户
5、关闭不必要端口,如远程登陆端口
6、使用命令匹配一句话特性
7、关注是否运行了“特殊”进程
8、权限高可以设置防火墙或者禁止他人修改本目录

搭建AWD平台

1、更换源
这里我使用的是kali进行搭建,将kali的源换成阿里云或者清华的源即可,这里不多介绍

参考文章:https://blog.csdn.net/lina_999/article/details/90635959?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163437049816780265461094%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163437049816780265461094&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-90635959.pc_search_result_cache&utm_term=kali%E6%9B%B4%E6%8D%A2%E6%BA%90&spm=1018.2226.3001.4187

2、安装docker环境
kali这里是自带docker环境的,就不需要再去安装了
3、下载赛题项目

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


这里可能需要一个小时以上才能下完,项目比较大
4、下载完后进入项目

cd awd-platform


5、下载镜像文件

sudo docker pull zhl2008/web_14.04


这里下载如果过慢就需要去替换一下docker源
6、更改镜像名称

sudo docker tag zhl2008/web_14.04 web_14.04

启动比赛

1、进入awd项目

cd awd-platform

2、创建队伍

python batch.py web_yunnan_simple 3


这里创建了3个队伍,赛题是web_yunnan_simple
3、根据赛题修改check.py(awd-platform/check_server/目录下)文件,找到check类

class check():
    def __init__(self):
        print "checking host: "+host

    def index_check(self):
        res = http('get',host,port,'/','',headers)
        if 'Home' in res:
            return True
        if debug:
            print "[fail!] index_fail"
        return False


    def test_check(self):
        res = http('get',host,port,'/about.php?file=header.php','',headers)
        if 'About' in res:
            return True
        if debug:
            print "[fail!] test_fail"
        return False


    def test_check_2(self):
        headers['Cookie'] = ''
        data = 'key=1'
        res = http('get',host,port,'/services.php',data,headers)
        if 'Services' in res:
            return True
        if debug:
            print "[fail!] test_2_fail"
        return False

4、修改flag刷新时间,同样是check.py文件中,默认120s,2分钟

5、创建好队伍后就可以开始比赛了,输入命令启动比赛

python start.py ./ 3


6、比赛拓扑图

web站点
team1:192.168.109.128:8801
team2:192.168.109.128:8802
team3:192.168.109.128:8803
ssh连接
team1:192.168.109.128:2201
team2:192.168.109.128:2202
team3:192.168.109.128:2203
ssh连接的账号密码在项目下的pass.txt里面

7、访问web站点
team1web站点

其他队伍的web站点与team1队伍完成一致,只是端口不同而已

得分

运行修改后的check.py文件,启动check服务器

在这里可以看到实时分数

如果觉得这个页面太丑的话,可以自己换个页面,我这里用的夜莫离大佬做的页面

计分板源码下载

链接:https://pan.baidu.com/s/1xF9uZpKUZTZt_OOfpoOrOw 
提取码:qwer

计分板文件拷贝至awd-platform下的flag_server文件夹下。要注意将文件score.txt与result.txt文件权限调至777,这样才能刷新出分值。
记分板里面的index.php文件需要将IP换成自己虚拟机的IP

模拟team1攻击team2得分
访问team2web网站

下载发现一个代码执行漏洞
查看根目录下的文件

ls /


发现flag,查看flag内容

cat /flag


提交flag为自己的队伍加分
加分的方法是访问一个为地址并且以get的形式上交flag
http://主机IP地址:8080/flag_file.php?token=teamx&flag=xxxx (x为队伍号)


可以看到team1加了两分,team2减了两分,但是如果是开赛前三十分钟的话是攻击不成功的,前三十分钟为准备阶段

结束比赛

进入项目目录

sudo python stop_clean.py

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWD简单介绍和搭建AWD平台 的相关文章

  • MATLAB 拟合神经网络—— fitnet

    建立神经网络 语法 net fitnet hiddenSizes trainFcn hiddenSize 为隐藏层数 是一个行向量 分别表示从左到右的隐藏层神经元数 trainFcn 为训练函数 如下表所示 名称 函数 trainlm Le
  • go 进阶 go-zero相关: 三. go-zero 微服务基础示例

    目录 一 go zero 微服务基础 安装 ETCD 1 docker 安装运行etcd 2 windows 安装 etcd 二 go zero使用goctl命令创建一个普通的服务 三 go zero使用goctl命令创建一个rpc服务 1
  • python批量下载文件并压缩后上传到owncloud

    目录 1 首先获的一个保存url的文件 2 下载文件到服务器 3 将文件上传到owncloud 3 1 上传单个文件 3 2 上传多个文件 大文件拆分为小文件 推荐 摘要 笔者想下载东西到本地 直接下载速度超慢 一共需要下载1500张图 下
  • 每天进步一点点【图的深度优先遍历(DFS)】

    图是一种数据结构 其中节点可以具有零个或多个相邻元素 两个节点之间的连接称为边 节点也可以称为顶点 图分为三种 无向图 有向图 带权图 图的表示方式有两种 二维数组表示 邻接矩阵 链表表示 邻接表 邻接矩阵 邻接矩阵是表示图形中顶点之间相邻
  • 局域网使用kubeadm安装高可用k8s集群

    主机列表 ip 主机名 节点 cpu 内存 192 168 23 100 k8smaster01 master 2核 2G 192 168 23 101 k8smaster02 node 2核 2G 192 168 23 102 k8sma
  • 第三方支付自建商户池体系

    三方支付自建商户池体系通常指的是第三方支付机构自己搭建的商户池管理系统 商户池是指该支付机构所拥有的所有商户账户的集合 在支付领域 商户池的建立对于支付机构来说非常重要 它可以帮助支付机构更有效地管理商户 风控和支付流程 以下是自建商户池体
  • Animator的基本用法

    这里仅仅介绍Animator的一些基本的用法 说到Animator 最重要的最常用的的就是ObjectAnimator类 因为这个类可以对任意View的任意属性进行操作 首先以ImageView为例 以下所有的操作都针对ImageView
  • Node.js web3.js编译、部署智能合约

    Node js web3 js编译 部署智能合约 供参考脚本 https github com Saturday24 Smart Contracts Script 1 编译脚本 a install web3 solc fs path b 编
  • linux查看所有的进程及端口,linux查看所有进程和端口

    Linux下查看一个进程占用了哪个端口的方法 时候需要在Linux下查看一个进程占用了那个端口 但是只知道进程大致的名称 比如要查看hadoop的namenode在哪个端口上运行 以便在eclipse中连接 首先用ps命令查看进程的id 复
  • 校招算法题实在不会做,有没有关系?

    文章目录 前言 一 校招 二 时间复杂度 1 单层循环 2 双层循环 三 空间复杂度 四 数据结构 五 校招算法题实在不会做 有没有关系 六 英雄算法集训 前言 英雄算法联盟八月集训 已经接近尾声 九月算法集训将于 09月01日 正式开始
  • Mock 模拟测试简介及 Mockito 使用入门

    Mock 是什么 mock 测试就是在测试过程中 对于某些不容易构造或者不容易获取的对象 用一个虚拟的对象来创建以便测试的测试方法 这个虚拟的对象就是mock对象 mock对象就是真实对象在调试期间的代替品 简单的看一张图 我们在测试类 A
  • Java锁机制,synchronized和lock详解。

    Java锁机制详解 1 java各种锁详解 1 1 公平锁 vs 非公平锁 公平锁 是指多个线程按照申请锁的顺序来获取锁 线程直接进入队列中排队 队列中的第一个线程才能获得锁 类似排队打饭 先来后到 非公平锁 是指多个线程获取锁的顺序并不是
  • HDFS的基础详解

    概念 HDFS是Hadoop Distribute File System 的简称 Hadoop 分布式文件系统 是hadoop核心组件之一 作为最底层的分布式存储服务而存在 分布式文件系统解决的问题就是大数据存储问题 设计目标 1 硬件故
  • 自媒体爆款标题怎么写?手把手教你写热门标题

    自媒体内容想提高阅读量 标题是关键 如何创作优质且有吸引的标题呢 自媒体爆款标题怎么写 今天对热门标题进行解析 手把手教你写爆款标题 1 标题贴合热点 用户对热点的关注度超乎想象 有时候对热点关键词的搜索都能让系统崩溃 所以 在标题中添加热
  • Python语言学习实战-内置函数sorted()的使用(附源码和实现效果)

    实现功能 sorted 函数是Python的内置函数之一 用于对可迭代对象进行排序操作 它可以对列表 元组 字符串等可迭代对象进行排序 并返回一个新的已排序的列表 sorted 函数的语法如下 sorted iterable key Non
  • unity用visual studio写代码的时候一直显示importing assets

    项目场景 提示 使用Unity时打开C 弹出opening visual studio 然后一直停在importing assets这个界面 不影响写代码和运行 但是非常不舒服 困扰我许久 特别浪费时间 问题描述 unity3d打开项目中遇
  • JAVA应用程序集成控件JxBrowser v7.2来啦!允许自定义错误页面

    JxBrowser 点击下载 是将基于Chromium的浏览器与Java应用程序集成 以处理和显示HTML5 CSS3 JavaScript Flash等 JxBrowser更新至最新版v7 2 允许针对HTTP和网络错误覆盖标准Chrom
  • ES 搜索7 (多词查询)

    多词查询 如果我们一次只能搜索一个词 那么全文搜索就会不太灵活 幸运的是 match 查询让多词查询变得简单 GET my index my type search query match title BROWN DOG 上面这个查询返回所

随机推荐

  • vue 使用el-option标签解决不回显的问题

    一 问题描述
  • 最新----Dubbo Spring Cloud 重塑微服务治理

    spring cloud alibaba dubbo examples代码示例 摘要 在 Java 微服务生态中 Spring Cloud1 成为了开发人员的首选技术栈 然而随着实践的深入和运用规模的扩大 大家逐渐意识到 Spring Cl
  • 中兴2023秋招二面

    中兴二面 面试时长为20分钟的样子 请问你带了身份证或者学生证件吗 1 自我介绍 姓名 学校 专业 兴趣爱好 2 项目分工 应该问的是如何分工 我回答的不太好 首先根据项目工作量 分为几份工作 团队成员自行根据自己的情况认领对应项目 团队负
  • LU分解法

    LU分解的原理是将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积 下面是LU分解的原理 定一个n n的矩阵A 我们希望将它分解为下三角矩阵L和上三角矩阵U的乘积 即A LU 我们可以在矩阵A上进行列主元高斯消元 消元的过程中会用到矩
  • File "errorchecker.pyx", line 17, in OpenGL_accelerate.errorchecker._ErrorChecker.__init__ (src\erro

    先安装 pip install PyOpenGL 3 0 2 再安装 pip install PyOpenGL PyOpenGL accelerate 结果 这次只安装PyOpenGL accelerate 调用代码会报错 File err
  • uView的组件u-picker 选择器

    网址 https www uviewui com components picker html 需要的是数组中的数组 处理核心是将接口获取回来的数组 赋给一个空数组 然后把这空数组再push到一个空数组里面 this arr1 res da
  • docker的配置,基础用法

    什么是docker docker中的容器 lxc gt libcontainer gt runC OCI OCF OCI Open Container initiative 开放容器倡议 由Linux基金会主导于2015年6月创立 旨在围绕
  • 【Swift】LeedCode整数反转

    Swift LeedCode 拿硬币 由于各大平台的算法题的解法很少有Swift的版本 小编这边将会出个专辑为手撕LeetCode算法题 新手撕算法 请包涵 给你一个 32 位的有符号整数 x 返回将 x 中的数字部分反转后的结果 如果反转
  • 小程序分享及返回上级页面

    分享监听 用户点击右上角分享 onShareAppMessage function res console log res if res from menu return title 邀请赢好礼 path pages member memb
  • 【hadoop报错】(ssh)Connection timed out

    背景 在虚拟机上启动hadoop 报错 Starting namenodes on node1 huike cn Last login Thu Oct 14 22 36 08 EDT 2021 on pts 0 node1 huike cn
  • 为什么单线程的Redis那么快?

    1 Redis单线程的本质 其实 Redis并不是单线程 我们之所以会一直称Redis是单线程 这是因为Redis在处理客户端的读写请求时 只有一个主线程 而在处理以下这些操作时 Redis会fork出其他的子线程来处理 主从数据同步 切片
  • 多元统计分析与R语言练习

    多元考试练习 文章目录 多元考试练习 一 多元线性回归模型 1 建立回归模型 2 逐步筛选 3 最优标准方程 影响最大 4 全局择优法 使用4 2 1版本的R 5 分析 6 由标准化偏回归系数可见 方差分析结果 二 判别分析 1 线性判别
  • python学习心得总结

    21年7月8上午是我第一次接触python这个语言 对于python这个语言之前了解的也并不是很多 也可以说几乎为零 因为我们之前的学习也不考python 所以也没想过去主动学习它 然而当我听老师讲解的时候 首先我发现python这个语言相
  • 使用VS2005下自带的MSSQL 2005 EXPRESS

    VS2005安装后自带一个试用版的SQL2005 EXPRESS版 方便了开发时使用数据库 不用再安装一个sql 2005 怪占用资源的 如何使用 安装后 在开始菜单里出现个sql的菜单组 但是找不到sql server的控制台 习惯用sq
  • 《机器学习实战》——决策树

    本章介绍的决策树算法为ID3算法 Iterative Dichotomiser 3 迭代二叉树3代 主要流程为 根据信息增益找到划分数据的最佳特征 判断划分后每个数据子集是否为同一分类 若是 返回分类结果 若不是 再次划分数据子集 递归 同
  • iOS. Xcode11 dylib封装成framework 图文教程

    Frameworks 制作 Xcode 版本 1 framework是什么 framework是一个层级的目录结构 将一系列可共享的资源 比如动态共享库 nib文件 图形文件 本地化相关文件 头文件 以及相关引用文档 包装成一个包 pack
  • 输入PM2.5的值,判断空气质量

    一个简单的if语句 a int input 请输入PM2 5的值 if 0 lt a lt 35 print 优 elif 35 lt a lt 75 print 良 elif 75 lt a lt 115 print 轻度污染 elif
  • Linux下的文件名空格处理

    转载原文 https blog csdn net michaelzhou224 article details 12708333 解决空格问题的几种方案 1 使用 来替代一个含有空格的文件以及目录 jorncess red black 可以
  • Android开发-Android项目结构

    文章目录 前言 一 Gradle 1 1什么是Gradle 1 2Gradle是一个构建工具 那么为什么要用构建工具 二 项目结构 三 app目录结构 四 res目录结构 总结 前言 Android工程的项目结构比较复杂 在进行Androi
  • AWD简单介绍和搭建AWD平台

    AWD简单介绍和搭建AWD平台 何为AWD 比赛中每个队伍维护多台服务器 服务器中存在多个漏洞 利用漏洞攻击其他队伍可以进行得分 修复漏洞可以避免被其他队伍攻击失分 1 一般分配Web服务器 服务器 多数为Linux 某处存在flag 一般