Azure 云端环境里的活动目录介绍

来源:岁月联盟 编辑:猪蛋儿 时间:2020-02-10
$ConnectMsolInfo = connect-msolservice -AdGraphAccessToken $ADALresponse.AccessToken
# Looks like the Microsoft Teams PowerShell module supports ADAL as well, though I added a new variable that includes the signed-in user UPN.
Connect-MicrosoftTeams -AadAccessToken $ADALresponse -AccountId $AssessmentAccountUPN
Azure 活动目录的访问权限
有了活动目录,几乎所有东西都可以作为普通用户查看。Azure AD 用户可以查看有关用户和组的信息,但有一些限制访问。
在 Azure AD 中,为了识别特殊的访问权限,特权组被称为“角色”(即组)。 在 Office365 中有几个这样的管理角色,它们为所有 Office365或其特定部分提供管理级别的权限。 (分配角色)
许多组织在全局管理员(又名租户管理员)角色中都有一个报告帐户,这个角色实际上是将企业管理、域管理和模式管理集成到一个组中。 全局管理员拥有对 Azure AD 和所有 Office 365服务的完全控制权。 这就是为什么许多组织有超过5个全局管理员(微软的最大推荐数量)。 只有云帐户应该添加到角色中,这样它们才能利用 Azure MFA (无密码)以及 PIM 控制的角色成员关系。
还强烈建议创建一个“ break-glass”管理员帐户(或两个) ,以确保对租户的持续特权访问。 微软发布了一份关于如何保护特权访问的文档。
强烈建议使用特权身份管理(Privileged Identity Management,PIM)来控制角色成员资格,并要求每个使用 PIM 的帐户都拥有 Azure AD Premium 2(P2)许可证。 PIM 提供对具有所需权限的管理员角色的实时访问。 当管理员需要管理权限时,他们可以通过 PIM 请求并获得访问权限(可以发送给批准或自动批准)。 微软建议角色中的所有帐户都由 PIM 管理(并且拥有 AAD P2许可证)。
还有一个用于 PIM 的 Powershell 模块可以安装:
Install-Module -Name Microsoft.Azure.ActiveDirectory.PIM.PSModule
在2019年秋天,微软增加了一个名为“全局读操作”的新角色,该角色对全局管理员可以看到的所有 Azure AD / Office 365服务拥有只读 / 只查看权限(有些例外,因为微软仍在对所有 Office 365服务推出全局读操作功能)。 Global Reader 的成员资格应提供给安全团队或审计人员,他们需要对微软云(Azure AD & Office 365)环境进行视图访问。
攻击 Azure 活动目录
Office 365 服务可以从互联网上访问(默认情况下,使用条件访问来限制访问) ,这使得它们对攻击者具有吸引力。 攻击者利用多种攻击方法对 Azure AD & Office 365进行攻击。
帐户枚举
使用旧式的活动目录,任何活动目录用户都可以枚举所有的用户帐户和管理组成员,并且可以通过网络访问域控制器目录。 Azure Active Directory 用户可以枚举访问 Office365 服务(默认)的所有用户帐户和管理组成员。 用户枚举通常可能没有使用 O365creeper 的帐户,该帐户试图使用电子邮件地址列表认证到 O365。 根据响应代码,该工具确定电子邮件地址是否为有效用户帐户。
Azure AD 枚举工具
O365 Creeper-Office 365身份验证页面(Python)[ 账户发现 ]
OWA (Golang)
ActiveSync  (Python)
MSOnline/AzureAD PowerShell Module (PowerShell)
密码喷射
这是一种常见的方法,攻击者以及许多渗透测试人员和红队员被称为“密码喷射”。 密码喷射很有趣,因为它会自动猜测密码。 这种针对所有用户的自动密码猜测通常可以避免帐户锁定,因为使用特定密码的登录尝试是针对每个用户执行的,而不是针对一个特定的用户,而这正是帐户锁定的目的。 攻击者首先会尝试一系列以最有可能作为密码开头的密码(“ Fall2017” ,“ Winter2018”等)。
当密码喷射开始时,我们从列表中的第一个密码开始。 第一个密码用于尝试作为每个用户(或子集)进行身份验证。 这个密码是针对每个用户的,一旦所有用户都测试过这个密码,我们就会继续下一个密码。
密码喷射执行起来相对简单,而且非常有效。 我们曾与许多组织合作,因为他们的云环境就是由于账户受到密码喷射攻击而被入侵。 联邦的许多客户没有意识到他们的工作应该是发现这种攻击,而不是云的问题。 在云计算之外,密码喷射存在真正的风险。 如果云帐户和本地账户使用了相同的密码,而且没有配置 MFA,那么攻击者就有可能通过密码喷射攻击云端帐户,然后获得企业网络的访问权限。 这不是一个理论或假设的场景,并强调了MFA的重要性。
Office 365 密码喷射工具
Ruler (Exchange) [Golang]SprayingToolkit (Lync/Skype for Business/OWA) [Python]LyncSniper (Lync/Skype for Business) [PowerShell]MailSniper (OWA/EWS) [PowerShell]
Office 365 密码喷射攻击缓解措施通过启用“安全默认”或配置自定义条件访问策略禁用传统身份验证。强烈建议所有用户都使用MFA。
Office365 密码喷射攻击检测
假设密码喷射攻击的目标 Office365 服务和联邦没有配置(ADFS,Okta 等) ,那么可以通过引用 Azure AD 登录日志来执行检测。
通过将同一用户的多个事件与登录错误代码“50126”关联起来进行检测,客户端应用程序是“Other clients; Older Office clients”(这意味着执行了传统身份验证)。
帐户令牌窃取和重用
由于云认证通常会导致令牌存储在经过认证的应用程序或 web 浏览器中,这是认证的证据,可以进行重用。 Web 浏览器通常将这个验证标记存储为 cookie。 如果这些数据被窃取,攻击者可以利用这些数据进行欺骗访问,并配置持久性以便继续访问。
Azure AD 回顾
微软的 Azure AD GitHub 包括用于检查 Azure AD 配置的 PowerShell 代码 (https://github.com/AzureAD/AzureADAssessment)
Trimarc 还提供了一项名为微软云安全评估(MCSA)的新服务,该服务类似于本地活动目录安全评估,但专注于 Azure AD & Office 365。
其他 Office 365服务 PowerShell 模块 exchange 在线模块安装-Exchange 在线模块
Install-Module -Name ExchangeOnlineManagement
微软 SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
微软 Teams
Install-Module -Name MicrosoftTeams
微软企业在线 Skype 微软 InTune
Install-Module -Name Microsoft.Graph.Intune -Force
(需要管理员提供 Admin Consent: Connect-MSGraph -AdminConsent)