浅谈Azure AD渗透

一、 什么Azure AD

Azure AD(Azure Active Directory )是微软基于云的身份和访问管理服务,它可以帮助员工登录以及访问以下位置的资源:

● 外部资源,如 Microsoft 365、Azure 门户及其他 SaaS 应用程序。

● 内部资源,如公司网络和 Internet 上的应用,以及由自己组织开发的云应用。

下图显示了 Azure AD 与应用程序之间的交互。

二、 Azure的安全功能

Azure AD 实现了基本的安全功能。如,具有密码锁定策略,若密码输错10次,帐户将锁定 60 秒。还具备更高级的安全功能,但具体取决于订阅的许可证。

1、条件访问策略

Azure AD 使用条件访问作为一种工具来统合信号、做出决策,以及实施组织策略。条件访问是新的标识驱动控制平面的核心。

最简单地讲,条件访问策略是一些 if-then 语句:如果用户想要访问某个资源,则必须完成某个操作。下图表述的应该更明确:

使用条件访问策略需要 Azure AD Premium P1 许可证,以下是常见信号:

用户或组成员身份

策略可以针对特定的用户和组,并为管理员提供精细的访问控制。

IP 定位信息

组织可以创建在做出策略决策时使用的受信任 IP 地址范围。

管理员可以指定要阻止或允许的整个流量来源国家/地区的 IP 范围。

设备

实施条件访问策略时,用户可以使用的装有特定平台或标有特定状态的设备。

应用程序

尝试访问特定应用程序的用户可以触发不同的条件访问策略。

实时风险和计算风险检测

将信号与 Azure AD 标识保护相集成可让条件访问策略识别有风险的登录行为。然后,策略可以强制用户执行密码更改或多重身份验证,以降低其风险级别,或者在管理员采取手动措施之前阻止其访问。

Microsoft Defender for Cloud Apps

实时监视和控制用户应用程序的访问和会话,提高云环境中执行的访问和活动的透明度与控制度。

以下是常见决策:

阻止访问

严格的决策

授予访问权限

不严格的决策仍可要求以下一个或多个选项:

● 需要多重身份验证

● 要求将设备标记为合规

● 要求使用加入混合 Azure AD 的设备

● 需要批准的客户端应用

● 需要应用保护策略(预览版)

以下是常用的策略:

● 要求对具有管理角色的用户进行多重身份验证。

● 需要对 Azure 管理任务进行多重身份验证。

● 阻止尝试使用旧身份验证协议的用户登录。

● 需要用于 Azure 多重身份验证注册的受信任位置。

● 阻止或授予来自特定位置的访问权限。

● 阻止有风险的登录行为。

● 需要针对特定应用程序的组织管理设备。

2、标识保护

● 标识保护功能为 P2 高级许可证的所有者提供了一个补充保护。

● 依靠他们在拥有 Azure AD 的组织中的职位获得的数据,Microsoft 能够检测到有风险的用户行为。然后,条件访问策略可以区别对待这些用户。例如,如果用户使用存在于泄露数据库中的密码,则可以将其识别为有风险。

● 检测标准可以在Microsoft 文档中找到。

3、安全默认值

Azure AD 的安全默认值,可防止密码喷洒、重播和网络钓鱼等常见攻击。

事实上,使用安全默认值,Azure 租户的所有用户都必须在 14 天内注册多重身份验证服务。

14 天后,用户在完成注册之前无法登录。以下敏感管理组的成员每次登录时都需要执行额外的身份验证:

● 全局管理员

● SharePoint 管理员

● 交易所管理员

●  条件访问管理员

● 安全管理员

● 服务台管理员或密码管理员

● 计费管理员

●  用户管理员

●  认证管理员

在租户中启用安全默认值后,旧协议发出的所有身份验证请求都将被阻止,这意味着使用 IMAP、SMTP 或 POP3 的客户端将被拒绝。

特权操作(例如管理 Azure 资源管理器)将需要额外的身份验证,即使通过 Azure PowerShell 或 Azure CLI 完成也是如此。

