IT资讯

三步轻松理解Kerberos协议

作者:admin 2021-06-25 我要评论

本文转载自微信公众号「Bypass」,作者Bypass。转载本文请联系Bypass公众号。 Kerberos是一种身份验证协议,它作为一种可信任的第三方认证服务,通过使用对称加...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

本文转载自微信公众号「Bypass」,作者Bypass。转载本文请联系Bypass公众号。

Kerberos是一种身份验证协议,它作为一种可信任的第三方认证服务,通过使用对称加密技术为客户端/服务器应用程序提供强身份验证。在域环境下,AD域使用Kerberos协议进行验证,熟悉和掌握Kerberos协议是学习域渗透的基础。

Kerberos协议中主要的三个角色:

  1. 1.访问服务的Client 
  2. 2.提供服务的Server 
  3. 3.KDC:密钥分发中心,默认安装在域控上 
  4.     AS:身份验证服务 
  5.     TGS:票证授予服务 

Kerberos协议认证过程:

协议可以分为三个步骤:一是获得票据许可票据,二是获取服务许可票据,三是获得服务。

第一步:获得票据许可票据

KRB_AS_REQ:用于向KDC请求TGT

当用户在客户端输入域用户和密码时,客户端将用户密码转换为hash作为加密密钥,对时间戳进行加密作为请求凭据。

cipher:加密的时间戳,即客户端的当前时间与用户的hash加密后的结果

KRB_AS_REQ 数据包如下:

KRB_AS_REP:用于通过KDC传递TGT

收到请求后,KDC从AD域数据库中找到对用用户的hash解密时间戳来验证用户身份。如果时间戳在允许的时间范围内,那么它就会生成一个会话密钥(Session key),以AS_REP 数据包进行响应。

AS_REP 包含信息:

  1. ticket:使用krbtgt hash加密,包含用户名/会话密钥和到期时间等信息. 
  2. enc-part:使用用户hash加密,包含会话密钥/TGT到期时间和随机数(防重放) 

KRB_AS_REP数据包如下:

第二步:获得服务许可票据

KRB_TGS_REQ:使用TGT向KDC请求TGS

客户端获得TGT和用户密钥加密的enc-part,使用用户hash解密enc-part获得会话密钥(Session key),然后使用会话密钥将用户名/时间戳进行加密,生成authenticator和TGT发送给TGS。

  1. ticket:实质上就是一张TGT,客户端没有 krbtgt hash,故无法解密TGT. 

KRB_TGS_REQ 数据包如下:

KRB_TGS_REP:通过KDC传递TGS

TGS 收到KRB_TGS_REQ请求后,使用 krbtgt hash解密ticket 获取会话密钥(Session key),然后使用会话密钥解密 authenticator 获取用户名和时间戳进行身份验证。确认信息后,创建一个服务会话密钥(Service Session key)。

ticket:使用对应的服务密钥进行加密,包含服务会话密钥/用户名/到期时间等信息,本质上就是一张ST(Service Ticket)。enc-part:包含使用会话密钥加密的服务会话密钥(Service Session key)

  1. ticket:使用对应的服务密钥进行加密,包含服务会话密钥/用户名/到期时间等信息,本质上就是一张ST(Service Ticket)。 
  2. enc-part:包含使用会话密钥加密的服务会话密钥(Service Session key) 

KRB_TGS_REP数据包如下:

第三步:获得服务

KRB_AP_REQ:使用TGS,服务对用户身份验证

客户端已经拥有了有效的TGS可以与服务进行交互,使用会话密钥解密 enc-part,得到 服务会话密钥(Service Session key),将用户名/时间戳等信息使用服务会话密钥(Service Session key)进行加密,得到新的Authentication。

KRB_AP_REP:由服务用来针对用户标识自身

服务端接收到请求,使用自己的hash解密TGS获得服务会话密钥(Service Session key)和授权用户信息,然后使用服务会话密钥解密Authentication,比对用户名和时间戳等信息,如果有相互验证标记,服务端使用服务会话密钥加密时间戳发给客户端,客户端解密时间戳验证服务端,然后开始请求服务。


本文转载自网络,原文链接:https://mp.weixin.qq.com/s/HuBQ67FOlAXs_2XUYnhTxw

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 三步轻松理解Kerberos协议

    三步轻松理解Kerberos协议

  • 手机App无授权就能监听电话 成功率高达

    手机App无授权就能监听电话 成功率高达

  • 如何实现Nodejs进程间通信

    如何实现Nodejs进程间通信

  • 不用担忧,明日5G或是“今日高铁”

    不用担忧,明日5G或是“今日高铁”

腾讯云代理商
海外云服务器