掌握Kerberos协议:深入了解Windows域的认证和安全性

admin 2023年10月14日15:28:08评论59 views字数 3304阅读11分0秒阅读模式

掌握Kerberos协议:深入了解Windows域的认证和安全性

点击箭头处“蓝色字”,关注我们哦!!


Kerberos协议简介

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的

掌握Kerberos协议:深入了解Windows域的认证和安全性

kerberos协议角色组成



kerberos协议中也存在三个角色,分别是客户端、服务端、密钥分发中心。

1、客户端(client):发送请求的一方

2、服务端(Server):接收请求的一方

3、密钥分发中心(Key Distribution Center,KDC),而密钥分发中心一般又分为两部分,分别是:

AS(Authentication Server):认证服务器,专门用来认证客户端的身份并发放客户用于访问TGS的TGT(票据授予票据)

TGS(Ticket Granting Ticket):票据授予服务器,用来发放整个认证过程以及客户端访问服务端时所需的服务授予票据(Ticket)

掌握Kerberos协议:深入了解Windows域的认证和安全性

kerberos协议认证流程



在传统的网络认证中,机器之间无法自证其身份,这会导致安全隐患。为了解决这个问题,Kerberos认证系统通过引入密钥分发中心(KDC),确保了网络中机器和用户的身份可信度,提高了网络安全性。

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

密钥分发中心(KDC)需要完成两个工作过程,一是AS,二是TGS。

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

kerberos协议认证大概流程:



第一步:客户端拿着身份证去AS认证,认证通过后返回一张去卖票窗口买票的票(TGT)

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

第二步:客户端拿着TGT去卖票窗口(TGS)买一张去服务端的票

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

第三步:客户端拿着ST去服务端



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

在计算机中具体实现kerberos认证流程图:

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

kerberos协议认证通信原理



客户端和AS通信原理

第一步:客户端拿着身份证去AS认证,认证通过后返回一张去卖票窗口买票的票(TGT)

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

提供身份信息的数据包是AS-REQ(AS-requests)。发送TGT的数据包是AS-REP(AS-response)当用户收到TGT时候对TGT进行解密

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

AS-REQ和AS-REP数据包分析



提供身份信息,这里使用kekeo进行申请TGT,并且使用wireshark进行抓包分析,本次实验如下:

[object HTMLImageElement]

Kekeo工具是用来进行kerberos攻击的工具,申请TGT票据命令:Tgt::ask /user:域用户 /domain:域名 /password:密码

在A的机器上输入Tgt::ask /user:ww /domain:xstark.sec /password:Admin1234,申请到ww用户TGT的票据

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

使用wireshark抓取AS-REQ和AS-REP数据包

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

AS-REQ(AS-requests):主要包含了用户的一些信息,是由客户端发送给AS的数据包。里面有几个重要信息

1、 PA-DATA pA-ENC-TIMESTAMP 使用用户的hash,作为key加密时间戳 生成value PA-DATA pA-PAC-REQUEST,是否包含了PAC

掌握Kerberos协议:深入了解Windows域的认证和安全性

2、 kdc-options 协商字段



掌握Kerberos协议:深入了解Windows域的认证和安全性

3、 cname 请求的用户名



掌握Kerberos协议:深入了解Windows域的认证和安全性

5、 realm: 域名



掌握Kerberos协议:深入了解Windows域的认证和安全性

6、 sname 请求的服务名



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

AS-REP(AS-Response):当KDC收到AS-REQ之后解密PA-DATA pA-ENC-TIMESTAMP 如果成功就返回AS-REP

1、enc-part:TGT中由KRBTGT哈希值加密部分

2、enc-part:TGT中由用户哈希值加密部分

掌握Kerberos协议:深入了解Windows域的认证和安全性

AS发过来的TGT模型图:



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

查看具体数据包由KRBTGT hash和客户端 hash加密的两部分位置:

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端和TGS通信原理



第二步:客户端拿着TGT去卖票窗口(TGS)买一张去服务端的票

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端用户解密后重新封装TGT票据发送给TGS,TGS再封装成ST票据发送给客户端

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

TGS-REQ和TGS-REP数据包分析



使用Kekeo工具来申请ST票据,请求命令:tgs::ask /tgt:tgt票据 /service:服务名/域名地址

