[玩转系统] 什么是 Kerberos 委派? Kerberos 委派概述
作者:精品下载站 日期:2024-12-14 06:11:07 浏览:13 分类:玩电脑
什么是 Kerberos 委派? Kerberos 委派概述
Kerberos 委派的目的
Kerberos 委派已经存在很长时间了(确切地说是从 Windows Server 2000 开始)。但通常情况下,使用 Active Directory 的工程师并不熟悉 Kerberos 委派的所有不同实现、其用途以及滥用方式。有些人甚至将 Kerberos 委派与委派权限混淆。
Kerberos 委派的实际用途是使应用程序能够访问托管在不同服务器上的资源。一个示例是当应用程序(例如 Web 服务器)需要访问托管在其他位置的网站资源(例如 SQL 数据库)时。您可以允许将该服务帐户委派给 SQL Server 服务,而不是让运行 Web 服务器的服务帐户直接访问数据库。用户登录网站后,服务帐户将代表该用户请求访问 SQL Server 服务。这允许用户访问他们已配置到的数据库中的内容,而无需配置对 Web 服务器服务帐户本身的任何访问权限。
Kerberos 委派的类型
多年来,Kerberos 委派的一些风格已经演变。 Windows Server 2000 的原始实现是无约束委派。从那时起,出现了更严格的委派版本,以提高安全性:约束委派和基于资源的约束委派。我将在下面更深入地探讨每种类型的委托。
要在计算机或用户帐户上配置委派,请使用 Active Directory 用户和计算机中的委派选项卡,如下所示。请注意,用户帐户必须设置 servicePrincipalName (SPN)。
图 1.Active Directory 用户和计算机中的委派选项卡
第一个选项(黄色)允许您配置帐户,以便不允许信任该帐户进行委派;这最常用于敏感或管理帐户,切勿将其用于委派。第二个选项(绿色)允许您配置帐户以进行无约束委派。第三个选项(红色)允许您配置帐户以进行约束委派。
不受约束的委派
这是委托的原始实现,也是最不安全的。无约束委派实际上做了什么?在幕后,配置无约束委派时,对象的 userAccountControl 属性会更新以包含“TRUSTED_FOR_DELEGATION”标志。当对象对配置了无约束委派的主机进行身份验证时,该帐户的票证授予票证 (TGT) 将存储在内存中,以便配置了无约束委派的主机稍后可以在需要时模拟该用户。
想象这样一个场景:特权帐户对配置了无约束委派的主机进行身份验证。该帐户可以作为该特权用户访问域内任何配置的服务。更进一步,如果有办法强制特权帐户自动向您的主机进行身份验证怎么办?使用“打印机错误”,您可以让域控制器对您的主机进行身份验证,并将该帐户的 TGT 保留在内存中。
由于存在“打印机错误”等机制,无约束委派非常不安全,如果可能的话不应使用。需要注意的一件事是,域控制器默认配置为无约束委派。但是,由于您的域控制器应该比托管服务的随机应用程序服务器安全得多,因此这应该不是问题。
受限委派
Windows Server 2003 中引入的约束委派允许您配置帐户可以委派给哪些服务。从理论上讲,这限制了发生泄露时的潜在风险。
图 2. TestUserA 可以委托给 HTTP/测试服务。
对于受限委派,需要注意的一项限制是它不能跨林工作。
当对帐户设置约束委派时,会发生两件事:
- 对象的 userAccountControl 属性使用“TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION”标志进行更新。
- msDS-AllowedToDelegateTo 属性使用委派选项卡上配置的 SPN 进行填充。
滥用约束委派与滥用非约束委派不同。一种常见的滥用方式是,攻击者能够破坏为受限委派配置的用户帐户的明文密码或 NTLM 哈希。使用 Kekeo 这样的工具,他们可以为拥有密码的帐户请求 TGT,为任何用户执行 TGS 请求(只要用户未标记为“敏感”),然后注入票证并访问他们作为该用户请求的服务。
基于资源的约束委派
Windows Server 2012 中引入的基于资源的约束委派改变了配置约束委派的方式,并且它将跨信任工作。托管服务的资源指定哪些对象可以委托给它,而不是指定哪个对象可以委托给哪个服务。从管理的角度来看,这允许资源所有者控制谁可以访问它。例如,您可以在 SQL Server 服务帐户上指定 WebServer 服务帐户有权委派对其的访问权限,而不是通过约束委派指定 WebServer 服务帐户可以委派给 SQL 服务来访问数据库。
基于资源的约束委派是通过使用允许委派给它的对象的 SID 填充目标资源上的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性来配置的。要配置基于资源的约束委派,需要使用PowerShell; Active Directory 用户和计算机中没有 GUI 组件,并且属性编辑器页面不允许手动修改此属性。
您可以在此处阅读有关基于资源的约束委派及其滥用方法的更多信息。
识别现有的 Kerberos 委派
现在您已经了解了不同类型的委派的一些基础知识以及它们可能被滥用的一些方式,我想与您分享一种方法,您可以使用该方法来了解您的环境中已配置的委派类型。我们将特别关注不安全的场景,例如在域控制器以外的对象上配置无约束委派。
这是一个最初发布在 Microsoft Technet 库中的脚本,它将识别配置了无约束、约束和基于资源的约束委派的帐户,并突出显示有关其列出的配置的信息和潜在警告:
<#
.Synopsis
Search the domain for accounts with Kerberos Delegation.
.DESCRIPTION
Kerberos Delegation is a security sensitive configuration. Especially
full (unconstrained) delegation has significant impact: any service
that is configured with full delegation can take any account that
authenticates to it, and impersonate that account for any other network
service that it likes. So, if a Domain Admin were to use that service,
the service in turn could read the hash of KRBRTG and immediately
effectuate a golden ticket. Etc :)
This script searches AD for regular forms of delegation: full, constrained,
and resource based. It dumps the account names with relevant information (flags)
and adds a comment field for special cases. The output is a PSObject that
you can use for further analysis.
Note regarding resource based delegation: the script dumps the target
services, not the actual service doing the delegation. I did not bother
to parse that out.
Main takeaway: chase all services with unconstrained delegation. If
these are _not_ DC accounts, reconfigure them with constrained delegation,
OR claim them als DCs from a security perspective. Meaning, that the AD
team manages the service and the servers it runs on.
.EXAMPLE
.Search-KerbDelegatedAccounts.ps1 | out-gridview
.EXAMPLE
.Search-KerbDelegatedAccounts.ps1 -DN "ou=myOU,dc=sol,dc=local"
.NOTES
Version: 0.1 : first version.
0.2 : expanded LDAP filter and comment field.
Author: Willem Kasdorp, Microsoft.
Creation Date: 1/10/2016
Last modified: 4/11/2017
#>
[CmdletBinding()]
Param
(
# start the search at this DN. Default is to search all of the domain.
[string]$DN = (Get-ADDomain).DistinguishedName
)
$SERVER_TRUST_ACCOUNT = 0x2000
$TRUSTED_FOR_DELEGATION = 0x80000
$TRUSTED_TO_AUTH_FOR_DELEGATION= 0x1000000
$PARTIAL_SECRETS_ACCOUNT = 0x4000000
$bitmask = $TRUSTED_FOR_DELEGATION -bor $TRUSTED_TO_AUTH_FOR_DELEGATION -bor $PARTIAL_SECRETS_ACCOUNT
# LDAP filter to find all accounts having some form of delegation.
# 1.2.840.113556.1.4.804 is an OR query.
$filter = @"
(&
(servicePrincipalname=*)
(|
(msDS-AllowedToActOnBehalfOfOtherIdentity=*)
(msDS-AllowedToDelegateTo=*)
(UserAccountControl:1.2.840.113556.1.4.804:=$bitmask)
)
(|
(objectcategory=computer)
(objectcategory=person)
(objectcategory=msDS-GroupManagedServiceAccount)
(objectcategory=msDS-ManagedServiceAccount)
)
)
"@ -replace "[sn]", ''
$propertylist = @(
"servicePrincipalname",
"useraccountcontrol",
"samaccountname",
"msDS-AllowedToDelegateTo",
"msDS-AllowedToActOnBehalfOfOtherIdentity"
)
Get-ADObject -LDAPFilter $filter -SearchBase $DN -SearchScope Subtree -Properties $propertylist -PipelineVariable account | ForEach-Object {
$isDC = ($account.useraccountcontrol -band $SERVER_TRUST_ACCOUNT) -ne 0
$fullDelegation = ($account.useraccountcontrol -band $TRUSTED_FOR_DELEGATION) -ne 0
$constrainedDelegation = ($account.'msDS-AllowedToDelegateTo').count -gt 0
$isRODC = ($account.useraccountcontrol -band $PARTIAL_SECRETS_ACCOUNT) -ne 0
$resourceDelegation = $account.'msDS-AllowedToActOnBehalfOfOtherIdentity' -ne $null
$comment = ""
if ((-not $isDC) -and $fullDelegation) {
$comment += "WARNING: full delegation to non-DC is not recommended!; "
}
if ($isRODC) {
$comment += "WARNING: investigation needed if this is not a real RODC; "
}
if ($resourceDelegation) {
# to count it using PS, we need the object type to select the correct function... broken, but there we are.
$comment += "INFO: Account allows delegation FROM other server(s); "
}
if ($constrainedDelegation) {
$comment += "INFO: constrained delegation service count: $(($account.'msDS-AllowedToDelegateTo').count); "
}
[PSCustomobject] @{
samaccountname = $account.samaccountname
objectClass = $account.objectclass
uac = ('{0:x}' -f $account.useraccountcontrol)
isDC = $isDC
isRODC = $isRODC
fullDelegation = $fullDelegation
constrainedDelegation = $constrainedDelegation
resourceDelegation = $resourceDelegation
comment = $comment
}
}
图 3. 用于识别有问题的委托的示例脚本
Netwrix 如何提供帮助
Netwrix Active Directory 安全解决方案可帮助您端到端地保护 Active Directory。你可以:
- 识别并缓解 Active Directory 中的漏洞:过多的权限、“影子”管理员、过时的帐户、弱密码等等。
- 控制 AD 配置和权限,实施强密码策略,并防止凭据被盗。
- 甚至可以检测高级威胁,以便在不良行为者完成任务之前阻止他们。
- 通过自动响应操作立即遏制安全漏洞,最大限度地减少对您业务的损害。
- 以最短的停机时间回滚或从恶意或其他不当更改中恢复。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag