另辟蹊径:应用运动目次的复制元数据检测域内歹意运动 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

申博_新闻事件 申博 99次浏览 已收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

跟着 BloodHound 近来宣布的 ACL 进击途径更新,和@wald0和我自身对运动目次中的 DACL 后门的研讨(请点击这里查阅白皮书) ,我最先从防备的角度研讨基于 ACL 的进击途径。 Sean Metcalf 在运动目次要挟检测方面做了一些很棒的事变(拜见他在2017年 BSides Charm上的”Detecting the elive: Active Directory Threat Hunting”的演讲) ,在本文中我想展现复制元数据怎样资助检测这类范例的歹意运动。

另外,在这篇文章草拟今后,Grégory LUCAND 向我指出了他在统一主题范畴写的一篇普遍的文章(法语) ,题为”元数据复制在运动目次取证剖析中的运用(法语版)”。 他细致引见了 OU 的变动,和一些复制组件(如链接值复制)的事变体式格局,并对此举行了深切研讨(比本文更深切)。 我强烈建议你检察他的文章,纵然你不克不及不像我一样运用谷歌翻译浏览他的文章。

我将深切研讨一些与域复制元数据有关的配景学问,然后将剖析每一个 ACL 进击原语和怎样检测到这些修正行动。 不幸的是,复制元数据可以或许有一些限定,但它最少可以或许资助我们削减发作的修正事宜和事宜发作的域掌握器的局限。

注重: 本文中的一切的例子都运用了我的测试域状况,它运转在 Windows 2012 r2的域功用级别。 其他域功用版本将有所不同。 另外,一切的例子都是在实验室状况中完成的,因而在实在网络中的确实行动也会有所不同。

运动目次 复制元数据

当对运动目次中的域掌握器中的域对象举行变动时,这些变动将复制到统一域中的其他域掌握器(请参阅这里的”目次复制”局部)。 作为复制历程的一局部,关于复制的元数据保留在两个组织的属性中,即从其他属性盘算终究值的属性。 这两个属性分别是 msDS-ReplAttributeMetaDataand和 msDS-ReplValueMetaData。

旁注: 我在复制元数据方面的前期事变包罗这篇关于跟踪 UPN 修正的文章,和这个系列中关于这些数据的不同用例的文章。 这些文章论述了怎样运用 REPADMIN/showobjmeta 和Active Directory cmdlet 罗列和剖析返回的 XML 花样化数据。 几个月前,我push了一个 PowerView 提交,它简化了这个罗列的历程,我将在本文中演示这些新的函数。

msDS-ReplAttributeMetaData

1.1.1

起首,我们怎样晓得哪些属性被复制了? 对象属性自身在林情势中透露表现,并包罗了一个包罗种种元设置的 systemFlags 属性。 包罗 FLAG_ATTR_NOT_REPLICATED 标记,它指导不克不及复制给定的属性。 我们可以或许运用 PowerView 疾速罗列一切这些弗成复制的属性,运用按位查询的 LDAP过滤器搜检这个标记:

Get-DomainObject -SearchBase 'ldap://CN=schema,CN=configuration,DC=testlab,DC=local' -LDAPFilter '(&(objectClass=attributeSchema)(systemFlags:1.2.840.113556.1.4.803:=1))' | Select-Object -Expand ldapdisplayname

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

若是我们想要取得可以或许被复制的属性,我们可以或许增添!字符否认过滤器的逻辑:

Get-DomainObject -SearchBase 'ldap://CN=schema,CN=configuration,DC=testlab,DC=local' -LDAPFilter '(&(objectClass=attributeSchema)(!systemFlags:1.2.840.113556.1.4.803:=1))' | Select-Object -Expand ldapdisplayname

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

因而,针对上述对象鸠合中的任何属性的变动都邑复制到其他域掌握器,因而,在 msDS-ReplAttributeMetaData 中具有复制元数据的信息(链接属性除外,稍后将细致引见)。 因为这是一个组织的属性,以是我们必需指定在 LDAP 搜刮时期盘算这个属性。 荣幸的是,你可以或许运用PowerView为 Get-Domain* 函数指定 -Properties msDS-ReplAttributeMetaData 来完成这一点:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

可以或许看到,我们获得了一个 XML 文本数组,它形貌了修正事宜。 Powerview 全新的 Get-DomainObjectAttributeHistory 函数将自动查询一个或多个对象的 msDS-ReplAttributeMetaData,并将 XML 文本块剖析为自定义 PSObjects:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

