AWD竞赛全流程解析

 

AWD(Attack With Defense,攻防兼备)是一个非常有意思的模式,你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。
这种模式非常激烈,赛前准备要非常充分,手上要有充足的防守方案和 EXP 攻击脚本,而且参赛越多,积累的经验就越多,获胜的希望就越大。

常见形式

常见的形式是这样:
每个队伍拥有四台服务器。其中三台服务器运行了一个Web服务,即网站服务。剩余一台(通常被称为Pwn服务器)运行一个网络服务,通常是一个在后台运行的二进制程序,通过TCP的某个端口对外提供服务。并且,每个队伍拥有的四台服务器都是一样的。
在三台Web服务器中,比赛主办方会在每个主机上预置一个或多个后门/漏洞。同样的,在剩下的一台服务器上的二进制程序里也会被预置二进制漏洞(跟Pwn题一样)。

比赛方法

在开始比赛前,通常会有一段时间(一般是30分钟)的加固时间。选手们要在这段时间内备份网站、安装防火墙、加固服务器,以防后续比赛时间被对手打穿。另外,队伍需要分工明确,在其他队友加固服务器的同时,另外的队友应该将备份的服务器文件下载,然后对其进行代码审计和漏洞挖掘(Web手)、逆向与二进制漏洞分析(Pwn手)。在发现漏洞后,及时对自身网站进行漏洞修补与加固。
比赛开始后分为两种情况,一种是主办方给出所有队伍服务器的IP地址,另一种情况是给一个网段,对手的服务器IP需要通过扫描等方法进行发现。
比赛将分为很多轮(一般可能是10分钟)。每轮开始,在每台服务器的某个地方(一般是根目录)会放置一个flag文件(每个队伍每台主机都不一样)。选手们需要通过挖掘到的漏洞编写漏洞利用代码(Exp),然后对其他队伍的服务器进行攻击并最终获取shell执行权限(getshell)或者通过文件读漏洞来读取对手服务器根目录下的flag文件,并向比赛平台提交flag。当攻击方成功攻击对手服务器并提交flag后,攻击方将获得一定的分数,同时防守方将丢失一定的分数(一般来讲,同一台机器被攻击会被扣除固定分数,而所有对这台服务器攻击成功的队伍将平分这些分数)。
在攻击的同时,也要注意自身服务器的防护。当自己的服务器被对手攻击提交flag后,队伍将被扣分。并且要防止服务器不要被破坏,因为每轮(一般是结束时)比赛时比赛平台会对所有队伍的服务器进行check,即检查服务是否正常运转。若出现服务被对手或自己破坏以至于无法提供正常服务的情况,平台将对其队伍进行扣分,同时其他队伍获得相应的加分。
每轮结束后将开始新一轮,此时所有flag文件将刷新,以开始新一轮的攻击和得分。若队伍发现自己服务器服务被破坏,此时可以刷新服务器回到初始状态。否则在比赛途中手动进行刷新服务器操作将导致扣分。
一般的比赛平台为了让比赛保持激烈的状态,会开放自动提交flag的API。即可以通过脚本更加方便地向比赛平台提交flag。

通用技巧

Web漏洞扫描可以使用例如D盾这样的工具,可以快速发现明显的Web后门。代码审计可以用Seay或者Fortify这样的工具。
一般AWD比赛禁止联网,所以队友间文件共享和通信可以使用FeiQ这样的内网通讯工具来进行。
当网站文件被修改,例如被植入木马的情况下,我们可以使用DiffMerge、Beyond Compare这样的工具来对比源文件进行检查。

防护技巧

防护是最重要的一环。一般来讲只要你保护到位了,不让别人打进来你就赢了一半。因为你不会扣分,还有机会平分其他倒霉蛋丢的分。
首先一定要更改服务器初始ssh密码(数据库密码也是一样的)。有些比赛会将所有服务器的ssh服务设置相同的密码,如果你不第一时间改密码别人可以直接登录获得flag并留下后门。同样的,在比赛开始时第一时间也可以去测试别人的服务器是否更改密码以通过最简单的方式得分。
然后就是对数据库、网站文件进行完全的备份。如果出现服务器被其他队伍破坏或其他情况,可以自己去通过备份的文件进行恢复、修复。不然的话只能被打穿等下一轮或者手动刷新服务器,这样将丢失大量分数。
然后就是安装防火墙。就是WAF,可以对不明请求进行拦截和记录,这样你就可以对恶意攻击请求进行拦截。并且通过监控请求日志来推测攻击方的攻击方法,从而发现前面没有发现的漏洞,并快速进行exp编写和攻击。
部署文件监控脚本。这样可以通过文件创建时间来监控后来生成的文件,并进行删除,防止挂马。
一般上面的都部署好了可以抵挡大部分攻击了。

