一、 什么Azure AD
Azure AD(Azure Active Directory )是微軟基于云的身份和訪問(wèn)管理服務(wù),它可以幫助員工登錄以及訪問(wèn)以下位置的資源:
● 外部資源,如 Microsoft 365、Azure 門(mén)戶及其他 SaaS 應(yīng)用程序。
● 內(nèi)部資源,如公司網(wǎng)絡(luò)和 Internet 上的應(yīng)用,以及由自己組織開(kāi)發(fā)的云應(yīng)用。
下圖顯示了 Azure AD 與應(yīng)用程序之間的交互。
二、 Azure的安全功能
Azure AD 實(shí)現(xiàn)了基本的安全功能。如,具有密碼鎖定策略,若密碼輸錯(cuò)10次,帳戶將鎖定 60 秒。還具備更高級(jí)的安全功能,但具體取決于訂閱的許可證。
1、條件訪問(wèn)策略
Azure AD 使用條件訪問(wèn)作為一種工具來(lái)統(tǒng)合信號(hào)、做出決策,以及實(shí)施組織策略。條件訪問(wèn)是新的標(biāo)識(shí)驅(qū)動(dòng)控制平面的核心。
最簡(jiǎn)單地講,條件訪問(wèn)策略是一些 if-then 語(yǔ)句:如果用戶想要訪問(wèn)某個(gè)資源,則必須完成某個(gè)操作。下圖表述的應(yīng)該更明確:
使用條件訪問(wèn)策略需要 Azure AD Premium P1 許可證,以下是常見(jiàn)信號(hào):
用戶或組成員身份
策略可以針對(duì)特定的用戶和組,并為管理員提供精細(xì)的訪問(wèn)控制。
IP 定位信息
組織可以創(chuàng)建在做出策略決策時(shí)使用的受信任 IP 地址范圍。
管理員可以指定要阻止或允許的整個(gè)流量來(lái)源國(guó)家/地區(qū)的 IP 范圍。
設(shè)備
實(shí)施條件訪問(wèn)策略時(shí),用戶可以使用的裝有特定平臺(tái)或標(biāo)有特定狀態(tài)的設(shè)備。
應(yīng)用程序
嘗試訪問(wèn)特定應(yīng)用程序的用戶可以觸發(fā)不同的條件訪問(wèn)策略。
實(shí)時(shí)風(fēng)險(xiǎn)和計(jì)算風(fēng)險(xiǎn)檢測(cè)
將信號(hào)與 Azure AD 標(biāo)識(shí)保護(hù)相集成可讓條件訪問(wèn)策略識(shí)別有風(fēng)險(xiǎn)的登錄行為。然后,策略可以強(qiáng)制用戶執(zhí)行密碼更改或多重身份驗(yàn)證,以降低其風(fēng)險(xiǎn)級(jí)別,或者在管理員采取手動(dòng)措施之前阻止其訪問(wèn)。
Microsoft Defender for Cloud Apps
實(shí)時(shí)監(jiān)視和控制用戶應(yīng)用程序的訪問(wèn)和會(huì)話,提高云環(huán)境中執(zhí)行的訪問(wèn)和活動(dòng)的透明度與控制度。
以下是常見(jiàn)決策:
阻止訪問(wèn)
嚴(yán)格的決策
授予訪問(wèn)權(quán)限
不嚴(yán)格的決策仍可要求以下一個(gè)或多個(gè)選項(xiàng):
● 需要多重身份驗(yàn)證
● 要求將設(shè)備標(biāo)記為合規(guī)
● 要求使用加入混合 Azure AD 的設(shè)備
● 需要批準(zhǔn)的客戶端應(yīng)用
● 需要應(yīng)用保護(hù)策略(預(yù)覽版)
以下是常用的策略:
● 要求對(duì)具有管理角色的用戶進(jìn)行多重身份驗(yàn)證。
● 需要對(duì) Azure 管理任務(wù)進(jìn)行多重身份驗(yàn)證。
● 阻止嘗試使用舊身份驗(yàn)證協(xié)議的用戶登錄。
● 需要用于 Azure 多重身份驗(yàn)證注冊(cè)的受信任位置。
● 阻止或授予來(lái)自特定位置的訪問(wèn)權(quán)限。
● 阻止有風(fēng)險(xiǎn)的登錄行為。
● 需要針對(duì)特定應(yīng)用程序的組織管理設(shè)備。
2、標(biāo)識(shí)保護(hù)
● 標(biāo)識(shí)保護(hù)功能為 P2 高級(jí)許可證的所有者提供了一個(gè)補(bǔ)充保護(hù)。
● 依靠他們?cè)趽碛?Azure AD 的組織中的職位獲得的數(shù)據(jù),Microsoft 能夠檢測(cè)到有風(fēng)險(xiǎn)的用戶行為。然后,條件訪問(wèn)策略可以區(qū)別對(duì)待這些用戶。例如,如果用戶使用存在于泄露數(shù)據(jù)庫(kù)中的密碼,則可以將其識(shí)別為有風(fēng)險(xiǎn)。
● 檢測(cè)標(biāo)準(zhǔn)可以在Microsoft 文檔中找到。
3、安全默認(rèn)值
Azure AD 的安全默認(rèn)值,可防止密碼噴灑、重播和網(wǎng)絡(luò)釣魚(yú)等常見(jiàn)攻擊。
事實(shí)上,使用安全默認(rèn)值,Azure 租戶的所有用戶都必須在 14 天內(nèi)注冊(cè)多重身份驗(yàn)證服務(wù)。
14 天后,用戶在完成注冊(cè)之前無(wú)法登錄。以下敏感管理組的成員每次登錄時(shí)都需要執(zhí)行額外的身份驗(yàn)證:
● 全局管理員
● SharePoint 管理員
● 交易所管理員
● 條件訪問(wèn)管理員
● 安全管理員
● 服務(wù)臺(tái)管理員或密碼管理員
● 計(jì)費(fèi)管理員
● 用戶管理員
● 認(rèn)證管理員
在租戶中啟用安全默認(rèn)值后,舊協(xié)議發(fā)出的所有身份驗(yàn)證請(qǐng)求都將被阻止,這意味著使用 IMAP、SMTP 或 POP3 的客戶端將被拒絕。
特權(quán)操作(例如管理 Azure 資源管理器)將需要額外的身份驗(yàn)證,即使通過(guò) Azure PowerShell 或 Azure CLI 完成也是如此。
租戶是在 2019 年 10 月 22 日當(dāng)天或之后創(chuàng)建的,該租戶會(huì)啟用安全默認(rèn)值。
4、Azure AD的密碼保護(hù)
Azure AD 密碼保護(hù)可以檢測(cè)并阻止已知的弱密碼及其變種,還可以阻止特定于你的組織的其他弱口令。
Azure AD 密碼保護(hù)的設(shè)計(jì)遵循以下原則:
● 域控制器 (DC) 不與 Internet 直接通信。
● DC 上未啟動(dòng)任何新網(wǎng)絡(luò)端口。
● 不需要 AD DS 架構(gòu)更改。該軟件使用現(xiàn)有的 AD DS 容器和 serviceConnectionPoint 架構(gòu)對(duì)象。
●不要求最低 AD DS 域或林功能級(jí)別 (DFL/FFL)。
● 該軟件不會(huì)在它保護(hù)的 AD DS 域中創(chuàng)建或要求帳戶。
● 用戶明文密碼永遠(yuǎn)不會(huì)離開(kāi)域控制器(無(wú)論是在密碼驗(yàn)證操作期間,還是在其他任何時(shí)間)。
● 該軟件不依賴于其他 Azure AD 功能。例如,Azure AD 密碼哈希同步 (PHS) 與 Azure AD 密碼保護(hù)無(wú)關(guān)或后者不需要前者。
● 支持增量部署,但僅在安裝了域控制器代理(DC 代理)的情況下才會(huì)強(qiáng)制執(zhí)行。
本地 Azure AD 密碼保護(hù)組件的工作原理如下所示:
● 每個(gè) Azure AD 密碼保護(hù)代理服務(wù)實(shí)例通過(guò)在 Active Directory 中創(chuàng)建 serviceConnectionPoint 對(duì)象,將自身播發(fā)到林中的 DC。
● Azure AD 密碼保護(hù)的每個(gè) DC 代理服務(wù)還在 Active Directory 中創(chuàng)建一個(gè) serviceConnectionPoint 對(duì)象。此對(duì)象主要用于報(bào)告和診斷。
● DC 代理服務(wù)負(fù)責(zé)發(fā)起從 Azure AD 下載新密碼策略的操作。第一步是通過(guò)在林中查詢代理 serviceConnectionPoint 對(duì)象,找到 Azure AD 密碼保護(hù)代理服務(wù)。
● 當(dāng)找到可用的代理服務(wù)時(shí),DC 代理向代理服務(wù)發(fā)送密碼策略下載請(qǐng)求。代理服務(wù)會(huì)將請(qǐng)求發(fā)送到 Azure AD,然后將響應(yīng)返回到 DC 代理服務(wù)。
● DC 代理服務(wù)從 Azure AD 收到新的密碼策略后,該服務(wù)將該策略存儲(chǔ)在其域 sysvol 文件夾共享的根目錄中的專用文件夾內(nèi)。DC 代理服務(wù)還會(huì)監(jiān)視此文件夾,以確定是否從域中的其他 DC 代理服務(wù)復(fù)制了更新的策略。
● DC 代理服務(wù)始終在服務(wù)啟動(dòng)時(shí)請(qǐng)求新策略。DC 代理服務(wù)啟動(dòng)后,會(huì)每小時(shí)檢查一次當(dāng)前本地可用策略的存在時(shí)間。如果策略存在時(shí)間超過(guò)一小時(shí),DC 代理會(huì)通過(guò)代理服務(wù)從 Azure AD 請(qǐng)求新策略,如前所述。如果當(dāng)前策略的存在時(shí)間不超過(guò)一小時(shí),DC 代理將繼續(xù)使用該策略。
● 當(dāng) DC 收到接收密碼更改事件時(shí),緩存的策略用于確定是接受還是拒絕新密碼。
5、日志記錄
Azure AD 有一個(gè)監(jiān)聽(tīng)功能,可跟蹤登錄和配置更改。并將會(huì)將日志發(fā)送到 Azure Logs Analytics,以便進(jìn)行進(jìn)一步處理,且無(wú)需訂閱高級(jí)許可證。
三、淺談Azure AD滲透測(cè)試
1、探測(cè)
首先,輸入如下URL來(lái)探測(cè)公司是否使用Azure AD
如果NameSpaceType指示“托管”,則該公司正在使用 Azure AD。
2、郵箱枚舉
確定存在Azure AD后,便可構(gòu)造email列表,可使用o365creeper進(jìn)行枚舉。
o365creeper是一個(gè)驗(yàn)證屬于Office 365租戶的郵件帳戶的腳本。此腳本可使用郵件地址或列表進(jìn)行枚舉,原理是發(fā)送一個(gè)空密碼的請(qǐng)求到Office 365,并通過(guò)判斷“IfExistsResult”參數(shù)設(shè)置值來(lái)確定結(jié)果,有效帳戶返回0,無(wú)效的帳戶將返回1。
下載:
使用:
這個(gè)操作不會(huì)在Azure AD 日志中留下任何痕跡
3、密碼噴灑
獲取有效電子郵箱列表后,可用密碼噴灑方式獲取賬戶憑證。
MailSniper
MailSniper 是一種滲透測(cè)試工具,可用于在 Microsoft Exchange 中搜索電子郵件并獲取密碼、內(nèi)部信息、網(wǎng)絡(luò)架構(gòu)等信息。
MailSniper 還可用于密碼噴灑、枚舉用戶和域等相關(guān)信息。
MSOLSpray
MSOLSpray也可匹配有效密碼,并且還會(huì)通過(guò) Azure AD 的錯(cuò)誤代碼來(lái)回顯更詳細(xì)的信息。如回顯帳戶上是否啟用 MFA、租戶/用戶存活、帳戶鎖定、帳戶禁用、密碼過(guò)期等相關(guān)信息。
4、信息收集
已獲取有效Azure AD憑證后,便可進(jìn)行信息收集階段。
與Azure AD 交互的信息收集工具有很多,如o365recon、Stormspotter、Azucar、SkyArk、PowerZure、MSOline、MailSniper、ROADtools等
o365recon
o365recon是使用有效憑證檢索AzureAD 信息的腳本
使用:
可獲取有關(guān) Azure AD 租戶的大量信息,還可確認(rèn)與本地 Active Directory 的同步以及相關(guān)服務(wù)器的主機(jī)名。
MSOnline
MSOnline可檢索租戶中當(dāng)前角色和關(guān)聯(lián)角色成員的列表。
MailSniper
MailSniper可以收集郵箱地址
顯示電子郵件地址對(duì)應(yīng)的用戶名
顯示具有多重身份驗(yàn)證的用戶
5、密碼提取
adconnectdump
adconnectdump提供了多種從 Azure AD Connect 服務(wù)器中提取和解密存儲(chǔ)的 Azure AD 和 Active Directory 憑證的方法。這些憑證在本地目錄和云中都具有高權(quán)限。
AD Sync中憑據(jù)地址:
訪問(wèn)地址:
6、DCSync攻擊
使用 MSOL 帳戶可以執(zhí)行DCSync攻擊并復(fù)制所有域用戶密碼hash。
使用azuread_decrypt_msol.ps1可以恢復(fù) MSOL 帳戶的密碼:
● azuread_decrypt_msol.ps1: AD Connect 同步憑據(jù)提取 POC https://gist.github.com/xpn/0dc393e944d8733e3c63023968583545
● azuread_decrypt_msol_v2.ps1:更新轉(zhuǎn)儲(chǔ) Azure AD Connect Sync 的 MSOL 服務(wù)帳戶(允許 DCSync)的方法 https://gist.github.com/xpn/f12b145dba16c2eebdd1c6829267b90c
此時(shí)便可以使用檢索到的 MSOL 帳戶憑據(jù)來(lái)發(fā)起 DCSync 攻擊。
7、無(wú)縫單點(diǎn)登錄(SSO)銀票
具備編輯AZUREADSSOACCS$ 帳戶屬性的賬戶均可使用 Kerberos 模擬 Azure AD 中的任何用戶(不存在MFA情況下)
PHS 和 PTA 均支持 SSO。如果啟用SSO,則會(huì)在本地 AD 中創(chuàng)建一個(gè)計(jì)算機(jī)帳戶AZUREADSSOC,這里注意的是AZUREADSSOACC 帳戶的密碼永遠(yuǎn)不會(huì)更改。
當(dāng)用戶想要連接 Azure AD 時(shí),域控制器會(huì)提供 Azure AD 的服務(wù)票據(jù),服務(wù)票據(jù)使用AZUREADSSOACC$計(jì)算機(jī)帳戶的密碼進(jìn)行加密。
無(wú)縫單點(diǎn)登錄 (SSO)
為 Active Directory 用戶配置連接 Azure AD的單點(diǎn)登錄的措施,不需重新輸入密碼。
SSO 依賴于 Kerberos,因此具有相同的缺陷。當(dāng)AZUREADSSOACC$遭到入侵,可以創(chuàng)建銀票。
創(chuàng)建銀票所需條件
● 用戶名
● 域名
● AZUREADSSOACC$帳戶的NTLM Hash
● SID
● 目標(biāo)服務(wù)
例:
五、總結(jié)
Azure AD 其實(shí)是微軟對(duì)傳統(tǒng)AD的演進(jìn),引進(jìn)了很多新的思想理念。同時(shí)具備多種安全功能,啟動(dòng)這些功能后,會(huì)減少很多安全風(fēng)險(xiǎn),云環(huán)境目前成為攻擊者的首選目標(biāo),因此企業(yè)更需要關(guān)注其安全性。