Azure AD 横向移动 - 1
字数 1627 2025-08-25 22:58:47

Azure AD 横向移动技术详解

0x01 前言

本文探讨了如何将传统的本地域环境横向移动技术应用于Azure AD环境。与本地Active Directory不同,Azure AD环境中的计算机和用户都在云环境中管理,但仍存在横向移动的可能性。

0x02 Mimikatz在Azure AD环境中的作用

Mimikatz 2.2.0-20190720及以上版本支持转存Windows 10(内部版本17763.615+)中lsass.exe进程的内存空间,包括Azure AD环境中的计算机:

  • 在已加入Azure AD的计算机中,用户凭证经过RC4加密存储在lsass.exe中
  • Mimikatz可以转储这些凭证
  • 但需要注意:Azure AD环境不支持Kerberos和NTLM认证,因此NTLM哈希无法直接用于哈希传递攻击

0x03 云环境与本地环境的区别

3.1 认证协议差异

  • Azure AD环境:不支持Kerberos和NTLM认证
  • 本地AD环境:支持Kerberos和NTLM认证

3.2 用户表达式区别

  • Azure ADuser@directoryname.onmicrosoft.com
  • 本地ADDomain\User

3.3 用户账号标识区别

  • 本地AD:使用安全标识(SID)表示
  • Azure AD:使用GUID(Azure AD id)表示

GUID转SID方法
将"S-1-12-1-"与GUID拆分处理后组合:

[base16(a1)]-[base16(a2)]-[base16(a3)]-[base16(a4)]
S-1-12-1-[base10(a1)]-[base10(a2)]-[base10(a3)]-[base10(a4)]

示例
GUID: 6aa89ecb-1f8f-4d92-810d-b0dce30b6c82
转换后SID: S-1-12-1-1789435595-1301421967-3702525313-2188119011

3.4 本地管理员组

默认情况下,Azure AD的以下角色是本地Administrators组成员:

  • Global administrator
  • Device administrator
  • 执行加入Azure AD过程的账户(计算机所有者)

0x04 计算机间的认证协议

Azure AD环境使用NEGOEX PKU2U(基于公钥密码的User-to-User)进行身份验证:

  1. 从Azure AD获得用户证书(有效期1小时)
  2. 使用联机ID提供程序的CA私钥签名
  3. 计算机在P2P连接过程中获得联机ID证书的公共对
  4. 远程计算机使用CA配对的公钥验证签名和时间戳

攻击利用点

  • Mimikatz可以转存客户端的证书及私钥
  • 获取这些凭证后,可通过NEGOEX PKU2U模拟用户
  • 计算机账号的证书有效期长达一年,攻击价值更高

0x05 横向移动技术实现

5.1 凭证获取

  1. 获取本地管理员权限(通过默认管理员组成员身份)
  2. 使用Mimikatz转存lsass.exe内存获取凭证
    mimikatz.exe "sekurlsa::logonpasswords" "exit"
    

5.2 证书提取

使用Mimikatz提取证书和私钥:

mimikatz.exe "crypto::certificates /export" "exit"

5.3 横向移动方法

  1. 证书利用

    • 使用获取的证书和私钥通过PKU2U协议进行认证
    • 可模拟用户访问其他Azure AD加入的计算机
  2. 本地管理员利用

    • 利用默认管理员组成员身份
    • 在目标计算机上执行相同的信息收集过程

0x06 防御建议

  1. 最小权限原则

    • 严格控制Global administrator和Device administrator角色分配
    • 定期审查本地管理员组成员
  2. 证书管理

    • 监控和限制证书颁发
    • 实施短期有效的证书策略
  3. 监控与检测

    • 监控lsass.exe内存转储行为
    • 检测异常证书使用情况
  4. 系统加固

    • 启用Credential Guard防止凭证窃取
    • 限制高权限账户的登录范围

0x07 总结

Azure AD环境虽然与本地AD有显著差异,但仍存在横向移动的可能。攻击者可以利用:

  1. 默认管理员组成员身份
  2. Mimikatz提取凭证和证书的能力
  3. PKU2U认证协议的特性

防御方应充分了解这些攻击技术,实施相应的防护措施。

Azure AD 横向移动技术详解 0x01 前言 本文探讨了如何将传统的本地域环境横向移动技术应用于Azure AD环境。与本地Active Directory不同,Azure AD环境中的计算机和用户都在云环境中管理,但仍存在横向移动的可能性。 0x02 Mimikatz在Azure AD环境中的作用 Mimikatz 2.2.0-20190720及以上版本支持转存Windows 10(内部版本17763.615+)中lsass.exe进程的内存空间,包括Azure AD环境中的计算机: 在已加入Azure AD的计算机中,用户凭证经过RC4加密存储在lsass.exe中 Mimikatz可以转储这些凭证 但需要注意:Azure AD环境不支持Kerberos和NTLM认证,因此NTLM哈希无法直接用于哈希传递攻击 0x03 云环境与本地环境的区别 3.1 认证协议差异 Azure AD环境 :不支持Kerberos和NTLM认证 本地AD环境 :支持Kerberos和NTLM认证 3.2 用户表达式区别 Azure AD : user@directoryname.onmicrosoft.com 本地AD : Domain\User 3.3 用户账号标识区别 本地AD :使用安全标识(SID)表示 Azure AD :使用GUID(Azure AD id)表示 GUID转SID方法 : 将"S-1-12-1-"与GUID拆分处理后组合: 示例 : GUID: 6aa89ecb-1f8f-4d92-810d-b0dce30b6c82 转换后SID: S-1-12-1-1789435595-1301421967-3702525313-2188119011 3.4 本地管理员组 默认情况下,Azure AD的以下角色是本地Administrators组成员: Global administrator Device administrator 执行加入Azure AD过程的账户(计算机所有者) 0x04 计算机间的认证协议 Azure AD环境使用NEGOEX PKU2U(基于公钥密码的User-to-User)进行身份验证: 从Azure AD获得用户证书(有效期1小时) 使用联机ID提供程序的CA私钥签名 计算机在P2P连接过程中获得联机ID证书的公共对 远程计算机使用CA配对的公钥验证签名和时间戳 攻击利用点 : Mimikatz可以转存客户端的证书及私钥 获取这些凭证后,可通过NEGOEX PKU2U模拟用户 计算机账号的证书有效期长达一年,攻击价值更高 0x05 横向移动技术实现 5.1 凭证获取 获取本地管理员权限(通过默认管理员组成员身份) 使用Mimikatz转存lsass.exe内存获取凭证 5.2 证书提取 使用Mimikatz提取证书和私钥: 5.3 横向移动方法 证书利用 : 使用获取的证书和私钥通过PKU2U协议进行认证 可模拟用户访问其他Azure AD加入的计算机 本地管理员利用 : 利用默认管理员组成员身份 在目标计算机上执行相同的信息收集过程 0x06 防御建议 最小权限原则 : 严格控制Global administrator和Device administrator角色分配 定期审查本地管理员组成员 证书管理 : 监控和限制证书颁发 实施短期有效的证书策略 监控与检测 : 监控lsass.exe内存转储行为 检测异常证书使用情况 系统加固 : 启用Credential Guard防止凭证窃取 限制高权限账户的登录范围 0x07 总结 Azure AD环境虽然与本地AD有显著差异,但仍存在横向移动的可能。攻击者可以利用: 默认管理员组成员身份 Mimikatz提取凭证和证书的能力 PKU2U认证协议的特性 防御方应充分了解这些攻击技术,实施相应的防护措施。