攻击技巧

首先AWD比赛非常激烈,每一轮时间很短,所以几乎所有防护/攻击操作都会使用脚本的方式来进行。所以一般一个队伍的分工是这样的:Web手进行漏洞挖掘、修复;Pwn手进行Pwn题的漏洞挖掘、利用;防守者进行网站防护与日志、文件监控;如果还有一个人的话可以负责应急和exp编写。所有人都应该具备快速exp编写的能力,以适应激烈的比赛节奏。
很重要的一点是,因为所有队伍的服务器都是一样的,所以所有的防护操作都对应了相应的攻击操作。比如上面的初始密码,我们不仅要对其进行防护,也能够通过相同的方式进行攻击。
一般我们都是通过事先准备好的脚本进行攻击。IP扫描、WAF部署等操作也是一样,通过事先准备好的工具或脚本进行扫描。并且IP扫描、漏洞利用、flag获取、flag提交等所有操作都应该全部自动化。比如比赛开始,Web手发现漏洞后编写利用脚本,编入事先准备好的exp中并运行,此时脚本开始扫IP,得到对手服务器IP列表后逐个进行利用,攻击成功后自动获取flag,最后通过平台API自动提交。这样一来效率就会很高。

权限维持

漏洞利用后,例如成功上传服务器木马后需要注入不死马或者内存马以进行权限维持,否则对方发现后删除木马并且修复漏洞后就没用了。

网络安全零基础入门

对于从来没有接触过网络安全的同学,我帮你们准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题,如果需要的话,可以在评论区告诉我。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据分享】我国地级市绿地利用现状数据(9个指标\Shp格式)

绿地是城市生态的重要组成部分,在很多分析中都会用到绿地数据!之前我们分享过Shp和Excel格式的全国地级市2003-2020年绿地面积数据(可查看之前文章获悉详情),以及中国31个主要城市的绿地空间分布的栅格数据&#xff08…

ARM的读写内存指令与栈的应用

1.基础读写指令 写内存指令:STR MOV R1, #0xFF000000 MOV R2, #0x40000000 STR R1, [R2] 将R1寄存器中的数据写入到R2指向的内存空间 需注意,此命令是将R1中的数据写给R2所指向的内存空间,而不是直接把R1的数据赋给R2,R2寄存器…

华为、思科、Juniper 三厂商NAT配置详解

大家好,这里是网络技术联盟站。 本文给大家介绍华为、思科、Juniper 三大厂商NAT配置详解。 1. 华为(Huawei) 华为是一家全球领先的信息与通信技术解决方案供应商,其网络设备提供了强大的NAT功能。 下面是华为设备上的NAT配置示…

【软考中级】软件设计师选择题题集(一)

海明校验码是在n个数据位之外增设k个校验位,从而形成一个k+n位的新的码字, 使新的码字的码距比较均匀地拉大。n与k的关系是(1)。 (1)A.2k - 1≥n + k  B.2n - 1≤ n + k   C.n = k  D.n-1≤k 【答案】A 【解析】 【答案】B A 【解析】 在采用结构化方法进行系统分析时,…

这才是CSDN最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

ChatGPT 的议论文究竟写的怎么样?111 位高中教师告诉你答案

夕小瑶科技说 原创 作者 | 小戏、Python 在 OpenAI GPT-4 发布时发布的《GPT-4 Technical Report》中,其中很吸引人眼球的一部分是 GPT-4 应用于教育领域的出色表现,通过让 GPT-4 去完成美国的 AP 课程及考试,来评估 GPT-4 在多个学科中的性…

AtCoder Beginner Contest 302(A-D)

