前言

Kerberos协议是一种网络认证协议,其设计目标是通过密钥系统为客户/服务器应用程序提供强大的认证服务。在令牌窃取攻击中,该攻击的核心就是Kerberos协议。Kerberos协议要解决的实际上就是一个身份认证的问题,顾名思义,当一个客户机去访问一个服务器的某服务时,服务器如何判断该客户机是否有权限来访问本服务器上的服务,同时保证在该过程中的通讯内容即便被拦截或者被篡改也不影响整个通讯的安全性

概念说明

先来简要说明几个主要的名词

(1)Client:访问服务的客户机

(2)Server:提供服务的服务器

(3)KDC(Key Distribution Center):密钥分发中心 

(4)KDC中分成两个部分:Authentication Service和Ticket Granting Service
    Authentication Service(AS):身份验证服务
    Ticket Granting Service(TGS):票据授予服务

    AS和TGS如下:

    Authentication Service:AS的作用就是验证Client端的身份,验证通过之后,AS就会给TGT票据(Ticket Granting Ticket)给Client.
    Ticket-granting cookie(TGC):存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,是CAS Server用来明确用户身份的凭证。TGT封装了TGC值以及此Cookie值对应的用户信息.
    Ticket-granting ticket(TGT):TGT对象的ID就是TGC的值,在服务器端,通过TGC查询TGT.


    Ticket Granting Service(TGS):TGS的作用是通过AS发送给Client的TGT换取访问Server端的ST(Server Ticket)给Client.
    SEerver Ticket(ST):ST服务票据,由TGS服务发布.


(5)Active Directory(AD):活动目录

(6)Domain Controller(DC):域控制器

(7)Ticket-granting cookie(TGC):存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,是CAS Server用来明确用户身份的凭证。TGT封装了TGC值以及此Cookie值对应的用户信息.

(8)Ticket-granting ticket(TGT):TGT对象的ID就是TGC的值,在服务器端,通过TGC查询TGT.

认证过程

Kerberos认证的过程形象地比喻如下:

疫情期间,小明去拿一个重要包裹,由于包裹是来自海外的,所以需要严格登记:
(1)拿包裹的时候,为了证明自己是合法公民,小明先把身份证给工作人员
(2)快递点的身份认证系统通过身份认证后,给小明一张身份认证通过证明
(3)小明拿着身份认证通过证明,来到快递收发处等一张拿快递的号码牌
(4)售票处给了张号码牌
(5)小明拿着号码牌拿快递去了
(6)在拿快递时,小明拿出自己的身份认证材料给快递点的工作人员,工作人员向快递公司的数据管理中心发了消息,问问小明是不是有包裹要拿
(7)数据管理中心将小明的快递单号,身份信息等发了过来
(8)工作人员将数据管理中心发来的信息与小明给的材料对比,得出小明是好公民,有一个重要包裹,于是带着小明来到仓库的金库,把装有老魔杖的包裹给了小明

Kerboeros协议认证过程中,会用到两个基础认证模块,分别是AS_REQ&AS_REPTGS_REQ&TGS_REP,以及在认证过程中可能会使用到的S4UPAC这两个认证模块。

使用wireshark抓包得到数据包,PS:在抓包的时候,先用mimikatz将机器中的票据清除

域控:10.10.10.10(windows server 2008 R2)

域成员:10.10.10.80(windows 7)

域用户账号密码:hunter1/1qaz@WSX

Kerberos认证中有两个问题

(1)AS如何验证Client的身份?
    AS与Client之间的认证使用AS_REQ&AS_REP模块 
(2)Client如何获取ST?
    Client与TGS之间认证使用TGS_REQ&TGS_REP模块

因为kerberos协议的实现,需要三方的参与,分别如下:

1.client 访问服务的客户机
2.Server 提供服务的服务器
3.KDC(Key Distribution Center) 密钥分发中心 
    KDC服务会默认安装在一个域的域控中,所以可以直接理解为,AD与KDC均为域控制器,KDC服务框架中包含一个KRBTGT账户,它是在创建域时系统自动创建的一个账号。
点击收藏 | 2 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