内容简介:AWD(Attack With Defense,攻防兼备)模式是一个非常有意思的模式,你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。没接触过的同学第一次玩这种模式时,很可能都是一脸懵逼,最近我也打了一次小型AWD,借此来介绍一下一般的 AWD 比赛流程和所需准备的地方。由于我负责 Web 比较多,因此这篇文章不会涉及到二进制方面,主要从 Web 方向介绍。
前言
AWD(Attack With Defense,攻防兼备)模式是一个非常有意思的模式,你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。
没接触过的同学第一次玩这种模式时,很可能都是一脸懵逼,最近我也打了一次小型AWD,借此来介绍一下一般的 AWD 比赛流程和所需准备的地方。由于我负责 Web 比较多,因此这篇文章不会涉及到二进制方面,主要从 Web 方向介绍。
AWD流程
1. 出题方会给每一支队伍部署同样环境的主机,主机有一台或者多台。 2. 拿到机器后每个队伍会有一定的加固时间或没有加固时间,这个视规则而定。 3. 每个服务、数据库、主机上都会可能存在 flag 字段,并且会定时刷新。通过攻击拿到 flag 后需要提交到裁判机进行得分,一般会提供指定的提交接口。下一轮刷新后,如果还存在该漏洞,可以继续利用漏洞获取 flag 进行得分。
通常来说,如果攻防赛时间比较短的话,一般只会考核 Web 、数据库的渗透、已有漏洞的利用;如果时间较长,很可能还需要做内网渗透,由于这块比较深入,这篇文章暂时不讲,(因为我自己也不太会。
一般一个队伍由三人组成。负责两个方面:一方面负责防守加固、做基线、加WAF、流量回放等等。一方面负责源码审计、写攻击脚本、维持权限、持续渗透,具体怎么安排都视三人能力而定。
攻击流程
在 AWD 中,Web 攻击流程一般分为信息收集、攻击端口、攻击Web服务、维持权限四步,只要能快速得分,也不一定按照这四步来。
信息收集
第一步,探测主机。 用 Nmap 或者 HTTPScan等工具,先扫描主办方给的内网存活主机,弄明白网络拓扑。如果主办方给了主机范围的话就更加省事儿了。
第二步,探测端口。 因为主办方给的机器都是一样的,所以直接看 自己 开了什么端口就行。如果不一样的话,使用 Nmap 进行常见端口扫描,先攻击常见端口,再放后台进行全端口的扫描,发现新端口再加入到攻击队列中。
第三步,探测端口服务。 端口服务一般用 Nmap 就能扫到,并且可以用 Nmap 的脚本扫一下漏洞,但是需要注意 Nmap 的相关参数,这要根据情况灵活运用。
简单的信息收集到此完成,除了 Nmap 外可以使用自己熟悉的工具,比如说 msf 啥的,方便后续渗透。
端口攻击
由于 AWD 需要的就是手快,端口一般也会有弱口令的情况存在,比如常见的 22、3389、1443、3306 等主机登陆、数据库端口。
我打过的一次省赛中,就遇到了这种情况。主办方只给队伍机器的 IP,给定用户名,需要自行爆破进入机器,并修改密码。如果这个时候你的手慢,爆破脚本没准备好,你的机器就会沦入别人之手。当时我们就是手慢了,只能眼睁睁看着别人拿到了我们的机器,一轮轮掉分了……
Web 攻击
Web 方面的语言多为 PHP,小部分为 Java 和 Python。这里的 Web 环境分两种情况,一种是已有漏洞的框架,一种是出题人写的框架。
如果是已有漏洞的框架,通常会比较明显。比如说 Struts 2 各种漏洞等等,用 工具 扫就可以扫出来。这个需要准备得比较充分,在电脑中备好 EXP 库、漏洞库和各种扫描工具库,以便能够快速利用比较明显的漏洞。总之手要 快 !
如果是出题人出的框架,常用并且简单有效的做法是把整站源码下载下来,直接用工具审计。以 PHP 举例,一般的流程是先D盾查杀,发现有带有预留后门或者 Webshell 马上报给防守队友进行加固。
把后门的问题搞定、防止别人快速拿分后,其次才是源码审计,发现问题点后迅速验证,报给防守队友,并且开始写攻击脚本。以 PHP 举例,一般是使用 Seay 等源码审计工具,审核出比较明显的漏洞。
完成了工具扫描后,开始常规的渗透测试,比如说文件上传、SQL 注入等等,看是否能绕过,找到一个点马上写利用脚本。
维持权限
一顿操作猛如虎,拿到 Webshell ,之后干啥呢?
当然是要维持权限啦!简单的 Webshell 一眼就看出来了好伐,在 AWD 中优先考虑种不死马、反弹 shell,用一般木马的留后门方式维持权限,以便后续刷 flag,再考虑提升权限。有的同学不知道啥叫“不死马”,解释一下,“不死马”的主要功能是执行后会不断在该路径生成一个 shell 文件,用于菜刀等工具进行连接,是一种维持权限的方法。
小 Trick : 使用 `find / -name *flag*` 或 `grep -rn ”flag” *` 类似的语句可以快速发现 flag 所在的地方,方便后续拿分。
防守流程
防守队友做的事情简单来说,按优先级有以下几个:
1. 重中之重: 备份 网站源码和数据库。这个作用有二,一是以防自己魔改网站源码或数据库后无法恢复,二是裁判一般会定时 Check 服务是否 正常 ,如果不正常会进行扣分,因此备份也可以防对手入侵主机删源码后快速恢复服务。
2. 系统安全性 检查 。就是不该开的端口 3306 有没有开启、有没有限制 SSH 登陆、SSH密码 修改、MySQL 是否为默认密码等等,这里可以用脚本刷一遍。
3. 部署 WAF 。用自己提前准备好的 WAF,使用脚本进行快速部署,但是要注意验证会不会部署完后服务不可用。
4. 修改 权限 。比如说 MySQL 用户读表权限,上传目录是否可执行的权限等等。
5. 部署 文件监控 脚本。监控可读写权限的目录是否新增、删除文件并及时提醒。这里说下,如果被种了不死马的话通常有以下几种克制方法:
强行 kill 掉进程后重启服务
建立一个和不死马相同名字的文件或者目录
写脚本不断删除文件
不断写入一个和不死马同名的文件
6. 部署 流量监控 脚本或开启服务器日志记录。目的主要是为了进行流量回放,看其它大佬如何用我们没发现的漏洞来打我们的机子,抓取到之后把看不懂的流量直接回放到别的机子去,这里还得提到,我们自己在攻击的时候,也要试着混淆一下自己的攻击流量,不能轻易被别人利用。
总结
说了这么多,总结一下。AWD 攻防赛前需要准备的有:
1. 各种软件包,如 Python 、CURL 等等,以备机器上没有而陷入尴尬 2. 一大堆 EXP 库和漏洞库,可以放个乌云的虚拟机备用 3. 加固、基线检查脚本 4. WAF 代码和部署脚本 5. AWD 专用的批量拿 Webshell、批量交 flag、批量维持权限的基本代码或小框架
希望自己以后有时间能整理一个脚本集,整合到一个框架,这样打 AWD 会很舒服~
另外,我在写文章和准备 AWD 时搜集的一些资源如下:
Github资源:
- (:star:235) AWD攻防赛脚本集合: < https://github.com/admintony/Prepare-for-AWD >
- (:star:124) Attack-Defense-Framework: < https://github.com/SniperOJ/Attack-Defense-Framework/tree/v2 >
- (:star:99) AWD攻防赛webshell批量利用框架: < https://github.com/Ares-X/AWD-Predator-Framework >
- (:star:28) awd-frame: < https://github.com/xnianq/awd-frame >
- (:star:4) WEB-AWD-Framework:< https://github.com/dahua966/WEB-AWD-Framework >
- (:star:0) AWD-helper: < https://github.com/sarleon/AWD-helper >
AWD经验:
- CTF线下赛AWD模式下的生存技巧: < https://www.anquanke.com/post/id/84675 >
- CTF线下赛AWD套路小结: < https://xz.aliyun.com/t/25 >
- AWD混战攻略: < https://www.jianshu.com/p/d21b7e1bffaf >
- CTF线下AWD攻防模式的准备工作及起手式: < https://blog.csdn.net/like98k/article/details/80261603 >
- 2017强网杯线下AWD攻防总结(适合新手): < https://www.t00ls.net/articles-42278.html >
- AWD攻防线下生存之道: [ http://47.95.201.153/blog/AWD 攻防线下生存之道.html]( http://47.95.201.153/blog/AWD%E6%94%BB%E9%98%B2%E7%BA%BF%E4%B8%8B%E7%94%9F%E5%AD%98%E4%B9%8B%E9%81%93.html )
- CTF AWD模式攻防Note: < https://www.cnblogs.com/nul1/p/9576386.html >
权限维持:
- 不死马的删除: < https://yq.aliyun.com/zt/325638 >
- awd攻防之kill不死马: < https://www.jianshu.com/p/ba79686987da >
- python中的后渗透|也可用于AWD攻防–shell管理: < https://www.jianshu.com/p/2e8e7330b73e >
- 从0到1掌握AWD攻防之RSA必杀: < https://www.360zhijia.com/anquan/456324.html >
- 资深大牛教你如何web端权限维持(内附具体步骤): [ http://www.sohu.com/a/127074604 \_472906]( http://www.sohu.com/a/127074604_472906 )
*本文作者:LiN3ver5ec,本文属FreeBuf原创奖励计划,未经许可禁止转载。
以上所述就是小编给大家介绍的《聊聊AWD攻防赛流程及准备经验》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Seasoned Schemer
Daniel P. Friedman、Matthias Felleisen / The MIT Press / 1995-12-21 / USD 38.00
drawings by Duane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both The Little Schemer (form......一起来看看 《The Seasoned Schemer》 这本书的介绍吧!