红队视角下的域森林突破:一场由Shiro反序列化引发的跨域控攻防对抗
字数 1679 2025-08-29 22:41:10

红队视角下的域森林突破:由Shiro反序列化引发的跨域控攻防对抗

一、Web打点阶段

1. Shiro反序列化漏洞利用

漏洞原理

  • Apache Shiro框架在rememberMe功能中使用了AES加密的Cookie
  • 当使用默认密钥时,攻击者可构造恶意序列化对象实现RCE

利用步骤

  1. 识别Shiro框架特征:

    • 检查Cookie中是否存在rememberMe=deleteMe
    • 响应头中可能包含Set-Cookie: rememberMe=deleteMe
  2. 密钥检测:

    • 使用已知的Shiro默认密钥列表进行检测
    • 常见默认密钥包括:
      kPH+bIxk5D2deZiIxcaaaA==
      4AvVhmFLUs0KTA3Kprsdag==
      Z3VucwAAAAAAAAAAAAAAAA==
      
  3. 漏洞利用:

    • 使用ysoserial生成payload
    • 常见利用链选择:
      CommonsBeanutils1
      CommonsCollections2
      Jdk7u21
      
  4. 回显检测:

    • 通过DNSLog检测漏洞是否存在
    • 使用内存马注入实现交互式shell

2. 权限提升与持久化

权限提升方法

  • 查找Web目录下的敏感配置文件
  • 利用数据库连接信息横向移动
  • 查找服务器上的SSH密钥

持久化技术

  • 写入计划任务
  • 添加后门用户
  • 部署内存马(如Tomcat Filter型内存马)

二、内网渗透阶段

1. 内网信息收集

主机发现

  • 使用ICMP扫描发现存活主机
  • ARP扫描获取内网拓扑
  • NetBIOS扫描识别Windows主机

端口扫描

  • 使用低速率扫描避免触发IDS
  • 重点扫描端口:
    135, 139, 445 (SMB)
    389, 636 (LDAP)
    88 (Kerberos)
    53 (DNS)
    

域信息收集

  • 执行net view /domain获取域列表
  • 使用nltest /dclist:域名获取域控制器信息
  • 通过LDAP查询获取域内用户、组、计算机等信息

2. 横向移动技术

Pass-the-Hash攻击

  • 使用Mimikatz提取哈希
  • 利用psexec或wmiexec进行横向移动

Kerberoasting攻击

  • 请求SPN服务的TGS票据
  • 使用hashcat离线破解服务账户密码

委派滥用

  • 查找配置了非约束委派的账户
  • 利用打印机漏洞(SpoolSample)获取域控TGT

三、域控突破阶段

1. 域控定位与攻击

域控识别

  • 通过DNS查询定位域控制器
  • 检查_ldap._tcp.dc._msdcs.域名的SRV记录

攻击方法

  • Zerologon漏洞利用(CVE-2020-1472)
  • ADCS漏洞(ESC1-ESC8)
  • NTLM Relay攻击

2. 权限维持技术

黄金票据

  • 获取krbtgt账户的NTLM哈希
  • 伪造任意用户的TGT票据

DCShadow攻击

  • 注册伪造的域控制器
  • 直接修改AD数据库

SID History注入

  • 向普通用户添加域管理员SID
  • 实现权限提升

四、跨域攻击阶段

1. 跨域信任关系分析

信任类型识别

  • 单向信任与双向信任
  • 林信任与外部信任
  • 可传递信任与不可传递信任

信任枚举

  • 使用nltest /trusted_domains
  • 通过LDAP查询trustedDomain对象

2. 跨域攻击技术

SID过滤绕过

  • 当SID过滤配置不当时,可跨域使用管理员权限

信任密钥导出

  • 使用Mimikatz导出域间信任密钥
  • 伪造跨域票据

跨域黄金票据

  • 获取信任域的krbtgt哈希
  • 伪造跨域TGT

防御建议

蓝队防御措施

  1. Shiro防护

    • 升级到最新版本
    • 使用自定义加密密钥
    • 禁用rememberMe功能
  2. 域环境加固

    • 启用LSA保护
    • 限制NTLM使用
    • 监控异常Kerberos请求
  3. 跨域信任管理

    • 最小化信任关系
    • 启用SID过滤
    • 定期审计信任配置

