AWD介绍
AWD: Attack With Defence, 北赛中每个队伍维护多台服务器,服务器中存在多个漏洞,利
用漏洞攻击其他队伍可以进行得分,修复漏洞可以避免被其他队伍攻击失分。
一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下);
可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析;flag在主办方的设定下每隔一定时间刷新一轮;
各队一般都有自己的初始分数
flag一旦被其他队伍拿走,该队扣除一定积分扣除的积分由获取flag的队五均分;
主办方会对每个队伍的服务进行check,服务启机扣除本轮flag分数,扣除的分值由服务check正常的队伍均分;
一般每个队伍会给一个低权限用户,非root权限
网络环境
网络环境
比赛中获取flag一般有两种模式:
(1)flag在根目录下,读取ag内容,提交即可得分
(2)拿到其他队伍sheil后,执行指定命令(curl 10.0.0.2),即可从上图中flag机获取flag内容;
比赛可能会告诉你其他队伍的IP,也可能不会告诉你,一般在同一个C段或者B段,因此首先可以利用nmap等扫描工具发现其他队伍的IP:
nmap -sn 192.168.71.0/24
或者用https://github.com/zeroh/httpscan 的脚本进行扫描
系统、服务日志分析
为什么需要日志分析?
日志分析最直主要的两个目的:
- 网站安全自检查,了解服务器上正在发生的安全事件
- 作为网站管理运维等人员必须实时的了解服务器的安全状况,避免造成不必要的损失。
- 应急事件中的分析取证。
- 当已经因为黑客攻击造成损失时,可以通过日志分析等各种应急措施尽量挽回损失如何进行日志分析 日志分析工具,记录log脚本。感知可能正在发生的攻击,从而规避存在的安全风险
如何进行日志分析
日志分析工具,记录log脚本。感知可能正在发生的攻击,从而规避存在的安全风险
脚本:
<?php
date_default_timezone_set('Asia/Shanghai);
$ip =$_SERVER["REMOTE_ADDR"];//记录访问者ip
$filename=$_SERVER['PHP_SELF'];//访问者要访问的文件名
$parameter=$_SERVER["QUERY_STRING"];//访问者要请求的参数
$time=date('Y-m-d H:i:s',time());//访问时间
$logadd='来访时间:'.$time.'-->'.'访问链接:'.'http://'.$ip.$filename.'?'.$parameter."\r\n";
//log记录
$fh=fopen("log.txt","a");
fwrite($fh,$logadd);
fclose($fh);
?>
工具:
web日志取证分析工具 - 实验室 - 腾讯安全应急响应中心
日志分析中存在的难题
对于日志的安全分析, 可能会有如下几个问题:
- 日志中POST数据是不记录的
- 状态码虽然表示了响应状态,但是存在多种不可信情况,如服务器配置自定义状态码。
- 攻击者可能使用多个代理IP
- 无恶意webshell访问记录
- 攻击者避开了关键字检索
- APT攻击
- 日志数据噪声
常用套路
比赛开始
- ssh连接上去,备份代码
- d盾查代码webshell,有shell就删除,然后快速利用
- 上log与waf,看情况是否上通防,如果check太严考虑是被别人攻击失分多还是宕机扣分多
- 上文件监控
- 有必要就数据库备份,数据库降权
比赛中期
- 自己的防护措施搞定后就不停地挖洞,要相信cs框架地洞是挖不完的
- 被打就看log,考虑上通防
- 中不死马就killall apache、ps aux|grep-v grep|grep-vPID|cut-c9-|5| xargs kill -9
准备的工具
- ssh客户端(Xshell)、sftp|scp客户端
- 攻击框架(批量打全场)(不死马,软连接马等也可以提前准备)
- log与waf
- 文件监控
- d盾
- cshell
waf参考:CTF——AWD模式小总结_awd网络安全-CSDN博客