剖析每一个效果,我们获得了对象自身的区分称号、复制属性的称号、末了一次变动属性的时候(LastOriginatingChange)、属性变动的次数(Version) ,和目次效劳署理的区分称号(修正自LastOriginatingDsaDN)。

旁注: “剖析 LastOriginatingDsaDN”局部形貌了怎样将这个人人所熟知的称号剖析为适宜的域掌握器对象自身。 不幸的是,我们不晓得是谁举行了变动,也不晓得前面的属性值是甚么; 然则,我们依然可以或许用这些数据做一些风趣的事变,稍后我将举行引见。

msDS-ReplValueMetaData

为了明白 msDS-ReplValueMetaData 和为何它与 msDS-ReplAttributeMetaData 星散,你须要明白 运动目次 中的链接属性。 Windows Server 2003域功用级别中的链接值复制”许可零丁复制多值属性的值。” 。在英文中,组织或依赖于其他属性的属性被突破,如许团体的一局部可以或许被一个一个地复制,而不是一次性复制全部分组。 这是为了削减古代域状况中的复制流量而引入的。

运用链接属性,运动目次 从另外一个属性(称为前向链接)的值盘算给定属性(称为反向链接)的值。 最好的例子是组成员干系的 member和 memberof : 组的member属性是前向链接,而用户的memberof 属性是反向链接。 罗列用户的memberof 属性时,反向链接会延伸到以天生终究的成员干系集。

关于前向链接和反向链接,另有两个须要注重的处所。 起首,前向链接是可写的,而反向链接是弗成写的,因而今后向链接属性变动时,相干的反向链接属性的值将自动更新。 其次,因为这个缘由,域之间只复制前向链接的属性,然后自动盘算反向链接。 要相识更多信息,请检察这篇关于这个主题的文章。

对我们来讲,一个伟大的上风是,因为前向链接属性以这类体式格局复制,这些属性的本来的值存储在复制元数据中。 这正是 msDS-ReplValueMetaData 组织的属性存储的内容,也是 XML 花样的。PowerView中 新的 Get-DomainObjectLinkedAttributeHistory 函数为你包装了以下内容:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

如今我们晓得 member 和 memberof 是一个链接鸠合,因而上面的修正效果是针对 member 的。

为了罗列一切前向链接的属性,我们可以或许再次搜检林情势。 链接属性在情势中有一个 Link 和 LinkID ——前向链接有一个偶数的非零值,而反向链接有一个奇数的非零值。 我们可以或许运用[DirectoryServices.ActiveDirectory.ActiveDirectorySchema]::GetCurrentSchema() 猎取今后情势,然后可以或许运用 FindAllClasses ()要领罗列今后的一切情势类。 若是我们依照偶数的类属性举行挑选,我们可以或许找到一切链接的属性,因而这些属性的原有的值会被复制到 运动目次元数据中。

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

这里有许多效果,但不幸的是,我们可以或许体贴的重要效果是 member / memberof 和 manager / directreports。 因而,member和manager是对象中独一风趣的属性,我们可以或许跟踪之前的修正值。 但是,与 msDS-ReplAttributeMetaData 一样,我们照旧看不到现实上是谁提议了变动。

应用复制元数据检测歹意运动

好吧,我们有一堆看似随机的复制元数据,我们究竟怎样用它来”发明欠好的处所呢?” 元数据不会奇异地通知你一个完全的故事,然则我置信它可以或许为你指明准确的偏向,而且另有一个分外的优点,那就是已存在于你的域中的功用。 我将一一剖析检测@wald0和我自身提到的每一个 ACL 进击原语的历程,但关于大多数状况,检测历程以下:

1. 运用 运动目次复制元数据检测针对对象属性的变动可以或许 会发明一些歹意行动。

2. 从链接到变动的域掌握器中网络细致的事宜日记(如元数据的目标) ,以便跟踪谁执行了变动,和变动的值是甚么

这个检测历程有一个小小的破例:

组成员资历修正

这个例子的修正行动检测是最简朴的。 掌握干系是将成员增添到组中的权限(WriteProperty 到 Self-Membership) ,而经由过程 PowerView 的进击原语是 Add-DomainGroupMember。 让我们看看 Get-DomainObjectLinkedAttributeHistory 中的信息可以或许通知我们甚么:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

在第一个条目中,我们看到’EvilUser’最后是在21:13增添的(TimeCreated) ,如今依然存在(TimeDeleted 为 epoch)。 版本为3意味着 EvilUser 最后是在TimeCreated时增添的,在某个时候被删除,然后在17:53从新读取(LastOriginatingChange)。 注重: 这些时候戳花样是 UTC!

