当前位置: 首页 > news >正文

Kerberos认证以及黄金票据白银票据的简单介绍

目录

  • 1. 什么是Kerberos认证
  • 2. Kerberos认证流程
  • 3. 票据伪造
  • 4. 金票和银票的原理
  • 5. 金票和银票的区别
  • 6. 针对Kerberos的攻击


1. 什么是Kerberos认证


Kerberos是一种网络身份认证的协议,协议设计目的是通过使用秘钥加密技术为客户端/服务器应用程序提供强身份验证,保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证。

Kerberos协议的整个认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意的读取、修改和插入数据。简而言之,Kerberos作为一种可信任的第三方认证服务,通过传统的密码技术(共享密钥)执行认证服务。



2. Kerberos认证流程


在这里插入图片描述

相关名词解释:

  1. DC:Domain Controller,域控
  2. KDC:Key Distribution Center,秘钥分发中心。是一个网络服务,提供ticket和临时会话密钥
  3. AD:Account Database,账户数据库
  4. AS:Authentication Server,身份验证服务
  5. TGS:Ticket Granting Server,票据授予服务
  6. TGT:Ticket Granting Ticket,票据中心授予的票据先去AS身份验证服务,返回身份验证,带着身份验证去TGS拿票据,带着拿回来的票据去服务器
  7. Ticket:一个记录,客户用它来向服务器证明自己的身份,包括服务的主体名称、用户的主体名称、用户主机的ip地址、时间标记、会话密钥、定义票证生命周期的时间戳。



kerberos认证流程:

  1. 客户端请求TGT:客户端向KDC请求TGT(Ticket Granting Ticket)。
  2. KDC验证客户端:KDC首先检查TGT的有效性,然后提取客户端属性信息并与自身存储的信息比对。
  3. 客户端获取TGT:如果验证通过,KDC生成TGT并返回给客户端。
  4. 客户端请求服务票据:客户端使用TGT向TGS请求访问某个服务的票据。
  5. TGS生成服务票据:TGS验证TGT,生成服务票据并返回给客户端。
  6. 客户端访问服务:客户端使用服务票据访问目标服务。

3. 票据伪造


票据分为黄金票据和白银票据。
黄金票据是伪造TGT。伪造黄金票据必须拿到域控管理员的权限才可以。
伪造黄金票据的要求:

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



4. 金票和银票的原理


金票(黄金票据,Golden ticket):在 Kerberos 认证中,Client 通过 AS(身份认证服务)认证后,AS 会给 Client一个Logon Session Key 和 TGT,而 Logon Session Key 并不会保存在 KDC 中,krbtgt 的NTLM Hash 又是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造TGT 和 Logon Session Key 来进入下一步 Client 与 TGS 的交互。而已有了金票后,就跳过AS 验证,不用验证账户和密码,所以也不担心域管密码修改。

银票(白银票据,Sliver ticket):如果说黄金票据是伪造的 TGT,那么白银票据就是伪造的 ST。在 Kerberos 认证的第三步,Client 带着 ST 和Authenticator3 向 Server 上的某个服务进行请求,Server 接收到 Client 的请求之后,通过自己的 Master Key 解密 ST,从而获得Session Key。通过 Session Key 解密Authenticator3,进而验证对方的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪造的门票只对部分服务起作用。

5. 金票和银票的区别


获取方式不同,认证流程不同,加密方式不同。

  • 获取方式不同
    • 金票:伪造的TGT,可以获取任意Kerberos的访问权限
    • 银票:伪造的ST,只能访问指定的服务,如CIFS认证流程不同
  • 认证流程不同
    • 金票:同KDC交互,但不同AS交互
    • 银票:不同KDC交互,直接访问Server
  • 加密方式不同
    • 金票:由krbtgt NTLM Hash 加密
    • 银票:由服务账号 NTLM Hash 加密


6. 针对Kerberos的攻击


  1. 用户名爆破
  2. 密码喷洒和密码爆破
  3. Kerberoasting
  4. ASRepRoasting
  5. 黄金票据和白银票据
  6. MS14-068
  7. 非约束委派、约束委派、基于资源的约束委派
  8. 票据传递(ptt/ptk/ptc)
  9. mimikatz加密降级攻击(万能钥匙)
  10. 使用恶意的kerberos证书做权限维持



相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【其它-高效处理小技巧】如何批量备份263企业邮箱邮件之-如何查看.eml
  • C语言程序设计-练习篇
  • 深度优先搜索-放苹果
  • Python OpenCV 影像处理:影像轮廓
  • 详细阐述Android中的四种启动模式
  • 项目问题 | CentOS 7停止维护导致yum失效的解决办法
  • 前端数据存在什么地方,刷新页面之后依旧存在
  • 【数学建模备赛】Ep05:斯皮尔曼spearman相关系数
  • 尚硅谷Java面试题第四季-MySQL面试题
  • 关于武汉芯景科技有限公司的多协议收发芯片XJ526(第二篇RS422模式)开发指南(兼容SP526)
  • Java:循环练习
  • 开发指南054-选择人员
  • day35
  • LUOGU P2048 [NOI2010] 超级钢琴(贪心+堆)
  • vue elementPlus中使用dayjs
  • Docker容器管理
  • es的写入过程
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • MySQL用户中的%到底包不包括localhost?
  • node学习系列之简单文件上传
  • npx命令介绍
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • pdf文件如何在线转换为jpg图片
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 阿里云购买磁盘后挂载
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • - 概述 - 《设计模式(极简c++版)》
  • 聚簇索引和非聚簇索引
  • 模型微调
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 大数据全解:定义、价值及挑战
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • 移动端高清、多屏适配方案
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ‌移动管家手机智能控制汽车系统
  • #100天计划# 2013年9月29日
  • #13 yum、编译安装与sed命令的使用
  • #include<初见C语言之指针(5)>
  • #php的pecl工具#
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (42)STM32——LCD显示屏实验笔记
  • (待修改)PyG安装步骤
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (十一)图像的罗伯特梯度锐化
  • (五)Python 垃圾回收机制
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)JAVA中的堆栈
  • (转)ORM
  • (转)平衡树
  • (转载)Linux网络编程入门
  • ..回顾17,展望18
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器