AWD
AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等),利用漏洞攻击其他队伍可以进行得分,加固时间段可自行发现漏洞对服务器进行加固,避免被其他队伍攻击失分。
1.一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下);
2.一般每个队伍会给一个低权限用户,非root权限;
3.各队一般都有一个初始分数;
4.flag一旦被其他队伍拿走,该队扣除一定积分;
5.得到flag的队伍加分;
6.flag在主办方的设定下每隔一定时间刷新一轮(大概是10分钟);
7.主办方会对每个队伍的服务进行check,服务器宕机扣除本轮flag分数,扣除的分值由服务check正常的队伍均分。
准备时间
一般AWD会有30分钟准备时间
登录
SSH登录
命令格式为: ssh -p 指定端口号 用户名@ip
使用Finalshell或者Xshell等图形化服务器管理软件
密钥登录
sftp -i id_rsa ctf@192.168.182.130
修改密码
官方在给出服务器密码时,很有可能是默认的,那就需要赶快修改自己的密码,但一般主办方给的是随机密码。
如果发现每个队伍的SSH账号密码都是一样的,需要立即修改口令,如果被其他队伍改了那就gg了,同时要准备好批量脚本,一旦是默认密码,可以直接利用。
ssh修改密码 (passwd)
mysql修改密码
方法一: show databases; use mysql; set password for root@localhost = password('123');
方法二:update user set password = PASSWORD('需要更换的密码') where user='root'; flush privileges; show tables;
Web后台很有可能存在弱口令,需要立即修改,也可以修改其他队伍的后台口令,为本队所用,说不定可以利用后台getshell。
备份源码 比赛开始后第一时间备份服务器中web目录下的文件(/var/www/html),备份的目的在于万一对方利用漏洞进入你的靶机将你的WWW下的目录给删除了,可以及时恢复,如果你没有备份就相当于宕机了。
目录打包
2. 数据库备份
- 备份指定的多个数据库
mysqldump -uroot -proot --databases DB1 DB2 > /tmp/db.sql
无 lock tables 权限的解决方法
mysqldump -uroot -proot --all-databases --skip-lock-tables > /tmp/db.sql
- 恢复备份(在 MySQL 终端下执行)
source FILE_PATH3.下载到本地
scp -P ssh_port user@host_ip:/tmp/bak.sql local_file防御思路
在准备时间,把打包好的源码解压到本地,使用漏洞扫描器(D盾,河马等)进行扫描,查看是否有后门
可以使用 seay源码审计系统进行代码审计
我们可以对自己的靶机进行端口扫描
以下是一些服务端口的漏洞:
22:ssh弱口令
873:未授权访问漏洞
3306:mysql弱口令
6379:redis未授权访问漏洞
waf的作用: 最重要是分析流量,别人攻击我们的时候,我们可以看到别人的攻击方式。这样的话即使我们找 不到攻击点,非常苦恼的时候,我们就可以分析流量,使用别人的攻击方式。 可以直接进行防御,类似于一台防火墙(一般的比赛是不允许使用的,毕竟比赛时间短,就根本绕不过去waf,那比赛就没意思了)
有些比赛是不允许上通用waf的,check机制可能会check到waf过滤的参数,导致宕机,waf部署需要谨慎,还需要注意的是:上完waf检查服务是否可用,部分检查允许使用部分小的waf,会检查页面完整性、服务完整性。
常用的waf使用方法,是用你要保护的文件去包含这个waf.php。比如说,你要保护select.php,那么你就在select.php里面写上一行include './waf.php'或者 require_once('waf.php'); 如果你要保护所有文件,那么就在config这种配置文件里包含waf,因为这种config的文件,一般会被大部分功能页面调用
)AWD_PHP_WAF 项目地址:https://github.com/NonupleBroken/AWD_PHP_WAF
)awd-watchbird 这是个通防waf,支持流量转发和替换flag 项目地址:GitHub - leohearts/awd-watchbird: A powerful PHP WAF for AWD
流量监控 即使不能上waf,外面也可以准备一个流量监控脚本,来帮助我们进行流量分析,获取对方的攻击流量,我们也能以同样的方式去攻击其余队伍。
清除对方的攻击 ps aux查看进程,查看是否有异常的进程,不清楚什么是异常的进程,可以在开始时查看一下并记录下来,被攻击时,对照着记录,清理其余进程。 kill -9 pid
攻击思路
主机发现 准备好扫描一个网段的脚本,靶机一般都在同一个局域网
后门利用 我们在准备时期扫到的后门,可以尝试利用。 如果连接成功,可以先不急着提交flag,尝试进行权限维持,写入不死马,这样我们就能一直拿他flag。
AWD一般使用CMS,尽量多收集一些CMS和对应的POC
攻击web服务,访问对方的网站,尝试各种攻击手段
最后:
保持良好的心态,不到最后一刻都有翻盘的可能
找出漏洞拿到shell,权限维持后,尽量把这个洞给被控机修了,以免被别人拿到shell
不仅要保证自己能拿到shell,还有保证别人拿不到shell
拿shell前先打一波流量,混淆视听
保证自己的网站上没有d盾可以扫出来的后门
提高python脚本编写能力
webscan --url http://192-168-1-251.pvp5796.bugku.cn/ --html-output single-url1.html