在第二个示例中,TestOUUser 在21:12(TimeCreated)时被增添到组中,并在21:19(TimeDeleted)时被删除。Version 为偶数和TimeDeleted的值为非epoch,那末这意味着该用户不再出如今组中,而且在指定的时候被删除。 Powerview 的最新函数 Get-DomainGroupMemberDeleted 只返回元数据组件,指导已删除的用户:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

若是我们须要更多的细节,我们可以或许检察目次体系署理(DSA) ,这个目次体系署理是变动的泉源,也就是在这个状况中处置惩罚变动的域掌握器署理(在这里是主域控)。 因为我们有被修正的组(TestGroup)和发作变动的大抵时候(UTC 时候21:44) ,我们可以或许去启动变动的域掌握器效劳器(主域控)猎取更多的事宜日记细节(拜见”旁注: 剖析 LastOriginatingDsaDN”局部取得更多关于这个历程的更多细节)。

我们真正想要的审计在默许状况下是不开启的,然则可以或许经由过程”当地盘算机战略-盘算机设置装备摆设-Windows 设置-平安设置-高等审计战略设置装备摆设-帐户治理-审计平安组治理”来启用:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

【安全研究】Domain fronting域名前置网络攻击技术

千里百科 Domain Fronting基于HTTPS通用规避技术,也被称为域前端网络攻击技术。这是一种用来隐藏Metasploit,Cobalt Strike等团队控制服务器流量,以此来一定程度绕过检查器或防火墙检测的技术,如Amazon ,Google,Akamai 等大型厂商会提供一些域前端技术服务。 下列将会使用Amazon 提供CloudFront (CDN)服务举例。 背景 在虚拟主机中搭建多个网站服务,为了方便我们区分它们,可以 IP+Port 名称 等方式去访问它们,但是如果是SSL/TLS的话。根据HTTPS的工作原理,浏览器在访问一个HTTPS站点时,先与服务器建立SSL连接。 建立连接的第一步就是请求服务器的证书。而服务器在发送证书时,是不知道浏览器访问的是哪个域名的,所以不能根据不同域名发送不同的证书。因此就引入一个扩展叫SNI,SNI是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展,做法就是在 Client Hello 中补上 Host 信息。 图1 域前端的关键思想是在不同的通信层使用不同的域名,是一种隐藏连接真实端点来规避互联网审查的技术。在应用层上运作时,域前置使用户能通过HTTPS连接到被屏蔽的服务,而表面上像在与另一个完全不同的站点通信。 此技术的原理为在不同通信层使用不同的域名。在明文的DNS请求和TLS

这将天生事宜日记 id 为4735/ 4737/4755的日记,用于修正域当地、全局和全局局限的平安组:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

我们可以或许在事宜细节中看到,TESTLAB\dfm.a 是提议变动的主体,它与我们在复制元数据中视察到的删除事宜相干。

用户效劳主体称号修正

这是另外一个很风趣的例子。 绝大多数用户将永久不会有效劳主体称号(SPN)的设置,除非帐户注册为… 运转效劳。 SPN 修正是我之前提到过的一种进击原语,它为我们供应了一个很好的时机来应用元数据的”Version”字段,即属性被修正的次数。

若是我们为一个用户设置了一个 SPN然后再消除这个设置,那末与属性元数据相干联的 Version字段的值将是偶数,这表明曾经有一个鸠合情势的值:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

若是我们启用「考核用户帐户治理」及「考核盘算机帐户治理」设置,我们可以或许获得更多有关变动的细致信息:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

事宜 ID 为4738,但不幸的是,事宜日记细致信息在变动时不会显现 servicePrincipalName 的值。 但是,我们再次获得了提议这一变动的主体:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

注重,事宜纪录的时候戳与复制元数据的 LastOriginatingChange 是婚配的。 若是我们想对每一个有 SPN 鸠合的用户帐户举行大规模罗列,然后删除它们,我们可以或许运用-LDAPFilter'(samAccountType 805306368)’-Properties servicePrincipalName,并过滤掉任何带有新鲜 Version 的内容:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

对象一切者 /DACL变动

我最后以为这个场景也很难题,因为我已猜到,每当在 OU 上变动委派时,那些新的权限都邑反映在继续链上的任何用户对象的 ntSecurityDescriptor 中。 然则,我错了——任何委派变动都在 OU/容器的 ntSecurityDescriptor 中,我置信这些继续的权限是由效劳器在 LDAP 罗列上盘算的。 换句话说,用户/组/盘算机对象的 ntSecurityDescriptor 只要在显式变动一切者,或许手意向该对象增添新的 ACE 时才应当变动。

