首页 > 其他分享 >kerberos协议

kerberos协议

时间:2023-12-30 23:22:53浏览次数:33  
标签:协议 HASH TGS kerberos SERVER SESSIONKEY Msg CLIENT

内网认证-kerberos

krbtgt用户:这个用户是创建域时系统自动创建的一个账户,它是KDC的服务账户,其密码是系统随机创建,该账户无法正常登录主机。

身份认证请求

1.Client向域控发起身份认证请求,请求包含了用户名。域控的KDC的AS查询AD数据库,找到对应用户的NTLM HASH。

2.AS响应两个消息

Msg A:用该用户的NTLM HASH加密一个复杂的字符串作为CLIENT / TGS SESSIONKEY(这个CLIENT / TGS SESSIONKEY有两份,一份在Msg A给了CLIENT 一份给了TGS)

Msg B:使用TGS密钥加密的TGT,TGS密钥就是krbtgt的NTLM HASH。(客户端没有TGS密钥。所以其无法修改TGT)

TGT包含了:
CLIENT / TGS SESSIONKEY
CLIENT ID
票据有效时间
CLIENT 地址

3.Client收到AS的响应,使用自己的NTLM HASH(Client KEY)解密Msg A得到CLIENT / TGS SESSIONKEY的明文。

在用户登录时,机器会根据其输入的密码生成NTLM HASH,如果输入密码正确,那么这里CLIENT的NTLM HASH和域控的AS用来加密CLIENT / TGS SESSIONKEY的NTLM HASH是一样的。

服务授权请求

1.CLIENT请求访问某个服务,生成两个消息

Msg C:请求服务ID+之前收到的TGT

Msg D:使用CLIENT / TGS SESSIONKEY加密的身份认证信息(包括了CLIENT ID+时间范围)

2.KDC收到请求,先用krbtgt NTLM HASH解密TGT。得到CLIENT / TGS SESSIONKEY,再使用CLIENT / TGS SESSIONKEY解密Msg D。对比TGT和解密的Msg D中的CLIENT ID、有效时间。

3.对比一致则响应服务票据给CLIENT,响应包括:

Msg E:SERVICE密钥(服务器的NTLM HASH)加密的CLIENT-TO-SERVER TICKET(允许访问服务的票据)

CLIENT-TO-SERVER TICKET包括:
CLIENT / SERVER SESSIONKEY
CLIENT 地址
Ticket有效时间
CLIENT ID

Msg F:使用CLIENT / TGS SESSIONKEY加密的CLIENT / SERVER SESSIONKEY

4.上面说了CLIENT可以用自己的NTLM HASH解密得到CLIENT / TGS SESSIONKEY,所以这里可以用CLIENT / TGS SESSIONKEY解密得到CLIENT / SERVER SESSIONKEY。但是服务访问票据无法解密(因为没有SERVICE KEY,无法更改)

发送服务请求

1.CLIENT向SERVER发送的请求消息包括:

之前从域控那得到的Msg E

Msg G:CLIENT / SERVER SESSIONKEY加密的身份认证信息(包括CLIENT ID和时间范围)

2.SERVER收到请求后,先用SERVICE KEY解密Msg E得到CLIENT / SERVER SESSIONKEY,再用CLIENT / SERVER SESSIONKEY解密Msg G,对比解密Msg E和 Msg G中的到的CLIENT ID,如果一致则响应

3.SERVER响应:

Msg H:包含CLIENT / SERVER SESSIONKEY加密的时间范围

4.CLIENT使用CLIENT / SERVER SESSIONKEY解密Msg H,确保时间范围和之前发出去的Msg G中的时间范围一致。

从上述流程来看,获取了krbtgt的NTLM HASH就可以伪造TGT,修改里面的CLIENT / TGS SESSIONKEY,这样伪造的Msg D(也就是服务授权请求的身份认证信息)就可以骗过KDC,也就是伪造黄金票据。

而获取了SERVICE NTLM HASH就可以伪造CLIENT-TO-SERVER TICKET;并可以修改CLIENT / SERVICE SESSIONKEY,这样伪造的Msg G(也就是服务请求时的身份认证信息)就可以骗过SERVER,也就是伪造了白银票据。

学习自

https://ares-x.com/2020/03/17/域渗透学习(二)Kerberos协议/

标签:协议,HASH,TGS,kerberos,SERVER,SESSIONKEY,Msg,CLIENT
From: https://www.cnblogs.com/q1stop/p/17937036

相关文章

  • HTTP协议安全头部的笔记
    本文于2016年3月完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。近日项目组对当前开发、维护的Web系统做了AppScan扫描,扫描的结果惨不忍睹,问题很多。报告中报到“缺乏HTTP安全头部”。之前对HTTP协议的安全头部了解不......
  • HTTP协议安全头部X-Content-Type-Options引入的问题
    本文于2016年4月完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。前段时间测试MM反馈了一个问题,在富文本编辑器里上传的图片无法正常呈现。因为Jackie在本机的环境上没有观察类似的现象,而恰好那天测试环境的某个重要配......
  • UDP协议 和 TCP协议
    1. UDP协议 1.1 概述用户数据包协议UDP(UserDatagramProtocol),提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),数据传输单位为用户数据包。无连接:不需要建立连接,也不需要释放连接,减少了开销和发送数据的时延。最大努力的数据传输服务:不保证数据传输的可靠性,没......
  • 关于开源协议的介绍
    关于开源协议的介绍写这篇文章主要是源于Gitee中的某个开源项目,此项目有90多K的Star,开源协议用的是MIT。笔者在README.md中又看到作者声明代码开源且未来和现在没有商业版本,继而点开项目文档,有趣的事情来了,开源项目的文档要收费(有的开源项目在查看文档的时候会要求点Star),笔者无......
  • steam 登录 Protobuf 协议详解
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者......
  • grpc是基于http/2协议的高性能的rpc框架
    师傅领进门,修行在个人,跟着官方脚手架demo了grpc后,之后就需要扩展前后知识边界,下面总结grpc的前世今生和最佳实践。https://www.cnblogs.com/JulianHuang/p/14441952.htmlgrpc是基于http/2协议的高性能的rpc框架为什么已经有http?还需要grpc?八股文都说grpc是基于http2的rpc框......
  • 19 I2C通信协议原理
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述我们知道I2C总线具备广泛的用途,比如寄存器的配置,EEPROM的使用,更重要的是I2C总线上可以挂载非常多的外......
  • 13 SPI通信协议原理
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MILIANKE)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述SPI是一种串行总线接口,也是各类嵌入式设备以及FPGA应用开发中常用的一种串行通信接口。SPI的接口速度......
  • windows 创建自定义url协议 通过浏览器打开cmd
    打开regedit注册表编辑器找到HKEY_CLASSES_ROOT新建如下目录 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------......
  • HTTP-FLV协议 抓包分析详解
    实现实际就是利用了HTTP的分块传输,发送FLV数据,服务器无法知道流长度,所以不会填写Content-Length字段而是携带Transfer-Encoding:chunked字段,这样客户端就会一直接受数据了。分块传输编码规则下面我们来看一下分块传输的编码规则,其实也很简单,同样采用了明文的方式,很类似响应头。每......