简述

在TGS_REQ & TGS_REP阶段,用户通过AS_REP拿到的TGT票据,去向KDC申请特定服务的访问权限,KDC校验TGT票据,如果校验通过的话,会向用户发送一个TGS票据,之后用户再拿着TGS去访问特定的服务。

TGS_REQ

TGS_REQ这个阶段不需要账号密码,需要AS_REP获取到的TGT凭据,进行本阶段的访问认证。
发送TGS-REQ请求,获取针对某个服务主体(service principal)的服务票据(TGS)。服务主体由SPN(service principal name,服务主体名称)来表示。

TGS_REP

ticket 部分
这个ticket用于AP_REQ的认证。ticket 内的加密部分是使用要访问服务的hash加密的,因此如果我们获得了对应服务的hash即可进行伪造该ticket,称为白银票据,正因为是使用要请求的服务的hash加密的,所以我们可以通过爆破enc_part获得该服务的hash,该问题被称为kerberoasting。

enc_part
在学习过程中,仔细阅读到这部分的内容解答了我之前的一个疑惑,既为什么伪装黄金票据时不需要对session_key进行构造之类的问题。

首先注意一下这个ticket问题,注意,这个enc_part不是ticket里面的enc_part。
这部分是可以解密的==,key是上一轮AS_REP里面返回的session_key,也就是导入凭据里面的 session_key,==解密后得到encryptionkey,encryptionkey这个结构里面最重要的字段也是session_key(但是这个session_key 不同于上一轮里面的session_key),用来作为作为下阶段的认证密钥。

PAC

PAC是是微软为了访问控制而引进的一个扩展,在访问流程中,PAC解决的是用户若是没有权限访问相关服务的问题,在最后服务会拿着PAC去验证是否让用户进行访问(参考kereros认证基础);
1、用户向KDC发起AS_REQ,请求凭据是用户hash加密的时间戳,KDC使用用户hash进行解密,如果结果正确返回用krbtgt hash加密的TGT票据,TGT里面包含PAC,PAC包含用户的sid,用户所在的组,后续PAC将一直存在在票据中。

2、户凭借TGT票据向KDC发起针对特定服务的TGS_REQ请求,KDC使用krbtgt hash进行解密,如果结果正确,就返回用服务hash 加密的TGS票据(这一步不管用户有没有访问服务的权限,只要TGT正确,就返回TGS票据,这也是kerberoating能利用的原因,任何一个用户,只要hash正确,可以请求域内任何一个服务的TGS票据

3、用户拿着TGS票据去请求服务,服务使用自己的hash解密TGS票据。如果解密正确,就拿着PAC去KDC那边询问用户有没有访问权限,域控解密PAC。获取用户的sid,以及所在的组,再判断用户是否有访问服务的权限,有访问权限(有些服务并没有验证PAC这一步,这也是白银票据能成功的前提,因为就算拥有用户hash,可以制作TGS,也不能制作PAC,PAC当然也验证不成功,但是有些服务不去验证PAC,这是白银票据成功的前提)就允许用户访问

注释

关于 SPN
SPN 是服务在使用 Kerberos 身份验证的网络上的唯一标识符。 它包含一个服务类、一个主机名,有时也包含一个端口。 HTTP SPN 不需要端口。 在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户(如 NetworkService 或 LocalSystem)或用户帐户下为服务器注册 SPN。 对于内置帐户,SPN 将自动进行注册。 但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。

实验部分

待补充

参考

https://www.jianshu.com/p/17ad0aa73755
https://daiker.gitbook.io/windows-protocol/kerberos/2
https://blog.csdn.net/qq_18501087/article/details/102831053
https://www.anquanke.com/post/id/200680
https://docs.microsoft.com/zh-cn/sql/reporting-services/report-server/register-a-service-principal-name-spn-for-a-report-server?view=sql-server-ver15

kerberos 之TGS_REQ、TGS_REP相关推荐

  1. 全网最详细 | Kerberos协议详解

    目录 Kerberos基础 PAC特权属性证书 1. PAC结构 2. PAC凭证信息 3. PAC签名 4. KDC验证PAC 5. PAC在kerberos中的优缺点 Kerberos实验 AS- ...

  2. 域渗透 | kerberos认证及过程中产生的攻击

    前言 Windows认证一般包括本地认证(NTLM HASH)和域认证(kerberos). 认证的原理网上有很多文章.如果喜欢听视频课程的话,这里推荐倾旋师傅的分享课 https://www.bil ...

  3. Kerberos域认证简述

    Kerberos是一种认证机制.目的是通过密钥系统为客户端/服务器应用程序提供强大的可信任的第三方认证服务:保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证.kerber ...

  4. 域控-笔记二(域权限,域组,域管理,Kerberso 协议)

    文章目录 一. 域环境搭建 1.1 添加AD功能 1.2 安装 1.3 部署 二. 如何加入域 2.1 加入域 2.2 域中主机登录 2.3 退出域 2.4 添加域用户 三. 域权限 3.1 A-G- ...

  5. 学习笔记-Windows 安全

    Windows 安全 注 : 笔记中拓扑图 drawio 源文件在其图片目录下 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 漏 ...

  6. 哈希传递攻击/黄金白银票据

    Q&A Q1:pth在什么情况下能成功.哈希传递受到什么限制.什么情况下不能传递? A1:①pth在获取到目标机器中RID为500的内置管理员账户或在目标机器本地管理员组的域成员账户的hash ...

  7. 内网渗透(六十一)之Kerberosating攻击

    Kerberosating攻击 Kerberosating攻击发生在Kerberos协议的TGS_REP阶段,KDC的TGS服务返回一个由服务Hash 加密的ST给客户端.由于该ST是用服务Hash进 ...

  8. A guided tour of Kerberos: Tutorial

    为了更好的理解 Kerberos 中的概念和认证的大体流程,这篇文档是快速了解 Kerberos 的一篇非常棒的指南教程,原文地址为 KERBEROS PROTOCOL TUTORIAL,也可以直接访 ...

  9. Kerberos认证原理与环境部署

    文章目录 一.概述 1)应用场景 2)功能特性 二.Kerberos中的核心概念 1)用户principal 2)服务principal 3)Ticket 三.Kerberos架构与工作原理 四.Ke ...

最新文章

  1. vim的简单介绍与使用
  2. R语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
  3. 2个月精通Python爬虫——3大爬虫框架+6场实战+分布式爬虫,包教包会
  4. pytest测试实战 电子书_pytest实战APL测试框架
  5. scrapy爬虫程序xpath中文编码报错
  6. ubuntu18.04.4 LTS 安装NVIDIA驱动亲测有用方法2020年最新及常见问题避坑
  7. CentOS 7 安装MySQL 5.6遇到问题及解决方案
  8. 第二十二章:动画(八)
  9. 你确定你会使用git commit?
  10. python fortran混编 ctypes_关于python调用fortran编译的dll的问题
  11. androidpn的学习研究(五)androidpn-client 常见BUG解决方法
  12. 论Postgres的“已提交的而且 xmin’比当前事务的XID小的记录对当前事务才是可见的”...
  13. 【fiddler】用fiddler实现android手机抓包
  14. windows痛苦面具-C盘瘦身法
  15. 双手指代脑区,读文献参考,大脑分区记不住怎么办
  16. 【多线程与高并发】从一则招聘信息进入多线程的世界
  17. 经典SQL操作语句【转载】
  18. 2K元预算为什么要买7nm处理器的OPPO A95 主要还是耐用
  19. MessageBox in wpf
  20. 激光雷达初体验 - Ubuntu 18.04 + 思岚科技 RPLIDAR A1M8 + ROS 上手使用

热门文章

  1. 短视频剪辑如何正确把握“节奏感”,三个小技巧助你快慢有序
  2. JAVA 技术方向赏金任务-快递 E 栈训练任务
  3. gff文件_gff/gtf格式
  4. DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras论文阅读笔记
  5. Intel8086处理器使用NASM汇编语言实现操作系统15-段的定义section/vstart和align语法
  6. Linux端类似种子猫的软件,值得一试的四款Linux Torrent客户软件
  7. 【Linux】x86结构
  8. python爬虫读取pdf_python爬虫处理在线预览的pdf文档
  9. Python调用R出现“UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb2” 问题
  10. php setcookie应该在哪里使用,php setcookie 用法