一、 什么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è)更需要關注其安全性。