租户是在 2019 年 10 月 22 日当天或之后创建的,该租户会启用安全默认值。

4、Azure AD的密码保护

Azure AD 密码保护可以检测并阻止已知的弱密码及其变种,还可以阻止特定于你的组织的其他弱口令。

Azure AD 密码保护的设计遵循以下原则:

● 域控制器 (DC) 不与 Internet 直接通信。

● DC 上未启动任何新网络端口。

● 不需要 AD DS 架构更改。该软件使用现有的 AD DS 容器和 serviceConnectionPoint 架构对象。

●不要求最低 AD DS 域或林功能级别 (DFL/FFL)。

● 该软件不会在它保护的 AD DS 域中创建或要求帐户。

●  用户明文密码永远不会离开域控制器(无论是在密码验证操作期间,还是在其他任何时间)。

●  该软件不依赖于其他 Azure AD 功能。例如,Azure AD 密码哈希同步 (PHS) 与 Azure AD 密码保护无关或后者不需要前者。

●  支持增量部署,但仅在安装了域控制器代理(DC 代理)的情况下才会强制执行。

本地 Azure AD 密码保护组件的工作原理如下所示:

● 每个 Azure AD 密码保护代理服务实例通过在 Active Directory 中创建 serviceConnectionPoint 对象,将自身播发到林中的 DC。

● Azure AD 密码保护的每个 DC 代理服务还在 Active Directory 中创建一个 serviceConnectionPoint 对象。此对象主要用于报告和诊断。

● DC 代理服务负责发起从 Azure AD 下载新密码策略的操作。第一步是通过在林中查询代理 serviceConnectionPoint 对象,找到 Azure AD 密码保护代理服务。

● 当找到可用的代理服务时,DC 代理向代理服务发送密码策略下载请求。代理服务会将请求发送到 Azure AD,然后将响应返回到 DC 代理服务。

●  DC 代理服务从 Azure AD 收到新的密码策略后,该服务将该策略存储在其域 sysvol 文件夹共享的根目录中的专用文件夹内。DC 代理服务还会监视此文件夹,以确定是否从域中的其他 DC 代理服务复制了更新的策略。

● DC 代理服务始终在服务启动时请求新策略。DC 代理服务启动后,会每小时检查一次当前本地可用策略的存在时间。如果策略存在时间超过一小时,DC 代理会通过代理服务从 Azure AD 请求新策略,如前所述。如果当前策略的存在时间不超过一小时,DC 代理将继续使用该策略。

●  当 DC 收到接收密码更改事件时,缓存的策略用于确定是接受还是拒绝新密码。

5、日志记录

Azure AD 有一个监听功能,可跟踪登录和配置更改。并将会将日志发送到 Azure Logs Analytics,以便进行进一步处理,且无需订阅高级许可证。

三、浅谈Azure AD渗透测试

1、探测

首先,输入如下URL来探测公司是否使用Azure AD

如果NameSpaceType指示“托管”,则该公司正在使用 Azure AD。

2、邮箱枚举

确定存在Azure AD后,便可构造email列表,可使用o365creeper进行枚举。

o365creeper是一个验证属于Office 365租户的邮件帐户的脚本。此脚本可使用邮件地址或列表进行枚举,原理是发送一个空密码的请求到Office 365,并通过判断“IfExistsResult”参数设置值来确定结果,有效帐户返回0,无效的帐户将返回1。

下载:

使用:

这个操作不会在Azure AD 日志中留下任何痕迹

3、密码喷洒

获取有效电子邮箱列表后,可用密码喷洒方式获取账户凭证。

MailSniper

MailSniper 是一种渗透测试工具,可用于在 Microsoft Exchange 中搜索电子邮件并获取密码、内部信息、网络架构等信息。

MailSniper 还可用于密码喷洒、枚举用户和域等相关信息。

MSOLSpray

