Red Teaming Microsoft: Part 1 - 通过Azure导致Active Directory泄漏
字数 1466 2025-08-27 12:33:31

Azure Active Directory 安全渗透测试指南

前言

本指南详细介绍了通过Azure平台可能导致Active Directory信息泄露的各种技术和方法。这些技术对于红队评估微软云环境的安全性至关重要,同时也为蓝队提供了防御这些攻击的参考。

微软云环境概述

微软提供了复杂的混合云环境,包括:

  • 本地Active Directory (AD)
  • Azure Active Directory (Azure AD)
  • Exchange Online/本地Exchange
  • Office 365套件
  • 其他云服务(SharePoint, OneDrive等)

这些服务的集成通过Azure AD Connect同步服务实现,可能产生安全盲点。

攻击路径与技术

1. 通过Web会话访问Azure AD

步骤

  1. 对Webmail门户进行身份验证(如https://webmail.domain.com/)
  2. 将浏览器URL更改为:https://azure.microsoft.com/
  3. 从活动会话中选择账户
  4. 选择"Azure Active Directory"

获取的信息

  • 所有用户和组列表
  • 用户所属的权限组(VPN访问、域管理、数据库访问等)
  • 用户设备信息(操作系统、版本)
  • 业务应用程序及其端点
  • 服务主体名称(SPN)
  • 其他域名
  • 虚拟资源(VM、网络、数据库)

2. 创建后门访客账户

步骤

  1. 登录Azure门户
  2. 单击"Azure Active Directory"
  3. 选择"用户"
  4. 单击"新访客用户"并邀请自己

风险:如果Azure AD Connect配置为双向同步,访客账户可能获得内部网络认证权限,包括MFA设备和VPN访问。

自动化工具与技术

1. Azure CLI (AZ CLI)

安装

AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-get install apt-transport-https
sudo apt-get update && sudo apt-get install azure-cli

身份验证

az login
# 或使用设备代码
az login --use-device-code

数据提取命令

获取所有用户

az ad user list --output=table --query='[].{Created:createdDateTime,UPN:userPrincipalName,Name:displayName,Title:jobTitle,Department:department,Email:mail,UserId:mailNickname,Phone:telephoneNumber,Mobile:mobile,Enabled:accountEnabled}'

获取特定用户

az ad user list --output=json --query='[].{Created:createdDateTime,UPN:userPrincipalName,Name:displayName,Title:jobTitle,Department:department,Email:mail,UserId:mailNickname,Phone:telephoneNumber,Mobile:mobile,Enabled:accountEnabled}' --upn='<upn>'

获取所有组

az ad group list --output=json --query='[].{Group:displayName,Description:description}'

获取特定组成员

az ad group member list --output=json --query='[].{Created:createdDateTime,UPN:userPrincipalName,Name:displayName,Title:jobTitle,Department:department,Email:mail,UserId:mailNickname,Phone:telephoneNumber,Mobile:mobile,Enabled:accountEnabled}' --group='<group name>'

获取所有应用程序

az ad app list --output=table --query='[].{Name:displayName,URL:homepage}'

获取特定应用程序

az ad app list --output=json --identifier-uri='<uri>'

获取所有服务主体

az ad sp list --output=table --query='[].{Name:displayName,Enabled:accountEnabled,URL:homepage,Publisher:publisherName,MetadataURL:samlMetadataUrl}'

2. Azure PowerShell

基本命令

Connect-AzureRmAccount

3. Azure .NET SDK

适用于C#开发的自动化工具,提供对Active Directory Graph API的封装。

防御措施

1. 禁用Azure门户访问

步骤

  1. 使用全局管理员账户登录https://portal.azure.com
  2. 选择"Azure Active Directory"
  3. 选择"用户设置"
  4. 启用"限制对Azure AD管理门户的访问"

2. 条件访问策略

配置条件访问策略以限制敏感资源的访问:
https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview

3. 监控与审计

  • 定期审计Azure AD Connect同步配置
  • 监控异常访客账户创建
  • 审计应用程序和服务主体的权限

高级技巧

JMESPath查询过滤

使用JMESPath进行高级数据过滤:

az ad user list --query="[?contains(userPrincipalName,'@targetdomain.com')].{UPN:userPrincipalName,Name:displayName}"

目标选择策略

优先关注以下组:

  • 管理员组
  • VPN访问组
  • 财务相关组
  • DevOps/开发团队
  • 云服务访问组(AWS/Azure/Oracle)

总结

通过Azure平台泄露Active Directory信息的技术展示了微软混合云环境中的安全盲点。红队可以利用这些技术进行有效评估,而蓝队则应关注这些攻击路径并实施相应的防御措施。云环境作为常被忽视的攻击面,需要特别的安全关注和持续的监控。

Azure Active Directory 安全渗透测试指南 前言 本指南详细介绍了通过Azure平台可能导致Active Directory信息泄露的各种技术和方法。这些技术对于红队评估微软云环境的安全性至关重要,同时也为蓝队提供了防御这些攻击的参考。 微软云环境概述 微软提供了复杂的混合云环境,包括: 本地Active Directory (AD) Azure Active Directory (Azure AD) Exchange Online/本地Exchange Office 365套件 其他云服务(SharePoint, OneDrive等) 这些服务的集成通过Azure AD Connect同步服务实现,可能产生安全盲点。 攻击路径与技术 1. 通过Web会话访问Azure AD 步骤 : 对Webmail门户进行身份验证(如https://webmail.domain.com/) 将浏览器URL更改为:https://azure.microsoft.com/ 从活动会话中选择账户 选择"Azure Active Directory" 获取的信息 : 所有用户和组列表 用户所属的权限组(VPN访问、域管理、数据库访问等) 用户设备信息(操作系统、版本) 业务应用程序及其端点 服务主体名称(SPN) 其他域名 虚拟资源(VM、网络、数据库) 2. 创建后门访客账户 步骤 : 登录Azure门户 单击"Azure Active Directory" 选择"用户" 单击"新访客用户"并邀请自己 风险 :如果Azure AD Connect配置为双向同步,访客账户可能获得内部网络认证权限,包括MFA设备和VPN访问。 自动化工具与技术 1. Azure CLI (AZ CLI) 安装 : 身份验证 : 数据提取命令 : 获取所有用户 : 获取特定用户 : 获取所有组 : 获取特定组成员 : 获取所有应用程序 : 获取特定应用程序 : 获取所有服务主体 : 2. Azure PowerShell 基本命令 : 3. Azure .NET SDK 适用于C#开发的自动化工具,提供对Active Directory Graph API的封装。 防御措施 1. 禁用Azure门户访问 步骤 : 使用全局管理员账户登录https://portal.azure.com 选择"Azure Active Directory" 选择"用户设置" 启用"限制对Azure AD管理门户的访问" 2. 条件访问策略 配置条件访问策略以限制敏感资源的访问: https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview 3. 监控与审计 定期审计Azure AD Connect同步配置 监控异常访客账户创建 审计应用程序和服务主体的权限 高级技巧 JMESPath查询过滤 使用JMESPath进行高级数据过滤: 目标选择策略 优先关注以下组: 管理员组 VPN访问组 财务相关组 DevOps/开发团队 云服务访问组(AWS/Azure/Oracle) 总结 通过Azure平台泄露Active Directory信息的技术展示了微软混合云环境中的安全盲点。红队可以利用这些技术进行有效评估,而蓝队则应关注这些攻击路径并实施相应的防御措施。云环境作为常被忽视的攻击面,需要特别的安全关注和持续的监控。