如何利用 SID History 创建域控权限后门?-阿里云开发者社区

开发者社区> 玄学酱> 正文

如何利用 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日
本文作者:丝绸之路
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【DATAGUARD 学习】使用duplicate 创建物理standby 数据库
使用手工建立物理standby 多少有些费事,利用oracle提供的duplicate 可以简单的完成创建物理standby 的工作!一 环境:同一台主机 主库 orcl  备库 orcldg 二 使用rman 备份主库C:\Documents and Settings\Administrator>rman target /复管理器: Release 11.
653 0
源码分析Mybatis MappedStatement的创建流程
上文源码分析Mybatis MapperProxy创建流程重点阐述MapperProxy的创建流程,但并没有介绍.Mapper.java(UserMapper.java)是如何与Mapper.xml文件中的SQL语句是如何建立关联的。
6759 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4477 0
【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
<p></p> <h2><strong><span style="font-family:黑体; font-size:16pt">数据库的创建和<span style="font-family:Arial">sql</span><span style="font-family:黑体">语句增删改查</span></span><span style="font-family:黑体; fon
1853 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
17436
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载