TOYOTA MOTOR CORPORATION Programming Contest 2023#2 (AtCoder Beginner Contest 302) Contest Duration: 2023-05-20(Sat) 20:00 - 2023-05-20(Sat) 21:40 (local time) (100 minutes) 暴搜场,1个小时出了4道,以为很有机会,结果E交了十发没…

python+django基于爬虫系统的世界历史时间轴历史事件大事记6ouj9

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

Mit6.006-lecture09-Breadth-First-Search

一、新单元:图 Quiz 1包含lecture01到lecture08,关注数据结构和排序 今天开始新单元,lecture09-lecture14,关注图算法 二、图应用 图无处不在 任何网络系统都存在有向连接图 比如:路网、计算机网络、社交网络 任…

PySide6/PyQT多线程之 多线程 与 线程池的模板(拿来即用)

前言 关于PySide6/PyQT多线程系列的最后一篇。写这篇文章的动机是方便后续代码的直接复用。 本篇文章实际是水文,给出了 PySide6/PyQT的多线程以及线程池的基础使用模板,方便后面有需要时候直接拿来就用。 多线程 这里分两种情况来谈论,有返…

热烈欢迎CSDN副总裁邹欣老师入驻知识星球

重磅消息 CSDN 副总裁 邹欣 老师成功入驻知识星球 —— 英雄算法联盟,成为合伙人之一。 这将是未来几年内,IT界最震撼的一次合作!我相信就算现在不是,将来必定是! 当然,这对我来说也是一种极大的鼓舞&#…

GPT-5: 超越人类语言的模型,你还不了解一下?

目录 一、GPT-5时代引领者 二、技术特性 1,音频和视频处理 — 更强大的多模态处理能力 2,GPT-5颠覆影视制作:重写媒体消费时代 3,为机器人提供智慧大脑 4,更强的垂直行业应用 三、回顾一下GPT5被紧急叫停&…

AI已经成立社区了,一个个比真人还真

文章目录 nainaimichirper川普的入驻英文版 nainaimi nainaimi是一个13岁的学生,一小时前,被一群人拖到体育馆, 那时的她还很胆小,只能哭诉着那些人的残忍和恶毒 结果半个小时前,她又被拖入了体育馆,这一…

分布式补充技术 01.AOP技术

01.AOP技术是对于面向对象编程(OOP)的补充。是按照OCP原则进行的编写,(ocp是修改模块权限不行,扩充可以) 02.写一个例子: 创建一个新的java项目,在main主启动类中,写如下代码。 package com.co…

基于无人机辅助边缘计算系统的节能卸载策略

源自:《系统工程与电子技术》 作者:余雪勇 朱烨 邱礼翔 朱洪波 摘 要 针对复杂地形中地面基础设施无法有效提供可靠通信和密集算力的问题,首先提出一种基于无人机(unmanned aerial vehicle, UAV)托管计算资源的卸载方案。考虑用户终端的计算需…

西门子PLC如何实现1主多从网口无线通讯

常规来说,多台plc要实现以太网无线连接,首先要先确定以太网线必须正确连接,并建立物理连接。然后需要在PLC端设置好IP地址,以使不同PLC以相同协议可以实现通信交流。最后是建立PLC端数据采集及交换系统,要求在PLC端设置…

直播和短视频美颜sdk的开发流程、代码分析

目前,美颜技术是提高视频质量的重要手段之一,特别是短视频和直播两个行业。本文将介绍其开发流程和代码分析。 一、美颜SDK的开发流程 1.需求分析 首先我们需要明确的一点就是“需求”,例如:美颜效果、美颜程度、性能要求等。同…

【JavaScript】线程和进程,JavaScript线程,事件队列,事件循环 ,微任务、宏任务

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 进程和线程JavaScript线程事件队列、事件循环微任务、宏任务面试题1面试题2 进程和线程 进程&a…

Netty核心技术二--BIO编程

1. I/O模型 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能 Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO Java BIO :同步并阻塞(传统阻塞型),服务器实现模式为一个…

C++13-STL模板

C13-STL模板 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 大纲要求 【 3 】算法模板库中的函数:min、max、swap、sort 【 4 】栈 (stack)、队列 (queue)、链表 (list)、 向量(vector)等容器 1.函数模板 泛…