awd的批量脚本 pwn_AWD攻防之web入门篇
前言
AWD(Attack With Defense,攻防兼备)模式是一个非常有意思的模式,你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。
常见操作
1.
修改ssh密码
当我们拿到服务器后,需要第一时间修改密码防止被他人窃用
2. 1
修改数据库密码及备份数据库(以 mysql为例)
备份指定的多个数据库
比赛前一定要快速修改密码和备份,否则密码被别人更改需要重置环境就尴尬了,修改数据库密码后注意修改源码配置文件,避免服务崩溃。同时赛前也可以准备些例如 phpmyadmin 的批量爆破和改密的脚本。
3.
源码备份
使用 scp 命令或者 winscp,mobaxterm 等工具下载打包后的源码
4.
上 WAF
备份好源码之后要做的就是监控访问,截取攻击向量,做好流量重放的准备。一般的WAF只需要做到记录访问的基本信息如时间,ip,get,post,cookie,UA即可。也可以自行编写通防 WAF,功能如关键字检测,截取上传文件内容等。但一般通防 WAF 会影响主办方 check,使用需谨慎,同时注意上 WAF 崩溃的问题。可以使用 bash 命令在每一个 php 文件前面加上 require_once 包含 WAF 文件。
5.
文件监控
可以使用 bash 命令自行查找出例如10分钟内修改过的 php 文件,文件相关操作都清晰明了。
使用 touch 命令修改文件时间戳可以一定程度防范对文件的检测。
6.
权限维持—不死马
不死马也称内存马,删除掉木马之后,由于操作存于内存当中,还是会不断地生成木马,达到权限维持的目的。
6.1. 不死马使用
常规不死马,先删除自身,不断生成隐藏的.index.php 文件
添加密码 pass 防止别人借刀杀人,我们平时也可以编写自己的木马,别人就算拿到木马也不知道怎么利用
6.2. 不死马的克制
6.3 杀掉不死马运行的进程,直接删除脚本没用,因为php执行的时候已经把脚本读进去解释成opcode运行了
ps aux 查看运行的进程
可以使用 kill -9 -1 杀死当前用户所有进程(有权限下慎用),也可以直接 killall apache2 杀掉 apache 所有子进程
6.4 重启 apache,php 等web服务(一般不会有权限)
6.5 用一个脚本竞争写入,脚本同不死马,usleep要低于对方不死马设置的值
6.6 创建一个和不死马生成的马一样名字的文件夹,测试了下需要先删除再创建文件夹
7.
自动提交
比赛中提交 flag 一般会带上队伍 token 和 flag,格式如下:
flag.php?token=teamtoken&flag=this_is_flag
获取 flag 一般有两种方式:
1. flag在根目录,直接 cat 读取 flag
2. 在对方机器请求指定地址(curl)获取 flag
flag 每几分钟更换一轮,手动提交显然是不太可能的,需要提前准备自动获取,提交 flag 的脚本,并根据实际情况进行修改
以下附上大致流程图: