首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用S4U2Self实现Active Directory横向渗透

利用S4U2Self实现Active Directory横向渗透

原创
作者头像
qife122
发布2025-08-17 19:34:01
发布2025-08-17 19:34:01
750
举报

利用S4U2Self实现Active Directory横向渗透

作者:Hunter Wade | BHIS实习生

Hunter刚获得网络防御硕士学位,拥有两年多的渗透测试经验。他专注于Active Directory测试,业余时间喜欢在家庭实验室分析恶意软件。

本文为交叉发布内容,原始文章参见此处。

摘要

当仅拥有有效机器账户哈希时,可利用Kerberos S4U2Self代理实现本地提权,重新开启SEImpersonate等本地到域的横向渗透路径。

Kerberos基础

Kerberos是基于票据的认证协议,通过可信第三方建立安全通信。包含三个角色:

  • 客户端:请求访问资源的用户/系统
  • 服务端:目标资源
  • 密钥分发中心(KDC):负责认证和发证的可信第三方

认证流程:

  1. 客户端用密码加密认证请求发送给KDC
  2. KDC验证后返回用KDC密钥加密的TGT票据
  3. 客户端用TGT向KDC请求服务票据(ST)
  4. KDC返回用服务密码加密的ST
  5. 服务端解密ST验证客户端身份

委派机制与双跳问题

Kerberos的"双跳问题"指服务无法转发客户端凭据。微软引入三种委派方案:

  1. 无约束委派:服务可获得客户端TGT
  2. 约束委派:限制委派到特定SPN,引入S4U2Self/S4U2Proxy
  3. 基于资源的约束委派:由目标资源控制委派权限

S4U2Self技术分析

关键发现:S4U2Self不需要配置约束委派即可执行模拟。攻击者获取机器账户哈希后:

  1. 通过哈希传递攻击生成TGT
  2. 模拟任意域用户获取服务票据
  3. 限制:仅能在被入侵的机器账户关联资源上模拟

攻击路径实践

当无法直接横向移动时,可通过以下步骤重新开启SEImpersonate攻击路径:

  1. 用机器哈希通过S4U2Self模拟域管理员
  2. 创建新本地管理员账户
  3. 修改注册表禁用Remote UAC
  4. 检测域管理员会话
  5. 通过计划任务实现SEImpersonate提权
  6. 创建域管理员账户完成域控

技术限制

适用场景需同时满足:

  • 拥有未过期的机器账户哈希
  • 本地管理员账户被禁用
  • 域管理员在目标主机存在活跃会话

典型应用场景:

  • 通过SEBackupPrivilege获取哈希且本地admin被禁用
  • 从未更新密码的备份中获取有效机器哈希

防御建议

  1. 定期轮换机器账户密码(默认30天)
  2. 限制本地管理员权限
  3. 监控异常Kerberos票据请求
  4. 启用Credential Guard防护PTT/PTH攻击

参考资源

  1. 微软S4U2Self协议规范
  2. ADSecurity.org委派指南
  3. Credential Guard技术文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 利用S4U2Self实现Active Directory横向渗透
    • 摘要
    • Kerberos基础
    • 委派机制与双跳问题
    • S4U2Self技术分析
    • 攻击路径实践
    • 技术限制
    • 防御建议
    • 参考资源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档