淺談Azure AD滲透

來源: 聯想全球安全實驗室
作者:聯想安全實驗室
時間:2021-12-01
16521
Azure AD(Azure Active Directory )是微軟基于云的身份和訪問管理服務,它可以幫助員工登錄以及訪問以下位置的資源。

一、 什么Azure AD

Azure AD(Azure Active Directory )是微軟基于云的身份和訪問管理服務,它可以幫助員工登錄以及訪問以下位置的資源:

● 外部資源,如 Microsoft 365、Azure 門戶及其他 SaaS 應用程序。

● 內部資源,如公司網絡和 Internet 上的應用,以及由自己組織開發(fā)的云應用。

下圖顯示了 Azure AD 與應用程序之間的交互。

二、 Azure的安全功能

Azure AD 實現了基本的安全功能。如,具有密碼鎖定策略,若密碼輸錯10次,帳戶將鎖定 60 秒。還具備更高級的安全功能,但具體取決于訂閱的許可證。

1、條件訪問策略

Azure AD 使用條件訪問作為一種工具來統合信號、做出決策,以及實施組織策略。條件訪問是新的標識驅動控制平面的核心。

最簡單地講,條件訪問策略是一些 if-then 語句:如果用戶想要訪問某個資源,則必須完成某個操作。下圖表述的應該更明確:

使用條件訪問策略需要 Azure AD Premium P1 許可證,以下是常見信號:

用戶或組成員身份

策略可以針對特定的用戶和組,并為管理員提供精細的訪問控制。

IP 定位信息

組織可以創(chuàng)建在做出策略決策時使用的受信任 IP 地址范圍。

管理員可以指定要阻止或允許的整個流量來源國家/地區(qū)的 IP 范圍。

設備

實施條件訪問策略時,用戶可以使用的裝有特定平臺或標有特定狀態(tài)的設備。

應用程序

嘗試訪問特定應用程序的用戶可以觸發(fā)不同的條件訪問策略。

實時風險和計算風險檢測

將信號與 Azure AD 標識保護相集成可讓條件訪問策略識別有風險的登錄行為。然后,策略可以強制用戶執(zhí)行密碼更改或多重身份驗證,以降低其風險級別,或者在管理員采取手動措施之前阻止其訪問。

Microsoft Defender for Cloud Apps

實時監(jiān)視和控制用戶應用程序的訪問和會話,提高云環(huán)境中執(zhí)行的訪問和活動的透明度與控制度。

以下是常見決策:

阻止訪問

嚴格的決策

授予訪問權限

不嚴格的決策仍可要求以下一個或多個選項:

● 需要多重身份驗證

● 要求將設備標記為合規(guī)

● 要求使用加入混合 Azure AD 的設備

● 需要批準的客戶端應用

● 需要應用保護策略(預覽版)

以下是常用的策略:

● 要求對具有管理角色的用戶進行多重身份驗證。

● 需要對 Azure 管理任務進行多重身份驗證。

● 阻止嘗試使用舊身份驗證協議的用戶登錄。

● 需要用于 Azure 多重身份驗證注冊的受信任位置。

● 阻止或授予來自特定位置的訪問權限。

● 阻止有風險的登錄行為。

● 需要針對特定應用程序的組織管理設備。

2、標識保護

● 標識保護功能為 P2 高級許可證的所有者提供了一個補充保護。

● 依靠他們在擁有 Azure AD 的組織中的職位獲得的數據,Microsoft 能夠檢測到有風險的用戶行為。然后,條件訪問策略可以區(qū)別對待這些用戶。例如,如果用戶使用存在于泄露數據庫中的密碼,則可以將其識別為有風險。

● 檢測標準可以在Microsoft 文檔中找到。

3、安全默認值

Azure AD 的安全默認值,可防止密碼噴灑、重播和網絡釣魚等常見攻擊。

事實上,使用安全默認值,Azure 租戶的所有用戶都必須在 14 天內注冊多重身份驗證服務。

14 天后,用戶在完成注冊之前無法登錄。以下敏感管理組的成員每次登錄時都需要執(zhí)行額外的身份驗證:

● 全局管理員

● SharePoint 管理員

● 交易所管理員

●  條件訪問管理員

● 安全管理員

● 服務臺管理員或密碼管理員

● 計費管理員

●  用戶管理員

●  認證管理員

在租戶中啟用安全默認值后,舊協議發(fā)出的所有身份驗證請求都將被阻止,這意味著使用 IMAP、SMTP 或 POP3 的客戶端將被拒絕。

特權操作(例如管理 Azure 資源管理器)將需要額外的身份驗證,即使通過 Azure PowerShell 或 Azure CLI 完成也是如此。

租戶是在 2019 年 10 月 22 日當天或之后創(chuàng)建的,該租戶會啟用安全默認值。

