CVE-2021-42287 和 CVE-2021-42278 簡介
這兩個漏洞是針對 Active Directory (AD) 的 Kerberos 協議所存在的安全問題,當這兩個漏洞結合使用時,可以讓攻擊者從普通域用戶權限提升至域管理員(Domain Admin)權限。
CVE-2021-42287: Kerberos Privilege Escalation
- Kerberos 是 Active Directory 認證的核心協議,它依靠「票證」(Ticket)來管理身份驗證。
- 此漏洞涉及 Kerberos 的 PAC(Privilege Attribute Certificate) 驗證。
- PAC 是 Kerberos 票證的一部分,用於記錄用戶的權限屬性(例如用戶組、SID 等)。
- 在正常情況下,Kerberos 會檢查 PAC 是否屬於合法的域控制器(Domain Controller,DC)。
- 漏洞點:Kerberos 可能會錯誤地接受一個沒有 PAC 的票證,這意味著攻擊者可以利用這一缺陷來偽造身份。
CVE-2021-42278: Active Directory SamAccountName Spoofing
- 此漏洞與 Active Directory 的
samAccountName
屬性有關。 samAccountName
是用戶或計算機帳戶的登錄名稱。- 通常,計算機帳戶的
samAccountName
會以$
結尾(例如,DC01$
表示域控制器的帳戶)。 - 漏洞點:攻擊者可以修改計算機帳戶的
samAccountName
,並移除末尾的$
,從而偽裝成域控制器或域管理員帳戶。
漏洞結合的利用方式
這兩個漏洞可以結合起來利用,形成一個完整的攻擊鏈,從普通域用戶權限提權到域管理員權限。以下是攻擊過程的高層次描述:
samAccountName
偽裝(CVE-2021-42278):- 攻擊者需要一個具有權限的域用戶(普通用戶一般可以創建或修改計算機帳戶)。
- 攻擊者修改一個現有的計算機帳戶的
samAccountName
,使其看起來像是域控制器(例如,DC01
)。 - 這一步利用了 CVE-2021-42278。
- Kerberos TGT 請求(CVE-2021-42287):
- 攻擊者請求一個 Kerberos TGT(Ticket Granting Ticket)。
- 因為 CVE-2021-42287 的存在,域控制器誤認為攻擊者的偽造帳戶是合法的域控制器,並返回一個合法的 TGT(但沒有 PAC)。
- 使用偽造的 TGT 提權:
- 攻擊者使用這個 TGT 請求服務票證(TGS),然後冒充域控制器執行高權限操作。
- 由於域控制器信任該票證,攻擊者可以最終獲得域管理員權限。
攻擊的核心問題
- CVE-2021-42287:域控制器在處理沒有 PAC 的 TGT 時的驗證不嚴格。
- CVE-2021-42278:攻擊者可以輕鬆修改計算機帳戶的
samAccountName
,偽裝成域控制器。
- 結合起來,這意味著攻擊者可以輕鬆冒充域控制器來欺騙 Kerberos,進一步獲取域管理員權限。
偵測與防護
偵測
- 監控小票證(Small Tickets):
- 正常情況下,Kerberos 票證應包含 PAC。
- 如果域控制器返回了一個 沒有 PAC 的 TGT(通常文件大小會很小),可能表明存在攻擊活動。
- 活動目錄審計:
- 審計 AD 中的
samAccountName
修改記錄。 - 監控是否有計算機帳戶的名字被修改,尤其是去掉了
$
符號的情況。
- 事件日誌:
- 查看域控制器的安全日誌是否記錄了異常的 Kerberos 行為或計算機帳戶的修改。
防護
- 安裝補丁:
- 微軟已針對這兩個漏洞發布了補丁,強烈建議盡快更新域控制器。
- CVE-2021-42287 和 CVE-2021-42278 的補丁於 2021 年 11 月的安全更新中釋出。
- 限制用戶創建計算機帳戶的權限:
- 通常,域用戶默認可以創建最多 10 個計算機帳戶。
- 修改 Active Directory 的 GPO 設置,限制用戶創建計算機帳戶的能力。
- 啟用強身份驗證:
- 啟用 Kerberos 的 PAC 強制檢查,確保域控制器不接受沒有 PAC 的票證。
- 監控用戶行為:
- 使用 SIEM 工具(如 Splunk 或 ELK 堆棧)監控用戶行為,檢測異常的帳戶活動和認證請求。
攻擊工具
目前互聯網上已有多個開源或半公開的工具可以用來掃描和利用這兩個漏洞:
- Scanner:用於檢測域控制器是否存在 CVE-2021-42287 和 CVE-2021-42278。
- Exploiter:用於實現從普通域用戶到域管理員的提權。
例如:
- Python 工具:許多工具使用 Python 編寫(基於
impacket
或其他 AD 工具)。
- Metasploit 模組:某些滲透測試框架(如 Metasploit)可能集成了這些漏洞的利用模組。
結論
CVE-2021-42287 和 CVE-2021-42278 是一組強大的 Active Directory 攻擊漏洞,能夠讓普通用戶快速提升到域管理員權限。這些漏洞凸顯了 AD 和 Kerberos 安全的重要性,建議企業盡快安裝補丁,並加強對域環境的監控和審計。