然后在A的机器上输入Tgs:ask /tgt:[email protected][email protected] /service:cifs/B-PC.xstark.sec,申请到B-PC机器ST的票据。

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

使用wireshark抓取TGS-REQ和TGS-REP数据包

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

TGS-REQ:客户端发送给TGS数据包,其中包含大体如下:

1、authenticator:使用CT_SK加密内容

2、ticket:原始的TGT使用krbtgt加密

掌握Kerberos协议:深入了解Windows域的认证和安全性

3、cname:请求用户名



掌握Kerberos协议:深入了解Windows域的认证和安全性

4、sname:请求服务名



掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端解密重新封装TGT模型图:



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

查看数据包使用krbtgt加密部分值和AS-REP由KRBTGT hash加密值是一致的

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

TGS-REP :TGS发送给客户端其中包含大体如下,

掌握Kerberos协议:深入了解Windows域的认证和安全性

1、ticket:内容



2、enc-part:ticket中的part是使用server hash加密内容

3、enc-part:外层的part是使用CT_SK加密

掌握Kerberos协议:深入了解Windows域的认证和安全性

TGS封装ST给客户端模型图:



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

查看具体数据包重新使用CT_SK加密和使用server hash(B-PC机器hash)加密的两部分位置:

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端和服务端通信原理



掌握Kerberos协议:深入了解Windows域的认证和安全性

第三步:客户端拿着ST票据去服务端



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端收到TGS发送的ST票据之后,使用CT_SK对其进行解密,得到CS_SK进行加密,重新封装ST票据。

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

服务端收到ST票据之后,先使用本机的机器用户HASH值解密ST得到 CS_SK ,再拿着CS_SK解密第一部分得到相关信息,进行对比后成功访问建立信任

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

AP-REQ和AP-REP数据包分析



提供身份信息,这里使用kekeo进行申请TGT和ST,并且使用wireshark进行抓包分析,本次实验如下:

[object HTMLImageElement]

在A-PC机器通过kekeo工具使用administrator域管的账号进行申请票据,因为如果是使用的ZS或者WW的账号,就算票据申请了,也是没有权限访问B-PC电脑的。

申请域管账号的TGT票据:Tgt::ask /user:administrator /domain:xstark /password:Admin1234

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

申请ST票据并且注入到内存:



tgs::ask /tgt:[email protected][email protected] /service:cifs/b-pc.xstark.sec /ptt

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

ST票据已注入内存,通过klist命令查看Kerberos 票证信息:

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

查看b-pc机器上c盘目录:dir \b-pc.xstark.secC$

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

使用wireshark抓取AP-REQ和AP-REP数据包分析

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

AP-REQ:是客户端发送给服务端的数据包里面包含了ST信息

1、ticket:里面包含了使用服务端hash加密的内容

2、authenticator:包含了使用CS_SK加密内容

掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端重新封装ST模型图:



掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

客户端收到TGS发送的ST票据之后,使用CT_SK对其进行解密,得到CS_SK进行加密,重新封装ST票据。

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

AP-REP,是服务端发送给客户端的信息,包含了客户端验证服务端的信息

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

服务端收到ST票据后,先使用本机的机器用户HASH值解密ST得到 CS_SK ,再拿着CS_SK解密第一部分得到相关信息,进行对比后成功访问建立信任

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性

掌握Kerberos协议:深入了解Windows域的认证和安全性

kerberos协议安全问题



黄金票据:伪造的TGT,可以获取任意Kerberos的访问权限,伪造过程需要语KDC交互,不需要与AS交互,使用krbtgt NTLM Hash 加密

白银票据:伪造的ST,只能访问指定的服务,如CIFS,伪造过程不需要KDC交互,可以直接访问Server,使用服务账号 NTLM Hash 加密

掌握Kerberos协议:深入了解Windows域的认证和安全性


掌握Kerberos协议:深入了解Windows域的认证和安全性



原文始发于微信公众号(轩公子谈技术):掌握Kerberos协议:深入了解Windows域的认证和安全性

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月14日15:28:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   掌握Kerberos协议:深入了解Windows域的认证和安全性http://cn-sec.com/archives/2111186.html

发表评论

匿名网友 填写信息