4、Azure AD的密碼保護

Azure AD 密碼保護可以檢測并阻止已知的弱密碼及其變種,還可以阻止特定于你的組織的其他弱口令。

Azure AD 密碼保護的設計遵循以下原則:

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

● DC 上未啟動任何新網絡端口。

● 不需要 AD DS 架構更改。該軟件使用現有的 AD DS 容器和 serviceConnectionPoint 架構對象。

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

● 該軟件不會在它保護的 AD DS 域中創(chuàng)建或要求帳戶。

●  用戶明文密碼永遠不會離開域控制器(無論是在密碼驗證操作期間,還是在其他任何時間)。

●  該軟件不依賴于其他 Azure AD 功能。例如,Azure AD 密碼哈希同步 (PHS) 與 Azure AD 密碼保護無關或后者不需要前者。

●  支持增量部署,但僅在安裝了域控制器代理(DC 代理)的情況下才會強制執(zhí)行。

本地 Azure AD 密碼保護組件的工作原理如下所示:

● 每個 Azure AD 密碼保護代理服務實例通過在 Active Directory 中創(chuàng)建 serviceConnectionPoint 對象,將自身播發(fā)到林中的 DC。

● Azure AD 密碼保護的每個 DC 代理服務還在 Active Directory 中創(chuàng)建一個 serviceConnectionPoint 對象。此對象主要用于報告和診斷。

● DC 代理服務負責發(fā)起從 Azure AD 下載新密碼策略的操作。第一步是通過在林中查詢代理 serviceConnectionPoint 對象,找到 Azure AD 密碼保護代理服務。

● 當找到可用的代理服務時,DC 代理向代理服務發(fā)送密碼策略下載請求。代理服務會將請求發(fā)送到 Azure AD,然后將響應返回到 DC 代理服務。

●  DC 代理服務從 Azure AD 收到新的密碼策略后,該服務將該策略存儲在其域 sysvol 文件夾共享的根目錄中的專用文件夾內。DC 代理服務還會監(jiān)視此文件夾,以確定是否從域中的其他 DC 代理服務復制了更新的策略。

● DC 代理服務始終在服務啟動時請求新策略。DC 代理服務啟動后,會每小時檢查一次當前本地可用策略的存在時間。如果策略存在時間超過一小時,DC 代理會通過代理服務從 Azure AD 請求新策略,如前所述。如果當前策略的存在時間不超過一小時,DC 代理將繼續(xù)使用該策略。

●  當 DC 收到接收密碼更改事件時,緩存的策略用于確定是接受還是拒絕新密碼。

5、日志記錄

Azure AD 有一個監(jiān)聽功能,可跟蹤登錄和配置更改。并將會將日志發(fā)送到 Azure Logs Analytics,以便進行進一步處理,且無需訂閱高級許可證。

三、淺談Azure AD滲透測試

1、探測

首先,輸入如下URL來探測公司是否使用Azure AD

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

2、郵箱枚舉

確定存在Azure AD后,便可構造email列表,可使用o365creeper進行枚舉。

o365creeper是一個驗證屬于Office 365租戶的郵件帳戶的腳本。此腳本可使用郵件地址或列表進行枚舉,原理是發(fā)送一個空密碼的請求到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 帳戶可以執(zhí)行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 帳戶憑據來發(fā)起 DCSync 攻擊。

7、無縫單點登錄(SSO)銀票

具備編輯AZUREADSSOACCS$ 帳戶屬性的賬戶均可使用 Kerberos 模擬 Azure AD 中的任何用戶(不存在MFA情況下)

PHS 和 PTA 均支持 SSO。如果啟用SSO,則會在本地 AD 中創(chuàng)建一個計算機帳戶AZUREADSSOC,這里注意的是AZUREADSSOACC 帳戶的密碼永遠不會更改。

當用戶想要連接 Azure AD 時,域控制器會提供 Azure AD 的服務票據,服務票據使用AZUREADSSOACC$計算機帳戶的密碼進行加密。

無縫單點登錄 (SSO)

為 Active Directory 用戶配置連接 Azure AD的單點登錄的措施,不需重新輸入密碼。

SSO 依賴于 Kerberos,因此具有相同的缺陷。當AZUREADSSOACC$遭到入侵,可以創(chuàng)建銀票。

創(chuàng)建銀票所需條件

● 用戶名

● 域名

●  AZUREADSSOACC$帳戶的NTLM Hash

●  SID

●  目標服務

例:

五、總結

Azure AD 其實是微軟對傳統AD的演進,引進了很多新的思想理念。同時具備多種安全功能,啟動這些功能后,會減少很多安全風險,云環(huán)境目前成為攻擊者的首選目標,因此企業(yè)更需要關注其安全性。

立即登錄,閱讀全文
版權說明:
本文內容來自于聯想全球安全實驗室,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家