首页
学习
活动
专区
圈层
工具
发布

看完您如果还不明白 Kerberos 原理,算我输!

(图片来源于网络) 一个用户主要来自AS请求认证。AS 返回 使用用户主体 的 Kerberos密码加密 的 TGT ,该密码仅为用户主体和 AS 所知。...此约定为在多个主机(如DataNodes和NodeManager)上运行的服务提供唯一的主体名称。添加主机名用于区分,例如,来自 DataNode A 的请求与来自 DataNode B 的请求。...票证包含以下内容: 服务的主体名称 用户的主体名称 用户主机的 IP 地址 时间标记 定义票证生命周期的值 会话密钥的副本 所有此类数据都使用服务器的服务密钥进行加密。...颁发票证之后,可重用票证直到期为止。 9. credential(凭证) 是一种信息包,其中包含票证和匹配的会话密钥。凭证使用发出请求的主体的密钥进行加密。...K/M@EXAMPLE.COM 主密钥名称主体。一个主密钥名称主体可与每个主 KDC 关联。 krbtgt/EXAMPLE.COM@EXAMPLE.COM 生成票证授予票证时使用的主体。

20.2K75
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CAS单点登录-简介(一)

    由于工作上的需求,最近在研究CAS单点登录,参看其它博客官网文档。为了记录学习的一些过程,以便后面翻阅也一同给大家分享一下。 版本为CAS-5.1.3 1. 什么是CAS?什么是单点登录?...服务管理中心(谁能接入SSO) TGT(授权码)管理、ST(票据)管理 动态主题(不通客户端提供不同的登录页) 多方式认证(校验器) 配置中心 监控平台 多属性管理(默认只返回用户名,例如后续返回权限数据...CAS Server(CAS服务器)是基于Spring框架构建的Java servlet,其主要职责是验证用户并通过发布和验证票证来授予对启用CAS的服务(通常称为CAS客户端)的访问权限。...当服务器在成功登录时向用户发出票证授予票证(TGT)时,将创建SSO会话。 根据用户的请求,通过使用TGT作为标记的浏览器重定向向服务发出服务票据(ST)。...CAS客户端是可以通过支持的协议与服务器进行通信的任何CAS支持的应用程序。

    1.4K11

    没有 SPN 的 Kerberoasting

    这称为 ASREPRoasting 攻击,在 Impacket 中它可以由 GetNPUsers.py 脚本执行: 使用来自 Impacket 的 GetNPUsers.py 执行 ASREPRoasting...TGS请求 TGS-REQ 包含票证请求的服务主体名称、TGT 和使用 TGT 会话密钥加密并包含当前时间戳的结构: TGS-REQ 数据包的内容 (#11) 当 KDC 收到 TGS-REQ 时,它会解密...Directory 中没有被禁用; KDC 查找发送的服务主体名称解析到的帐户; KDC 提取发现账户的 kerberos 密钥; KDC构建服务票据,由PAC和服务票据会话密钥组成;服务票证使用服务帐户的...探索主体名称的格式 让我们检查之前收集的 AS-REQ 数据包中的主体名称: Kerberos 流量中主体名称的示例 客户端主体名称在 cname 字段中传递,服务主体名称在 sname 字段中发送。...,它会返回 KDC_ERR_S_PRINCIPAL_UNKNOWN 错误,就好像传递的 SPN 不存在一样: 使用不正确的 SPN 对帐户进行 Kerberoasting 新的 GetUserSPNs.py

    1.8K40

    手撕公司SSO登录原理

    CAS 今天我们主要讲不同顶域下SSO的实现,引出CAS原理,CAS官方: https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html...手绘原理 下图描述了传统认证过程要素和CAS协议的认证要素: CAS协议是专门为CAS开发的基于票证的简单而强大的协议。...CAS Server负责认证用户身份并授予对应用程序的访问权限 CAS Clients保护CAS项目, 从CAS Server检索已授权用户的身份信息 核心概念: 存储在CASTGC cookie中的...TGT (Ticket Granting Ticket),负责用户在SSO中的会话 ST(服务票证)作为url中的GET参数传输,代表CAS服务器为特定用户授予对CASified应用程序的访问 ?...service=https://www.website1.com # 临时跳转,建议传参false返回302临时重定向响应 context.Response.Redirect(ssoURL, false

    1.2K30

    Cloudera安全认证概述

    用户在登录其系统时输入的密码用于解锁本地机制,然后在与受信任的第三方的后续交互中使用该机制来向用户授予票证(有效期有限),该票证用于根据请求进行身份验证服务。...简要地说,TGS向请求的用户或服务发行票证,然后将票证提供给请求的服务,以证明用户(或服务)在票证有效期内的身份(默认为10小时)。...Kerberos有许多细微差别,包括定义用于标识系统用户和服务的主体,票证续订,委托令牌处理等。请参见Kerberos安全工件概述。 此外,这些过程大部分完全透明地发生。...这非常容易设置,特别是如果您使用Cloudera Manager Kerberos向导来自动创建和分发服务主体和密钥表文件。 用户和服务主体必须在本地MIT KDC中创建,这可能很耗时。...这非常容易设置,特别是如果您使用Cloudera Manager Kerberos向导来自动创建和分发服务主体和密钥表文件。Active Directory管理员只需要在设置过程中参与配置跨域信任。

    3.8K10

    CDP私有云基础版用户身份认证概述

    用户在登录其系统时输入的密码用于解锁本地机制,然后在与受信任的第三方的后续交互中使用该机制来向用户授予票证(有限的有效期),该票证用于根据请求进行身份验证服务。...简要地说,TGS向请求的用户或服务发行票证,然后将票证提供给请求的服务,以证明用户(或服务)在票证有效期内的身份(默认为10小时)。...Kerberos有很多细微差别,包括定义用于标识系统用户和服务的主体、票证续订、委托令牌处理等。 此外,这些过程在很大程度上完全透明地发生。...这非常容易设置,特别是如果您使用Cloudera Manager Kerberos向导来自动创建和分发服务主体和Keytab文件。 必须在本地MIT KDC中创建用户和服务主体,这可能会很耗时。...这非常容易设置,特别是如果您使用Cloudera Manager Kerberos向导来自动创建和分发服务主体和Keytab文件。

    3.6K20

    CAS+Springboot单点登录

    认证中心返回登陆页面 3、用户输入账号密码,进行登陆 4、认证中心进行登陆逻辑校验,成功就向客户端写cookie(TGC),并生成TGT缓存在服务器本地, 用TGT签发ST 5、用户认证中心重定向到第一次访问的带上的...service(带上ST) 6、系统A的拦截器收到请求后,拿出ST,向认证中心询问ST是否有效(这个步骤对用户透明,直接使用http访问) 7、认证中心回复有效,并返回用户名字,和一些其他属性 8、系统... CAS返回多属性 默认情况下CAS只会返回username给客户端,但是在实际情况下,一个...username是不能满足我们的要求的,我们可能需要邮件,电话号码,权限等数据,所以我们需要对CAS进行改造 1、修改Cas server的services文件 修改services可以设置不同的客户端返回不同的属性...使用ReturnAllAttributeReleasePolicy表示返回所有的属性,当然也可以限制返回部分属性,限制哪些属性不能返回。

    1.7K20

    CVE-2020-17049:Kerberos实际利用

    由KDC在S4U2self交换中返回的服务票证将使用Service1的长期密钥,其可转发标志设置进行解密,然后重新加密。...更改后的票证将附加在S4U2proxy交换中,KDC将作为目标用户返回Service2的服务票证。 ?...如前所述,S4U2self交换机仍将服务票证返回给用户2的Service1,但是由于服务的委派限制和用户免受委派的保护,未设置该票证的Forwardable标志。...现在可以转发来自S4U2self的服务票证 通过包含-force-forwardable标志,该漏洞利用会自动执行,并将从S4U2self交换机收到的服务票证转换为可转发票证。...此可转发票证在S4U2proxy交换中发送,并且作为User2的Service2的服务票证被返回并写入User2.ccache的磁盘。

    1.6K30

    应用层安全协议-Kerberos

    (在X.509标准中,数字证书的一般格式包含的数据域有版本号、序列号、签名算法、发行者、有效期、主体名、公钥、发行者ID、主体ID、扩展域和认证机构的签名。) ③ 保证信息的机密性。...(2)TGS(票证授予服务器,加密解密) 负责发放访问应用服务器时需要的票证。...(3)KDC(密钥分发中心) 认证服务器 和 票证授予服务器 组成密钥分发中心(Key Distribution Center,KDC)。...2.认证流程(重点) PC端向AS(认证服务器)发送明文认证身份,AS会将它传给KDC(密钥分发中心),KDC就会注册PC端相关的账号和密码,然后返回给AS,AS再交给PC端; PC端访问TGS(票证授予服务器...),TGS会返回给PC两个票据(1个是会话的密钥,1个是票据),TGS拿着票据交给目标(如谷歌浏览器),谷歌浏览器返回应答。

    2.7K10

    SPN服务主体名称发现详解

    Kerberos是一种支持票证身份验证的安全协议。如果客户端计算机身份验证请求包含有效的用户凭据和服务主体名称 (SPN),则 Kerberos 身份验证服务器将授予一个票证以响应该请求。...然后,客户端计算机使用该票证来访问网络资源。在内部网络中,SPN扫描通过 查询向域控制器执行服务发现。这对于红队而言,可以帮助他们识别正在运行重要服务的主机,如终端、交换机、微软SQL等,并隐藏他们。...Sean Metcalf还提供了一些有关SPN的资源,其中包括有关Active Directory服务主体名称的系列资源,可在本文结尾处找到。...Empire PowerShell Empire还有一个可显示域帐户的服务主体名称(SPN)的模块。...Impacket 服务主体名称(SPN)也可以从未加入域的系统中发现,impacket工具包下的python版GetUserSPNs可以为我们做到这点。

    3.4K00

    内网渗透-kerberos原理详解

    KDC为用户创建票证授予票证(TGT),用用户的密码对其进行加密,然后返回给客户端。如果客户端可以使用用户的密码解密该票证,则它知道 KDC 是合法的。...客户端通过提供其 TGT 和票证授予服务 (TGS) 请求(其中包括其想要访问的服务的服务主体名称)来向 KDC 请求服务票证。...KDC 创建使用服务的密码哈希(TGS 密钥)加密的服务票证 (TGS),使用共享票证授予服务会话密钥对票证和身份验证器消息进行加密,最后将 TGS 发送回客户端。...KRB_AS_REQ:从身份验证服务(AS)请求 TGT 客户端的请求包括用户的用户主体名称 (UPN) 和时间戳。它使用用户的密码哈希进行加密。...Kerberos 服务主体名称通常包括 NetBIOS 和 DNS 地址,这意味着 KDC 和客户端必须能够以相同的方式解析这些名称。在某些情况下,IP 地址也可以用在服务主体名称中。

    2.1K10

    架构介绍

    CAS协议 CAS协议是一种简单而强大的基于票证(ticket)的协议。完整的协议规范可以查看这里。 它涉及一个或多个客户端和一个服务器。...TGC(Ticket Granted Cookie),以TGT为值的Cookie ST (Service Ticket,服务票证), 作为GET URL请求参数传输,表示由CAS服务器授予给特定用户对CAS...在CAS协议“2.0”之上增加了最常见的增强功能。在其他功能中,版本“2.0”和“3.0”之间最引人注目的更新是能够通过新的/p3/serviceValidate端点返回身份验证/用户属性。...过程详述 用户通过浏览器访问被保护的应用(暂且称之为 应用服务) GET https://app.example.com/ 应用服务上的CAS客户端检测到用户需要进行身份认证时,携应用返回302响应状态码...SSO会话,如果存在会话,则表示已登录CAS服务器,签发ST, 返回302响应状态码,提示浏览器重定向访问应用服务,否则未登录,返回CAS服务器登录页。

    1.5K20

    cas客户端流程详解(源码解析)--单点登录

    博主之前一直使用了cas客户端进行用户的单点登录操作,决定进行源码分析来看cas的整个流程,以便以后出现了问题还不知道是什么原因导致的cas主要的形式就是通过过滤器的形式来实现的,来,贴上示例配置: 1...= null ?...(Assertion)session.getAttribute("_const_cas_assertion_") : null;44 //第一次请求的时候,改对象一定为null...ticket参数返回给我们的接口,剩下的就是下一个过滤器的事情了,慢慢来:好了,这次有ticket了,我们来看下一个过滤器SSO Ticket Validation Filter 1 public final...的登录流程全部走完,不知道大家看懂多少,花了博主大概一天的时间才把源码理解通,ticket返回示例给大家一下,还有代码调用: 1 失败示例: 2 cas:serviceResponse xmlns:cas

    58731

    Active Directory中获取域管理员权限的攻击方法

    此攻击涉及为目标服务帐户的服务主体名称 (SPN) 请求 Kerberos 服务票证 (TGS)。此请求使用有效的域用户身份验证票证 (TGT) 为在服务器上运行的目标服务请求一个或多个服务票证。...请求的 Kerberos 服务票证的加密类型是 RC4_HMAC_MD5,这意味着服务帐户的 NTLM 密码哈希用于加密服务票证。 注意:获取服务票证不需要提升权限,也不会向目​​标发送流量。...运行 Microsoft Exchange 客户端访问服务器 (CAS)、Microsoft Exchange OWA、Microsoft SQL 和终端服务 (RDP) 等应用程序的服务器往往在内存中拥有大量来自最近经过身份验证的用户...此屏幕截图来自安装了 Impacket python 工具的 Kali 盒子。DIT 是使用 Impacket 中的 secretsdump.py python 脚本转储的。...截至 2015 年 10 月,还有一种Windows 方法利用 PowerShell 方法从 NTDS.dit 文件(和注册表系统配置单元)转储凭据,称为来自 DSInternals.com 的 Get-ADDBAccount

    7K10

    Kerberos 身份验证在 ChunJun 中的落地实践

    ● instance 用于服务主体以及用来创建用于管理的特殊主体。...instance 用于服务主体时的一般会用于区分同一服务在不同服务器上的服务实例,因此与 primary 组成的 principal 一般用于 server 端,如:NameNode,HiverServer2...instance 用来创建用于管理的特殊主体时,一般来区分同一个用户的不同身份,如区分担任管理员角色的 a 用户与担任研发的 a 用户。...用户环境引用的策略 / 票证缓存文件丢失、不可读(权限)、损坏或无效票证续签寿命设置为零 票证授予票证(TGT)不存在,因为服务 A 需要将命令作为服务 B 运行,但尚未正确配置为允许模拟服务 B 票证更新尚未执行...造成这种情况的原因多种多样,包括但不限于: 多网卡(NIC)服务器,以使来自主机的数据包的 IP 地址与通过主机解析返回的 IP 不匹配 负载平衡器和后续的主机名解析问题 DNS 和主机名解析问题 /

    2.5K30

    以最复杂的方式绕过 UAC

    当通过 SSPI 接受来自网络客户端 的 Kerberos AP-REQ时,LSASS 中的 Kerberos 模块将调用 LSA 函数LsaISetSupplementalTokenInfo以将来自 ...如果它不存在,那么它将尝试使用来自身份验证器的条目来调用它。如果票证或身份验证器都没有条目,则永远不会调用它。我们如何删除这些值? 好吧,关于那个! 好的,我们怎么能滥用它来绕过 UAC?...我们可以滥用这样一个事实,即如果您查询用户的本地 Kerberos 票证缓存,即使您不是管理员,它也会返回服务票证的会话密钥(默认情况下它不会返回 TGT 会话密钥)。...因此,一种方法是为本地系统生成服务票证,将生成的KRB-CRED保存到磁盘,重新启动系统以使 LSASS 重新初始化,然后在返回系统时重新加载票证。...KERB-LOCAL的目的是什么?这是一种重用本地用户凭据的方式,这类似于 NTLM 环回,其中 LSASS 能够确定调用实际上来自本地经过身份验证的用户并使用他们的交互式令牌。

    2.8K30

    Windows安全认证机制之Kerberos 域认证

    2.Kerberos通讯端口1)TCP/UDP的88(Kerberos)端口:身份验证和票证授予。2)TCP/UDP的464端口:Kerberos Kpaswd(密码重设)协议。3)LDAP:389。...Krbtgt每个域中都有krbtgt账户,此账户是KDC的服务账户用来创建TGT时加密的,其密码是随机生成的。Principal认证主体 Name[/Instance]@REALM。...2)AS:身份认证服务,它执行初始身份验证并为用户颁发票证授予票证。 3)TGS:票据授权服务,它根据用户身份票据权限来颁发服务票据。...与此同时也会对TGT的过期时间、Authenticator认证中的Client主体名和TGT中是否相同等信息对客户端进行校验,校验通过后,TGS将会随机生成一个新的字符串Sessionkey,并向客户端一同返回如下两部分内容...通过Server Hash加密生成的票据,主要包括了SS密钥加密的Client主体名、SS主体名、IP_List、Timestamp、Lifetime、新SessionKey。

    1.6K10
    领券