如何利用 SID History 创建域控权限后门?

简介: 本文讲的是如何利用 SID History 创建域控权限后门?,本文的内容描述了一种方法,通过该方法,攻击者可以在拥有域管理级别的权限的5分钟后,就可以持续的对Active Directory进行管理访问。
本文讲的是 如何利用 SID History 创建域控权限后门?本文的内容描述了一种方法,通过该方法,攻击者可以在拥有域管理级别的权限的5分钟后,就可以持续的对Active Directory进行管理访问。

SID历史记录是支持迁移方案的属性。每个用户帐户都有一个关联的安全标识符(SID),用于跟踪安全主体和连接到资源时的帐户及访问权限。SID历史记录允许另一个帐户的访问被有效的克隆到另一个帐户。这是非常有用的,其目的是确保用户在从一个域移动(迁移)到另一个域时能保留原有的访问权限。由于在创建新帐户时用户的SID会发生更改,旧的SID需要映射到新的帐户。当域A中的用户迁移到域B时,将在DomainB中创建新的用户帐户,并将DomainA用户的SID添加到DomainB的用户帐户的SID历史记录属性中。这样就可以确保DomainB用户仍可以访问DomainA中的资源。

其中有趣的部分是SID历史在同一个域中的作用与SID在跨越多个域的同一个林中的是相同的,这意味着DomainA中的常规用户帐户可以包含DomainA 的SID,如果DomainA 的SID用于特权帐户或组,就可以授予常规用户帐户域管理员权限,而不需要成为域管理员组的成员。

注意:域中的常规用户可以在其Active Directory林中的其他域中的SID历史记录中包含企业管理员SID,从而将用户帐户的权限“升级”为域或林的管理员权限,这对林中的所有域都有效。如果你没有启用SID筛选(也称为隔离区)的林信任,则可以从另一个林中注入SID,并在进行身份验证后将其用于访问评估时将其添加到用户令牌。

Mimikatz支持SID历史注入到任何用户帐户(需要域管理员或等效的权限)。在这种情况下,攻击者创建用户帐户“bobafett”,并将该域的默认管理员帐户“ADSAdministrator”(RID 500)添加到帐户的SID历史记录属性中。

如何利用 SID History 创建域控权限后门?

当bobafett帐户登录时,与该帐户相关联的所有SID都将添加到用于确定对资源的访问权限的用户令牌中。与帐户相关联的SID是用户的SID,用户是其成员的组SID(包括组成员的组)和SID历史记录中包含的SID。

使用PowerShell Active Directory cmdlet“Get-ADUser”,我们可以看到没有分配给bobafett帐户的组成员身份,尽管它在SIDHistory(ADSAdministrator帐户)中具有其SID。

如何利用 SID History 创建域控权限后门?

当bobafett登录时,将对与该帐户相关联的SID进行评估,并根据这些SID来确定访问权限。由于bobafett帐户与ADSAdministrator帐户(RID 500)相关联,因此,bobafett帐户具有ADSAdministrator帐户的所有访问权限,包括域管理员权限。

利用bobafett用户帐户和通过SID历史授予的权限,可以使用PowerShell远程处理从域控制器中提取KRBTGT帐户密码数据。

如何利用 SID History 创建域控权限后门?

检测方法

检测SID历史记录帐户提权的最佳方法是枚举所有具有SID历史记录属性的用户的数据,并标记包含同一域*中的SID的用户。如果用户尚未迁移,你可以使用SIDHistory属性中的数据来搜索所有用户。这就是为什么要在迁移完成后清除SID历史记录(并将用户添加到正确的组以获得所需的资源的访问权限)的原因。

PowerShell AD Cmdlet“Get-ADUser”对于检测“同一域的SID历史记录”非常有用:

# Detect Same Domain SID History Import-Module ActiveDirectory [string]$DomainSID = ( (Get-ADDomain).DomainSID.Value )
Get-ADUser -Filter “SIDHistory -Like ‘*'” -Properties SIDHistory | ` Where { $_.SIDHistory -Like “$DomainSID-*” }

下图显示了运行“相同域的SIDHistory”检测PowerShell脚本的结果。请注意,用户的SIDHistory属性中的SID以“500”结尾,默认的域管理员帐户是 Administrators, Domain Admins, Schema Admins 和Enterprise Admins这些用户组的成员。

如何利用 SID History 创建域控权限后门?

*注意:在多个域的林中,建议在林中的每个域以及受信任的域或林中查找管理组SID(和成员帐户SID)。

通过域控制器事件进行检测

使用以下事件ID进行日志记录可以检测出成功修改或尝试修改SIDHistory属性却失败的操作:

在帐户管理下配置子类别审核,并在域控制器上的“审核用户帐户管理”(成功)中选择以下事件ID:

·  4765:SID历史记录被添加到一个帐户。

·  4766:尝试将SID历史记录添加到帐户的失败事件。

如何利用 SID History 创建域控权限后门?




原文发布时间为:2017年7月3日
本文作者:丝绸之路
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
快速打开host文件脚本(以管理员身份执行)
快速打开host文件脚本(以管理员身份执行)
252 0
|
数据安全/隐私保护 Windows 容器
域策略+脚本实现客户端administrator帐号密码统一
用域策略+脚本实现把客户端administrator帐号密码统一更改     在写这贴之前,我在网上找过很多关于这个方面的资料,看到他们都是说的差不多,但是当一个新手来弄的话就比较难实现了。
979 0
|
安全 数据安全/隐私保护
OS X Lion发现可随意更改用户密码漏洞
据外国媒体报导,一家专注于计算机安全领域的博客Defense in Depth日前在OS X Lion上发现了一个安全漏洞,一名黑客称“虽然没有root权限的用户不能够直接访问shadow文件,但是Lion仍然为他们提供浏览密码的散列数据”。
708 0