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

news2024/11/25 20:51:00

目录

  • 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地址、时间标记、会话密钥、定义票证生命周期的时间戳。



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证书做权限维持



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

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

相关文章

【vue3|第24期】深入了解useRouter:方法、属性与使用示例

日期:2024年8月20日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…

安装CUDA、CUDNN、pytorch

2.1 安装CUDA 2.1.1找到CUDA的版本号 2.1.1.1 屏幕的左下角,找到NVIDIA控制面板的图标,如下图所示: 图2.1.1.1 NVIDIA控制面板图标 2.1.1.2 打开NVIDIA控制面板,找到系统信息,如下图所示: 图2.1.1.2 系…

Qt中英文支持

目的 就是想让QT编的软件支持中英文。 情况 1、首先配置项目的pro文件: 这样就会生成相应的翻译配置文件,当前是: translate1_cn.ts:中文的配置文件,因为一般默认就是中文,所以一般中文的翻译文件是不需…

GPT的token是怎么计算的

百花齐放的AI模型 自从ChatGPT横空出世 计算机进入了AI时代 国内也诞生了不少优秀的替代品 讯飞系、通义系、文心等等 国内排名最高的阿里通义 720亿参数的模型Qwen-72B 力压Llama 2等国内外开源大模型 登顶Hugging Face的开源大模型排行榜首 包括C-Eval、CMMLU、Gaok…

electron-vite封装UI级的消息提示

说明 Electron Vite Vue3 Element Plus Electron中写提示有两种方案: 系统级:electron带的dialog相关APIUI级:UI框架内部的提示,如ElMessage、ElMessageBox、ElNotification等 今天来封装一下UI级别的提示 代码 效果图 源…

tomcat利用 nginx 反向代理

利用 nginx 反向代理功能,实现图中的代理功能,将用户请求全部转发至指定的同一个 tomcat 主机 利用 nginx 指令 proxy_pass 可以向后端服务器转发请求报文 , 并且在转发时会保留客户端的请求报文中的 host首部 实现 tomcat 中的负载均衡 动态服务器的…

day6JS-DOM(文档对象模型)

DOM树 DOM 操作 1. 获取元素 1.1 根据id名获取元素 document.getElementById("id名"); 案例&#xff1a; <body><div id"box">div盒子</div><h1>一级标题</h1><script>console.log(document.getElementById(&quo…

软件测试费用怎么算?湖南软件测评公司简析

随着信息技术的迅猛发展&#xff0c;软件在各行各业中的应用日益广泛&#xff0c;软件测试的重要性愈加凸显。特别是对于各种规模的企业&#xff0c;确保软件质量和安全性不仅是提升竞争力的关键因素&#xff0c;更是维护用户信赖的基础。 软件测试作为软件开发过程中的关键环…

IO进程线程8月21日

1&#xff0c;思维导图 2&#xff0c;登录 #ifndef __LOG_H__ #define __LOG_H__ #include<myhead.h> typedef struct {char name[20];char pwd[20]; }str;int regist();int login(); #endif#include"log.h" int login() {char a[20]"\n";str p,s;…

IPC进程间通信方式及网络通信

一、IPC进程间通信方式 1.共享内存&#xff08;最高效的进程间通信方式&#xff09; 其允许两个或多个进程共享一个给定的存储区&#xff0c;这一段存储区可以被两个或以上的进程映射至自己的地址空间中&#xff0c;一个进程写入共享内存的信息&#xff0c;可以被其他使用这个…

SQL Server数据库查询常用语句汇总

这里&#xff0c;汇总了在使用SQL Server数据库的过程中经常会写的查询语句。 情形1 根据时间查询最新一条数据 &#xff08;dtime类型为datetime&#xff09; select top 1 名称 as name,列名1 as parname1,列名2 as parname2,dtime,col1,col2 from demo order by dtime …

算法基础及例题

1、双指针 维护区间信息、子序列匹配、利用序列有序性、单项链表找环双指针 - OI Wiki (oi-wiki.org) 盛最多水的容器https://leetcode.cn/problems/container-with-most-water/ public class Solution {public int maxArea(int[] height) {int l 0, r height.length - 1;int…

docker 导出导入镜像

这两天我在自己的虚拟机器上想docker pull tomcat 但是一直失败&#xff0c;那么我想到了一个思路就是在阿里云上的服务器上把镜像打包&#xff0c;然后倒导入的本地的虚拟机上。 查看当前的镜像&#xff1a; 我们现在想要打包哪个镜像呢&#xff0c;比如打包&#xff1a;tom…

线段树-点修区查

翻博客的时候突然发现线段树好像一个没有&#xff0c;我就准备把线段树给讲一下 分三个章节 点修区查 区修区查 区修区查&#xff08;带乘法&#xff09; 今天这一章比较简单&#xff0c;最多就区查稍微要动一点脑子 题目简介 输入n和m&#xff0c;n代表数的个数&#x…

python多进程multiprocessing(共享字典)

一&#xff0c;线程与进程的区别 纲领&#xff1a;进程是资源分配的最小单位&#xff0c;线程是CPU调度的最小单位 听老师傅说&#xff0c;在python上线程作用不大&#xff0c;最好还是使用多进程。 二&#xff0c;简单使用multiprocessing 检测一下电脑性能如何&#xff1a…

Mac电脑遇到DNS解析失败,ip可以访问,域名无法访问

当Mac电脑遇到DNS解析失败的问题时&#xff0c;可以尝试以下几个解决方法‌&#xff1a; 1.检查网络连接‌&#xff1a;确保Mac已连接到可用的网络&#xff0c;并且网络连接正常。可以尝试重新连接Wi-Fi或使用有线连接来排除网络问题。 2.清除DNS缓存‌&#xff1a;打开终端应…

技术革新,智能恢复:2024年AI驱动的数据恢复软件

数据的脆弱性不容忽视&#xff0c;误删、格式化、硬盘损坏等意外情况时有发生&#xff0c;让我们面临数据丢失的风险。幸运的是现在有不少数据恢复精灵应运而生。今天&#xff0c;就让我们一起探索2024年大家都在用的数据恢复精灵工具。 1.福昕数据恢复 链接直达&#xff1a;…

项目控件组(基于项)Item-Based-Qt-思维导图-学习笔记

项目控件组&#xff08;基于项&#xff09;Item-Based 控件组 &#xff08;1&#xff09;List Widget:清单控件 QListWidget 控件简介 继承关系&#xff1a;继承自 QListView 功能&#xff1a;提供一个基于项的列表小部件&#xff0c;允许添加和删除项目&#xff0c;使用内部…

springboot的启动流程原理

目录 一:入口简介: 二。创建SpringApplication对象 1.推倒出当前项目的启动类型 2.设置Initializer初始化器 3.初始化Listerner监听器 4.反推出main方法所在的class对象。 三.运行SpringApplication#run(java.lang.String...)方法 1):获取运行监听器: 2)发布启动过程中…

IPC进程通信以及网络通信

一、IPC 进程间通信方式 共享内存 //最高效的进程间通信方式 不需要把用户的东西再复制到内核 他们与内核进行绑定 共享内存&#xff1a; 1、是一块&#xff0c;内核预留的空间 2、最高效的通信方式 //避免了用户空间到内核空间的数据拷贝 IPC通信方式 ---操作流程类似的…