AWD模式&准备&攻防&监控&批量

AWD模式&准备&攻防&监控&批量
Yatming的博客AWD 常见比赛规则说明
- Attack With Defence,简而言之就是你既是一个 hacker,又是一个 manager。
- 比赛形式:一般就是一个 ssh 对应一个 web 服务,然后 flag 五分钟一轮,各队一般都有自己的初始 分数,flag 被拿会被拿走 flag 的队伍均分,主办方会对每个队伍的服务进行 check,check 不过就扣分,扣除的分值由服务 check 正常的队伍均分。
- 其中一半比赛以 WEB 居多,可能会涉及内网安全,攻击和防御大部分为前期培训内容
前期准备
- 队伍分工明确
- 脚本工具环境完整
- 漏洞 POC/EXP 库完整
- 安全防御 WAF 及批量脚本完整
必备操作
- 备份网站文件
- 修改数据库默认密码
- 修改网页登陆端一切弱密码
- 查看是否留有后门账户
- 关闭不必要端口,如远程登陆端口
- 使用命令匹配一句话特性
- 关注是否运行了“特殊”进程
- 权限高可以设置防火墙或者禁止他人修改本目录
AWD环境搭建
搭建教程:https://blog.csdn.net/weixin_53562844/article/details/125230625
查看docker版本:docker -v
能有版本说明,docker没有问题
git clone https://github.com/zhl2008/awd-platform
项目的目录情况:
下载镜像文件
docker pull zhl2008/web_14.04
更改镜像名称
docker tag zhl2008/web_14.04 web_14.04
这项目自带计分板,我这里用夜莫离大佬做的页面
1 | 链接:https://pan.baidu.com/s/1xF9uZpKUZTZt_OOfpoOrOw |
计分板文件拷贝至awd-platform下的flag_server文件夹下。
要注意将文件score.txt
与result.txt
文件权限调至777,这样才能刷新出分值。
记分板里面的index.php
文件需要将IP换成自己虚拟机的IP
启动比赛
进入awd项目
1 | cd awd-platform |
创建队伍(需要用Python2进行运行)
1 | python2 batch.py web_yunnan_simple 3 |
3个队伍,赛题是web_yunnan_simple
创建好队伍后就可以开始比赛了,输入命令启动比赛
1 | python2 start.py ./ 3 |
启动check
1 | docker attach check_server |
队伍登录用的密码在项目的根目录的pass.txt
—flag在根目录下,而需要维护的网站目录为app
结束比赛
1 | python stop_clean.py |
访问靶机站点
1 | http://192.168.70.128:8801/ |
提交flag为自己的队伍加分
加分的方法是访问一个为地址并且以get的形式上交flag
http://主机IP地址:8080/flag_file.php?token=teamx&flag=xxxx (x为队伍号)
1 | http://192.168.70.128:8080/flag_file.php?token=team2&flag=d3bf2d97353ed4a9dcf9511600e3d968 |
根目录下:
远程连接:
连接的端口是220x
查看攻击情况
1 | http://192.168.70.128:8080/result.txt |
应为刚刚用team2提交flag,这里team2扣分比较少
防守-部署 WAF-实现第一时间拦截部分攻击-升级后续版
最快第一时间操作,此类技术核心准备为各个环境的 WAF 部署(源码语言,比赛规则)
线下AWD平台搭建以及一些相关问题解决
https://www.cnblogs.com/pureqh/p/10869327.html
脚本型waf下载(将一些敏感的关键字的请求进行过滤):
1 | https://github.com/yemoli/prepare-for-awd |
将waf.php上传到app目录,然后修改数据库配置文件(由于很多页面都包含数据库配置文件,数据库配置文件包含waf,相当于网站文件都包含了waf.php)
缺点:只能是php文件才能安装这个waf脚本
防守-扫描后门-实现第一时间利用预留后门攻击-升级脚本版
最快第一时间操作,此类技术核心在于扫描源码中预留或隐藏后门(源码语言)
在线查杀:
1 | http://tools.bugscaner.com/killwebshell/ |
github项目:
1 | https://github.com/jvoisin/php-malware-finder |
河马:https://www.shellpub.com/
D盾:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
真实的比赛环境是离线的,火绒,腾讯管家,360之类的
防守-代码审计-实现第一时间找出源码中安全漏洞-升级漏洞库版
最快第一时间操作,简要分析可能存在的安全问题,配合流量监控及代码审计后续操作(框架及非框架,源码语言,漏洞库等)进行漏洞判定
- 推荐2款工具,尽快审计源码:Seay源代码审计系统(缺点只能支持php)、Fortify。
防守-文件监控-实现第一时间监控当前目录文件操作-升级流量监控
最快第一时间操作,在防守攻击时,实时监控当前目录文件上传删除等操作,有效防止恶意删除、上传后门等,后续可配合流量操作行为监控找出更多漏洞
下载:https://pan.baidu.com/s/1qR0Mb2ZdToQ7A1khqbiHuQ 提取码:xiao
一直报错 ….
这个脚本的目的是:解决对方文件上传问题和删除文件扣分问题
但是有些的攻击并不需要靠webshell,比如说任意命令执行,同样可以删除文件,和读取文件
攻击-批量Flag-实现第一时间利用脚本批量 Flag 得分-升级模版不死马
攻击第一时间操作,写好批量获取 Flag 脚本后,预定 Flag 更新时间,实现自动获取及提交,升级后门写入及不死马等操作,实现权限维持实时获取得分
- 假设分析脚本,发现一个后门,针对这个后门,可以批量写脚本。
根据footer.php脚本的命令执行漏洞构造python脚本
1 | import requests |
这个靶场有点问题,只要一直提交flag就会一直得到分数,上面有一篇文章是关于这个脚本怎么修改的