MSOLSpray也可匹配有效密码,并且还会通过 Azure AD 的错误代码来回显更详细的信息。如回显帐户上是否启用 MFA、租户/用户存活、帐户锁定、帐户禁用、密码过期等相关信息。

4、信息收集

已获取有效Azure AD凭证后,便可进行信息收集阶段。

与Azure AD 交互的信息收集工具有很多,如o365recon、Stormspotter、Azucar、SkyArk、PowerZure、MSOline、MailSniper、ROADtools等

o365recon

o365recon是使用有效凭证检索AzureAD 信息的脚本

使用:

可获取有关 Azure AD 租户的大量信息,还可确认与本地 Active Directory 的同步以及相关服务器的主机名。

MSOnline

MSOnline可检索租户中当前角色和关联角色成员的列表。

MailSniper

MailSniper可以收集邮箱地址

显示电子邮件地址对应的用户名

显示具有多重身份验证的用户

5、密码提取

adconnectdump

adconnectdump提供了多种从 Azure AD Connect 服务器中提取和解密存储的 Azure AD 和 Active Directory 凭证的方法。这些凭证在本地目录和云中都具有高权限。

AD Sync中凭据地址:

访问地址:

6、DCSync攻击

使用 MSOL 帐户可以执行DCSync攻击并复制所有域用户密码hash。

使用azuread_decrypt_msol.ps1可以恢复 MSOL 帐户的密码:

● azuread_decrypt_msol.ps1: AD Connect 同步凭据提取 POC  https://gist.github.com/xpn/0dc393e944d8733e3c63023968583545

● azuread_decrypt_msol_v2.ps1:更新转储 Azure AD Connect Sync 的 MSOL 服务帐户(允许 DCSync)的方法 https://gist.github.com/xpn/f12b145dba16c2eebdd1c6829267b90c

此时便可以使用检索到的 MSOL 帐户凭据来发起 DCSync 攻击。

7、无缝单点登录(SSO)银票

具备编辑AZUREADSSOACCS$ 帐户属性的账户均可使用 Kerberos 模拟 Azure AD 中的任何用户(不存在MFA情况下)

PHS 和 PTA 均支持 SSO。如果启用SSO,则会在本地 AD 中创建一个计算机帐户AZUREADSSOC,这里注意的是AZUREADSSOACC 帐户的密码永远不会更改。

当用户想要连接 Azure AD 时,域控制器会提供 Azure AD 的服务票据,服务票据使用AZUREADSSOACC$计算机帐户的密码进行加密。

无缝单点登录 (SSO)

为 Active Directory 用户配置连接 Azure AD的单点登录的措施,不需重新输入密码。

SSO 依赖于 Kerberos,因此具有相同的缺陷。当AZUREADSSOACC$遭到入侵,可以创建银票。

创建银票所需条件

● 用户名

● 域名

●  AZUREADSSOACC$帐户的NTLM Hash

●  SID

●  目标服务

例:

五、总结

Azure AD 其实是微软对传统AD的演进,引进了很多新的思想理念。同时具备多种安全功能,启动这些功能后,会减少很多安全风险,云环境目前成为攻击者的首选目标,因此企业更需要关注其安全性。

我们是设计师、工程师、梦想者,是您扬帆出海的私人顾问专家


相关内容:
[亚马逊开店深圳办事处地址在哪里]
[亚马逊开店深圳办事处地址在哪里]
亚马逊开店深圳办事处地址揭秘:一站式开店服务,轻松拥抱财富!各位亲爱的创业者们,你们好!今天要给大家带来一个好消息——亚马逊开店深圳办事处地址终于揭开了神秘面纱!在这里,
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠:珠宝行业的巨大商机等你来挖掘!在炎热的夏季,一杯清凉的饮料、一本好书和一个精美的翡翠饰品,想必是很多人的首选。翡翠作为中国传统文化中的瑰宝之一,以其晶莹

TG客服:@SSjiejie — 官方频道:@SSwangluo

三生网络 © 2009-2023 超15年出海经验,跨境项目专家