taibeihacker
Moderator
0x00 前言简介
當Active Directory首次與Windows 2000 Server一起發佈時,Microsoft就提供了一種簡單的機制來支持用戶通過Kerberos對Web服務器進行身份驗證並需要授權用戶更新後端數據庫服務器上的記錄的方案。這通常被稱為Kerberos double-hop issue(雙躍點問題),需要委派才能使Web服務器在修改數據庫記錄時模擬用戶操作。
0x01 Kerberos Unconstrained Delegation(Kerberos无约束委派)
Microsoft在Windows 2000中已添加了Kerberos“無約束委派”功能。域管理員可以通過勾選第二個複選框來啟用此委派級別。第三個複選框用於“約束委派”,它要求在啟用了委派的計算機上列出特定的Kerberos服務。
PowerShell查找Kerberos無約束委派:
使用Active Directory PowerShell模塊的Get-ADComputer發現Kerberos無約束委派的計算機是比較容易。
無約束的委託:TrustedForDelegation=True
約束委派:TrustedToAuthForDelegation=True

0x02 Kerberos通信流程
讓我們遵循標準的Kerberos通信流程,這是一個描述Kerberos如何工作的快速示例:用戶使用用戶名和密碼登錄
1A.密码转换为NTLM哈希且时间戳用哈希加密,并把它作为身份验证票证(TGT)请求(AS-REQ)的身份验证者发送到KDC(密钥分配中心)1B.域控制器(KDC)检查用户信息(登录限制,组成员等)并创建票据授予票证(TGT)2. TGT经过加密和签名并发送给用户(AS-REP)。只有域中的Kerberos服务(KRBTGT)才能打开和读取TGT数据3.当请求票证授予服务(TGS)票证(TGS-REQ)时,用户将TGT发送给DC。DC打开TGT并验证PAC校验----如果DC可以打开票证并校验和检出,则TGT 是有效的,TGT中的数据被有效地复制来创建TGS票证4.使用目标服务帐户的NTLM密码哈希对TGS进行加密并发送给用户(TGS-REP)5. 用戶連接到服務器託管服務的適當的端口並發送給TGS(AP-REQ)。
該服務使用其NTLM密碼哈希打開TGS票證。當託管在TGS-REQ中引用的服務主體名稱中指定的服務的服務器上啟用Kerberos無約束委派時(步驟3),DC控制器的域控制器將用戶的TGT副本存放到服務票證中。當用戶的服務票證(TGS)被提供給服務器以進行服務訪問時,服務器打開TGS並將用戶的TGT放入LSASS以方便以後使用。 Application Server現在可以無限制地模擬該用戶操作!
注意:為了使應用程序服務器配置“Kerberos Unconstrained
Delegation”,域管理員或企業管理員需要在域中的計算機帳戶上配置此設置。此權限可以委派給其他組,因此請謹慎在Active Directory中授權用戶權限。

0x03 无约束委派盗取凭证
作為攻擊者,一旦找到具有Kerberos無約束委派的服務器,那麼下一步可以如下:1.通過管理員或服務帳戶攻擊服務器。
2.通過社會工程學使用Domain Admin連接到服務器上的任何服務,並且具有無約束委派權限。
3.當管理員連接到此服務時,管理員的TGS服務票證(使用TGT)將發送到服務器並存入LSASS中,以方便以後使用。

4.可以提取並重新使用域管理員身份驗證(TGT)票證(直到票有效期為止)。

5.可以立即使用該票證以獲取域KRBTGT帳戶密碼哈希(當域管理員被洩露時),在這種情況下,我們使用PowerShell遠程操作作為域管理員連接到域控制器。

0x04 防御措施
1.不要使用Kerberos无约束委派权限 -----配置需要使用约束委派进行委派的服务器2.将所有高权限的管理员帐户配置为“帐户敏感且无法委派”
注意:當受保護用戶的組帳戶升級到Windows
Server 2012 R2域功能級別時,將自動應用基於域控制器的保護。對Windows Server
2012 R2域進行身份驗證的受保護用戶組的成員無法再使用以下身份進行身份驗證:Windows 8.1設備連接到Windows Server 2012 R2主機時.默認憑據委派(CredSSP):即使啟用了“允許委派默認憑據組策略”設置,也不會緩存純文本密碼憑據。
Windows摘要(Windows Digest):即使啟用了Windows摘要,也不會緩存純文本密碼憑據。
NTLM:NT單向函數NTOWF的結果不會被緩存
Kerberos長期密鑰:來自Kerberos初始TGT請求的密鑰通常被緩存,因此不會中斷身份驗證請求。對於此組中的帳戶,Kerberos協議會在每個請求中驗證身份驗證。
離線登錄:登錄時不會創建緩存的驗證程序