因为对象的 DACL 和一切者都存储在 ntSecurityDescriptor 中,而且事宜日记数据不供应关于前一个或变动的值的细致信息,因而我们没法晓得它是 DACL 照样基于一切者的变动。 但是,我们依然可以或许经由过程运用事宜4738来找出是谁提议了此次变动:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

就像运用 SPN 一样,我们也可以或许消灭任何用户(或其他对象)的 DACL 或一切者变动后的值(即Version 的值大于1) :

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

若是我们按期罗列一切用户或其他对象的一切数据,我们就可以或许最先纪录时候线并盘算调换增量,不外这就是另外一篇文章要申明的内容了:)

重置用户暗码

起首,不幸的是,这个例子多是最难题的局部。 因为暗码变动 或重置相称罕见,因而很难仅仅依据上次设置的时候从数据中提掏出一个情势。 荣幸的是,启用”Audit User Account Management”战略还会天生事宜4723(用户变动了自身的暗码)和事宜4724(启动了暗码重置) :

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

我们获得了重置的时候,被强迫重置暗码的用户和初始化它的主体!

组战略对象编纂

若是你可以或许跟踪歹意的 GPO 编纂行动,并想晓得受影响的体系 和用户,那末你可以或许浏览我的这篇文章,这篇文章中会谈到过相干的检测历程。 然则,本节将集中于实验辨认哪些文件被编纂和被谁编纂。

每次修正 GPO 时,versionNumber 属性都邑增添。 因而,若是我们提取与上次修正 versionNumber 有关的属性元数据,并将此次(作为一个局限)与 SYSVOL 途径中的一切文件和文件夹的编纂联系关系起来,我们就可以或许辨认那些可以或许因为上次对 GPO 的编纂而被修正的文件。 以下是我们可以或许做到这一点的要领:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

你可以或许看到上面的 Groups.xml 组战略首选项文件许多是经由编纂的文件。 为了肯定哪一个用户做了变动,我们须要调解”当地盘算机战略-盘算机设置装备摆设-Windows 设置-平安设置-高等审计战略设置装备摆设-DS 接见-审计运动目次效劳变动”:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

然后,我们可以或许梳理5136这个事宜 ID,并运用警报数据来削减致使 versionNumber 修正的事宜局限:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

我们可以或许看到 GPO 对象的区分称号(DN)正在被修正,和是谁提议了变动。 若是你感兴趣的话,这里另有一些更多的信息供你参考。

旁注: 剖析 LastOriginatingDsaDN

正如我前面提到的,LastOriginatingDsaDN 属性透露表现发作给定的变动来自的末了一个目次效劳署理。 为了充分应用这些信息,我们愿望将这个特别的 DSA 纪录映射回它所运转的域掌握器。 不幸的是,这是一个多步调的历程,但我将在下面运用 PowerView 向你细致引见。

假定我们要追踪的变动是下图中已删除的域治理员组成员:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

我们看到 DSA 区分称号存在于联系关系域的 CN=Configuration容器中。 我们可以或许运用 PowerView 的 Get-DomainObject 检索这个援用的完全对象,并将 -SearchBase 设置为” ldap://CN=Configuration,DC=testlab,DC=local “:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

我们在上面看到它有一个 NTDS-DSA 对象种别,而且我们看到一个 serverreferencebl (反向链接)属性指向准确的偏向。 若是我们剖析这个新对象 DN,我们会获得以下效果:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

如今我们在这个新效果的 msdfsr-computerreference 属性中看到了现实的域掌握器区分称号,而且serverreference 与我们初始效果中的LastOriginatingDsaDN 相婚配。 这意味着我们可以或许跳过中心步调,经由过程自定义的 LDAP 过滤器,查询经由过程 serverreference 属性链接的 ms-DFSR-Member 对象目次。 末了,我们可以或许提取 msdfsr-computerreference 属性并将其剖析为现实的域掌握器对象:

另辟蹊径:应用运动目次的复制元数据检测域内歹意运动

胜利了!

总结

愿望这最少会引起一些人从 运动目次方面斟酌歹意运动检测和取证的可以或许性。 这里有许多时机来检测我们提出的基于 ACL 的进击组件,和有数其他运动目次的进击手艺。 而且,擅长视察的读者可以或许已注重到了,我疏忽了全部防备组件,即体系接见掌握列表(SACLs) ,它供应了完成附加审计的时机。 我将在今后的文章中引见 SACL,展现怎样应用 BloodHound 辨认”症结范畴”来设置异常详细的 SACL 审计划定规矩。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明另辟蹊径:应用运动目次的复制元数据检测域内歹意运动
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址