检测与响应

  1. 异常行为检测

    • 监控异常的LDAP查询
    • 检测异常的票据请求
    • 关注跨域认证活动
  2. 日志分析

    • 集中收集和分析域控制器日志
    • 监控安全事件ID 4769(Kerberos服务票据请求)
  3. 应急响应

    • 准备域控恢复方案
    • 保留krbtgt账户的历史哈希
    • 建立跨域安全事件响应机制

总结

本攻击路径展示了从Web应用漏洞到完全控制跨域森林的完整攻击链,强调了现代红队攻击中"由外到内、由低到高"的渗透思路。防御方需要建立纵深防御体系,特别关注边界安全和域间信任关系的管理。

红队视角下的域森林突破:由Shiro反序列化引发的跨域控攻防对抗 一、Web打点阶段 1. Shiro反序列化漏洞利用 漏洞原理 : Apache Shiro框架在rememberMe功能中使用了AES加密的Cookie 当使用默认密钥时,攻击者可构造恶意序列化对象实现RCE 利用步骤 : 识别Shiro框架特征: 检查Cookie中是否存在 rememberMe=deleteMe 响应头中可能包含 Set-Cookie: rememberMe=deleteMe 密钥检测: 使用已知的Shiro默认密钥列表进行检测 常见默认密钥包括: 漏洞利用: 使用ysoserial生成payload 常见利用链选择: 回显检测: 通过DNSLog检测漏洞是否存在 使用内存马注入实现交互式shell 2. 权限提升与持久化 权限提升方法 : 查找Web目录下的敏感配置文件 利用数据库连接信息横向移动 查找服务器上的SSH密钥 持久化技术 : 写入计划任务 添加后门用户 部署内存马(如Tomcat Filter型内存马) 二、内网渗透阶段 1. 内网信息收集 主机发现 : 使用ICMP扫描发现存活主机 ARP扫描获取内网拓扑 NetBIOS扫描识别Windows主机 端口扫描 : 使用低速率扫描避免触发IDS 重点扫描端口: 域信息收集 : 执行 net view /domain 获取域列表 使用 nltest /dclist:域名 获取域控制器信息 通过LDAP查询获取域内用户、组、计算机等信息 2. 横向移动技术 Pass-the-Hash攻击 : 使用Mimikatz提取哈希 利用psexec或wmiexec进行横向移动 Kerberoasting攻击 : 请求SPN服务的TGS票据 使用hashcat离线破解服务账户密码 委派滥用 : 查找配置了非约束委派的账户 利用打印机漏洞(SpoolSample)获取域控TGT 三、域控突破阶段 1. 域控定位与攻击 域控识别 : 通过DNS查询定位域控制器 检查 _ldap._tcp.dc._msdcs.域名 的SRV记录 攻击方法 : Zerologon漏洞利用(CVE-2020-1472) ADCS漏洞(ESC1-ESC8) NTLM Relay攻击 2. 权限维持技术 黄金票据 : 获取krbtgt账户的NTLM哈希 伪造任意用户的TGT票据 DCShadow攻击 : 注册伪造的域控制器 直接修改AD数据库 SID History注入 : 向普通用户添加域管理员SID 实现权限提升 四、跨域攻击阶段 1. 跨域信任关系分析 信任类型识别 : 单向信任与双向信任 林信任与外部信任 可传递信任与不可传递信任 信任枚举 : 使用 nltest /trusted_domains 通过LDAP查询 trustedDomain 对象 2. 跨域攻击技术 SID过滤绕过 : 当SID过滤配置不当时,可跨域使用管理员权限 信任密钥导出 : 使用Mimikatz导出域间信任密钥 伪造跨域票据 跨域黄金票据 : 获取信任域的krbtgt哈希 伪造跨域TGT 防御建议 蓝队防御措施 Shiro防护 : 升级到最新版本 使用自定义加密密钥 禁用rememberMe功能 域环境加固 : 启用LSA保护 限制NTLM使用 监控异常Kerberos请求 跨域信任管理 : 最小化信任关系 启用SID过滤 定期审计信任配置 检测与响应 异常行为检测 : 监控异常的LDAP查询 检测异常的票据请求 关注跨域认证活动 日志分析 : 集中收集和分析域控制器日志 监控安全事件ID 4769(Kerberos服务票据请求) 应急响应 : 准备域控恢复方案 保留krbtgt账户的历史哈希 建立跨域安全事件响应机制 总结 本攻击路径展示了从Web应用漏洞到完全控制跨域森林的完整攻击链,强调了现代红队攻击中"由外到内、由低到高"的渗透思路。防御方需要建立纵深防御体系,特别关注边界安全和域间信任关系的管理。