最近打了一次线上AWD,算是第一次正式打AWD,表现不太好,前期看了一些AWD的思路和套路,但是没有真正应用于实际的AWD环境中,随做一次记录,记录这里面存在的问题以及没做好的地方。
开赛
开局给了ssh和web服务以及要求,如果被check down了,每轮扣100分(当时不知道每轮扣100分,以为一共扣100,每次restart需要扣100并且重置环境,所以就一直没restart)
防护
拿到ssh权限后首先备份了文件,用D盾、河马webshell专杀工具对web环境进行杀毒,想查杀webshell。
在webshell查杀环节中,使用河马webshell专杀工具和D盾杀了一个shell,但是有免杀shell没杀出来(一般AWD会内置多个后门),由于时间原因也没有细看,造成的后果是被传了不死马。(这是后话了。
在webshell查杀环节中应改进的地方是:
1.采用多种工具综合查杀webshell
2.对疑似后门文件手工查看,不能完全相信工具。
弱点1
流量监控脚本没挂上去,导致监控流量失败,无法得知有哪些payload是发起了攻击。
自检
通过观察web服务以及报错页面,出现了经典的十年磨一剑—-TP5.0.2,于是立刻想到了TP5.0.2的RCE。
网上收集payload后打了一波cat/flag,成功,并且通过该方式拿到了其他队伍的flag,遂考虑采用脚本编写EXP批量getflag并通知负责防护的队员修复相关漏洞。
弱点2
在修复时浪费了太多的时间,负责修复的队员无法尽快修复,并在上传修复后的文件时遇到了权限问题。
弱点3
临场紧张+payload不熟悉
我真的吐了。当时太紧张了,之前利用TP5的payload也是复制粘贴,这两个因素加起来导致我在Hackbar能顺利打payload,Burp也可以,但到了写脚本的时候就不行。因为payload是四个键值对,我写脚本的时候只写了一个。
贴一下我当时写的脚本
1 | #!/usr/bin/env python |
攻击
在拿到一个并且唯一一个payload后,由于没有编写出批量利用脚本,遂考虑手动打,导致的得分缓慢。
弱点4
临场脚本编写能力欠缺
在编写脚本的过程中,需要用到对html标签解析的库(叫啥忘了)、多线程(批量getflag和提交flag),但由于很久没写多线程了,所以忘了多线程咋用了。。而且解析html标签还是大二学爬虫的时候写的,太过久远,也搞忘记了。所以最后脚本也没跑起来,耽误了太多时间。
弱点5
对AWD赛制不熟悉,机器至少down了三分之一的比赛时间,5分钟一轮,一轮掉100分。我说怎么越交flag分越少。。绝了。
反思与改进
提升脚本编写能力
不说了。多写多看多寻思 多借鉴别人的思路,掌握基本库的用法。
先把多线程和xpath解析学会了!!!
提升payload熟练度
要求平时复现过程中不能拿到直接打,要分析原理与利用链。
提升运维水平
赛前看到了安恒低权限EDR,但是部署起来看起来麻烦,就没搞,但是流量监控脚本也没挂上去,以后需要提前部署并实践相关脚本与环境。
控制好相关文件的读写权限等。
提升应急反应能力
要通过流量脚本观察是否有入侵与挂马行为,学会如何处理不死马等紧急情况。
提升反制能力
要能通过别人打的payload反打别人
完善武器库
多收集webshell查杀工具、积累webshell免杀方式、收集常见漏洞EXP。