白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

admin 2024年10月7日17:41:58评论49 views字数 2083阅读6分56秒阅读模式
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

白银/黄金(跨域)/钻石/蓝宝石票据

攻击复现

本文涉及到的原理阐述的比较简单,需要师傅对Kerberos有一定的了解。

票据攻击多用于域内权限维持。

0x01 白银票据

在TGS_REP里面的ticket的encpart是使用服务的hash进行加密的,如果拥有服务的hash,就可以给自己签发任意用户的TGS票据。

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

由于只拥有服务的hash,不能去对PAC进行签名,则当服务验证PAC签名时,白银票据将不生效;且和黄金票据相比,只能用于单个机器的权限维持,即已经拿下的机器;这就是白银票据的限制。

白银票据利用

环境:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

制作票据:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

白银票据可制作的服务一表:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

0x02 黄金票据

在AS_REP里面的ticket的encpart是使用krbtgt的hash进行加密的,如果拥有krbtgt的hash,就可以自己签发任意用户的TGT票据。

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

黄金票据利用

环境:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

mimikatz制作黄金票据:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

0x03 跨域黄金票据

普通的黄金票据不能跨域使用,需要添加sids参数即可从子域到父域。

域是根据Enterprise Admins组来实现权限划分,子域是没有这个组的,如果创建的黄金票据不包含Enterprise Admins组,则黄金票据不会向林中的其他域提供管理权限,所以要获取父域Enterprise Admins组sid。

跨域黄金票据利用

环境:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

获取父域Enterprise Admins组sid:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

制作跨域黄金票据:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

0x04 钻石票据

有一种比较常见的黄金票据检测方式是检测有没有对应AS-REQ的TGS-REQ。

这是一个黄金票据从制作到利用dcsync的数据包,可以看见是从TGS-REQ开始的。

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

而钻石票据从制作到利用dcsync的过程是有AS-REQ的,其中错误[BoundErrorUnreassembled Packet]是wireshark重组数据包问题导致的,使用ticketer.py制作钻石票据就没有这个错误,所以这里不影响。

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

钻石票据思路

钻石票据主要思路为:

    请求一个真实的TGT;

    解密其PAC;

    重新计算PAC签名,再加密它;

    得到一个与合法PAC高度相似的PAC。

该方法相对于黄金票据更为隐蔽,因为这是KDC创建的真实TGT,只是修改了PAC。

利用

环境:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

使用Rubeus

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

获取krbtgt的aes256密钥:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

获取目标用户的RID,SID最后一部分1000为RID:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

制作票据并进行dcsync:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

使用ticketer.py

制作票据:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

导入票据:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

对dc进行横向:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

0x05 蓝宝石票据

蓝宝石票据和钻石票据类似,差距在于PAC的创建方式,蓝宝石票据是获取一个真实的PAC再去替换原来的PAC,相对钻石票据更加隐蔽。

PAC获取

PAC获取涉及到U2U和S4U2Self。

U2U

用户到用户身份验证是Kerberos协议的扩展,其中一个用户充当服务器,另一个用户充当客户端;它允许用户在其桌面计算机(个人计算机)上托管安全的应用程序服务,且无需再磁盘上保留长期密钥即可运行服务器(如果是长期有效的srvtab密钥可能会有盗窃风险),用户短期TGS会话密钥代替了通常的srvtab密钥。

S4U2Self

S4U2Self是服务可以代表用户请求针对服务自身的Kerberos票据,获取用户的授权(可转发的用户TGS票据)。

U2U+S4U2Self

S4U2Self只能是服务使用,即需要SPN,但是结合U2U就可以使用户A(充当服务器方的用户)在没有SPN情况下使用S4U2Self,KDC就会返回代表用户B(充当客户端方的用户)请求针对用户A生成的票据,而这个票据里面含有目标用户B的PAC,这样就获取了目标的PAC。

利用

环境:

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

最好重新下载一个ticketer.py:

https://github.com/ShutdownRepo/impacket/blob/sapphire-tickets/examples/ticketer.py

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期
白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

参考

Kerberos篇-windows protocol (gitbook.io)

https://www.cnblogs.com/Yang34/p/14248737.html

https://www.thehacker.recipes/ad/movement/kerberos/forged-tickets/diamond

https://www.trustedsec.com/blog/a-diamond-in-the-ruff/

https://pgj11.com/posts/Diamond-And-Sapphire-Tickets/

https://unit42.paloaltonetworks.com/next-gen-kerberos-attacks

http://www.di-srv.unisa.it/~ads/corso-security/www/CORSO-0001/kerberos/ref/kerberos-faq.html#u2uauth

白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

长按二维码关注

D0g3

道格安全

原文始发于微信公众号(道格安全):白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月7日17:41:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   白银/黄金(跨域)/钻石/蓝宝石票据攻击复现 | 43 期https://cn-sec.com/archives/1972525.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息