内网渗透--Kerberos协议详解

本文详细介绍了Kerberos协议的认证流程,包括客户端、服务器和密钥分发中心的角色,以及AS-REQ、AS-REP、TGS-REQ和TGS-REP数据包的分析。同时讨论了协议可能面临的安全问题,如PTH攻击、PTK攻击等。
摘要由CSDN通过智能技术生成

基础知识

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

Kerberos协议角色组成:

  • 客户端:发送请求的一方
  • 服务端:接收请求的一方
  • 密钥分发中心(KDC):由AS(认证服务器)和TGS(票据授权服务器)组成

认证流程

1.首先用户把身份信息发送给KDC,身份信息内容如下:

92af10b71e444ddf98962d1ac03231b4.png

2.KDC中的AS模块来校验用户身份信息,并返回TGT信息,TGT信息如下:

3c56545bfe2c47bc8a7e06fd8d1df1b4.png

3.用户拿到TGT后会进行解密,但是只能解密上半部分(因为krbtgt用户没有),然后进行封装,发送给TGS

363e1a3dcbd4468c8d5a306a39f5cb9c.png

4.TGS验证TGT后,就会给用户发送ST

55f8087e651f497ba604dfbd8267cb0d.png

5.客户端收到TGS发送的ST之后,对其进行解密,并重新封装,发送给服务端

2731f847ce0e4b9580b270fdf2edd1f7.png

6.服务端收到ST后进行解密

数据包分析

环境准备

两台域内主机(Windows server 2019和Windows server 2003 R2),两台域内主机以及域控之间都要相互ping通才可以,不然后面有些操作会报错,还需要一个票据生成工具--kekeo。

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

AS-REQ:提供身份信息的数据包

AS-REP:发送TGT的数据包

首先进到kekeo的文件目录下

8c611d40136d4f8e8e0b10583cc38ee5.png

 使用命令去请求一张TGT(tgt::ask /user:用户名 /domain:域名 /password:密码)

a8997f162d534ad39389722c1a86ee54.png

 就会看到对应的文件目录下,已经有刚刚请求的TGT了fd2b63131aa142e18bb22e37f606311c.png

 使用wireshark抓包,就可以看到AS-REQ和AS-REP数据包

345c082a99b94a6ab25ffe93c2e45f8c.png

 

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

  • PA-DATA pA-ENC-TIMESTAMP使用用户的hash(这里可能会产生PTH攻击),或者AES key(这里可能会产生PTK攻击)加密时间戳生成value

078441563fc04071bcbe3df58741774e.png

  • PA-DATA pA-PAC-REQUEST,是否包含了PAC

148bbce41c454e759314787ce281ff32.png

  • kdc-option协商字段
  • cname请求的用户名
  • realm:域名
  • sname:请求的服务名

691540236eea42ca94f2791fa64738dd.png

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

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

69cf4071cb4b4fc3b2961fc53f8de42a.png

该信息是使用krbtgt的Hash进行加密的,用户不能解密

5229796ba92b4ba28d19990b51a5bebb.png

该信息是使用用户的Hash进行加密的,用户可以解密

fc7bcf0f341648ac9e5d7f8038850da2.png

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

TGS-REQ:客户端发送给TGS数据包

TGS-REP:TGS发送给客户端数据包

同样的这里使用kekeo工具,请求票据

eec8a468acbf45b296d95700dff6b774.png

9bc82b5c98714aa18cbcd9adb46710a5.png

 使用wireshark抓包可以看到有TGS-REQ和TGS-REP数据包

1832d541ae854a4e89402b628a6a2a0c.png

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

  • authenticator:使用CT-SK加密内容
  • ticket:原始的TGT使用krbtgt加密
  • cname:请求用户名
  • sname:请求服务名

ticket里面的enc-part就是使用krbtgt的hash加密的内容

4dad02b093084f3d93f86d149fd28aff.png

 

TGS-REP:TGS发送给客户端数据包,主要内容如下:

  • ticket内容
  • enc-part:ticket中的part是使用服务密钥加密的内容
  • enc-part:外层的part是使用CT_SK加密的

4009616109344b559edc1295cff10e01.png

12a0d37a2eac4746ad3aa38b03fda9de.png

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

AP-REQ:是客户端发送ST到服务端的数据

AP-REP:是服务端发送到客户端的数据(这个包是可选的)

但是这里去申请票据的时候需要注意,要使用administrator域管的账号进行申请票据,不然申请到的票据权限还不能访问到对方电脑

先把之前的票据缓存清楚

1634efdefa6a47daa4e49ee828cdfcd4.png

 使用一下命令申请票据,并将它注入内存(注入内存的票据是不显示在相关文件目录下的)8b358d856a654078a55c9e5ab6a81bba.png

 远程访问ls电脑

3f7dee0069d64229af498311f52813bb.png

 AP-REQ数据包内容:be5300b8c85147f0b0944c49ad807eda.png

 AP-REP数据包内容:

26f414d8490548ff8e73eb5f44b2bd33.png

Kerberos协议安全问题

  • AS-REQ:PTH攻击、PTK攻击、域内用户枚举、喷洒攻击(暴破密码)
  • AS-REP:黄金票据、Roasting攻击
  • TGS-REP:白银票据、Kerberoasting
  • Kerberos扩展协议:委派、Kerberos bronze bit

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值