导语:今天,我想花几分钟时间分享一下在全球各地的企业或组织中如何在Active Directory中发现隐身的管理员。

今天,我想花几分钟时间分享一下在全球各地的企业或组织中如何在Active Directory中发现隐身的管理员。

image.png

这是 如何发现Active Directory中的隐身管理员的第二部分。

快速介绍 

最近,Active Directory的安全性似乎已经从传统的网络安全/黑客/网络安全人员,在很好的那一面和不那么好的这一面都得到了很多的关注。他们中的很多人对于Active Directory安全话题可能都比较陌生,而且他们中的大多数人似乎主要对确定Active Directory中的特权用户比较感兴趣。

有趣的是,也许是因为他们对于这个主题的内容来说可能是陌生的,他们可能已经开始将Active Directory中的委托管理员称为Stealthy Admins,也可能是因为他们不知道Active Directory中的访问配置和管理委托的概念,即使这两个概念已经存在17年了。
如果你想知道我对“隐身管理员”一词的看法,可以阅读我之前写的关于这个主题的一篇文章 😉 
无论如何,为了帮助这些人以及其他任何对 “ 在Active Directory中发现隐身管理员 ” 所感兴趣的人,我想我会帮助他们理解在Active Directory部署中如何正确做出这一决定。
快速入门
众所周知,在Microsoft Windows Server所支持的IT基础架构中,“王国的钥匙 ”就放在Active Directory中。具体而言,最强大的管理/特权域安全组(例如域管理员)以及所有成员的域用户帐户都在Active Directory中进行存储,保护和管理。

image.png

现在,如果你要向新手咨询有关如何识别Active Directory中的特权用户的建议,他很可能会告诉你,你所要做的就是确定所有如微软官方所说的那些在本质上拥有特权的域安全组,然后枚举这些域安全组的完整成员列表,这就是你应该做的!
有趣的是,如果我与你分享的话,当被要求在Active Directory的部署中提供特权用户列表(以证明符合规)时,你会感到惊讶吗?
事实上,如果你遵循了上面的建议,你只会发现那只是冰山一角,因为实际上,在大多数企业或组织中,存在着比默认AD管理组成员更多的特权用户。
问题来了
为了了解隐藏在Active Directory中的隐身管理员账户,让我们自问自答一个简单的问题。 

假设:为了便于说明,让我们暂时假设Active Directory中只有一个默认的管理/特权组 – Domain Admins安全组。

下图中是域管理员组,问题我们随后抛出 。 

image.png

如上图所示,Domain Admins用户组中只有2个成员。
问题 – 基于上述情况,我们可以假设这个企业或组织在Active Directory中只有2个特权用户吗?即在这个Active Directory中只有两个拥有特权访问的帐户 – 1)默认的管理员帐户,以及2)用户Steve Ballmer的域用户帐户,是Domain Admins组的成员吗?

注意:如果我告诉(假设我们已经做了上面的说明),答案是“yes”,你会感到惊讶吗?大多数企业或组织只会报告这是Active Directory中的数字或特权用户?!

要回答这个问题,让我们考虑以下几点。

问题的思考

考虑某人能够在Active Directory中执行以下管理任务所带来的影响。

image.png

1.  更改Domain Admins组的成员资格

2.  重置Domain Admins组成员的域用户帐户的密码

3.  更改Domain Admins组或其任何成员的帐户上的权限

4.  更改Domain Admins组的所有权限或其任何成员的帐户

上述内容当然不是这些管理任务的详尽列表,而只是可以在Active Directory内容上发布的一小部分管理任务,任何具有足够有效访问权限的人都可以这样做。

注意:此时,对于高级用户,可能会想到AdminSDHolder。我会鼓励他们阅读篇对AdminSDHolder进行了详细讲解的深度好文章,如果你想知道那些微软似乎也不知道的内容,你可以阅读篇文章。

具体来说,考虑如下一些问题 – 
虽然在上面的说明性示例中,域管理员组只有2个成员,不是每个可以更改其成员的人都可以被视为域管理员吗?毕竟,任何可以这样做的人都可以轻松地立即将他自己的帐户或他喜欢的任何人的帐户添加到组中,并将现有成员从组中移除!
类似地,在上面的例子中,虽然我们只有两个帐户是域管理员组的成员,但是每个可以重新设置这些帐户密码的人也应该被认为是域管理员吗?毕竟,任何可以这样做的人都可以轻松地重置这些管理帐户的密码,并立即登录它们!
同样,任何人都可以修改权限或其中任何一个默认的所有权管理组或账户也应该被认为是一个特权用户拥有相同级别的特权,因为他很可能会修改这些对象的权限然后授予自己或别人相同级别的行政特权!
问题的答案
根据我们刚才在上面的一些考虑,希望答案现在能够更加清楚,准确地识别在Active Directory中的特权用户,除了列举在Active Directory的默认管理/特权安全组的成员,至少,我们还应该确定如下一些情况:

1.  能改变在Active Directory中的每个域安全组的成员(以及任何嵌套的域安全组)可以在本质上被认为是管理/特权用户吗?

2.  能重置每一个域用户帐户的密码的域安全组的成员可以在本质上被认为是管理/特权用户吗?

3.  能修改安全权限或每一个域的所有权限安全组和域用户帐户可以在本质上被认为是管理/特权用户吗?

在这里我必须指出,这里的关键字是“ 至少”。我这样说是因为还可以很容易地建立一个特定的域用户帐户或域安全组,这些用户帐户或域安全组可能不是Active Directory中任何默认特权组的成员,但是可以直接在Active Directory中被授予访问权限,等同于拥有访问活动目录的特权!
现在,如果你想知道 – “ 如何才能够改变用户组的成员身份和重置密码呢?! ” 

Active Directory中的管理委托

这一章的内容将我们带到了Active Directory 中最强大,最有价值,最经常使用的特性/优势之一——管理委派。管理委派是一个功能,可以让企业或组织在一大群IT人员之间分配和委派身份和访问管理各个方面的管理权限。
它的前提很简单 – 因为一些高级特权的域管理员可能不能管理AD中的数千个对象,如果企业组织可以委派/分配更大的用户组中的身份和访问管理任务的管理权限的IT人员,他们就不需要拥有和域管理员一样的权限!
管理委派让企业组织委派在Active Directory中的管理权限,并精确地执行 – 

image.png

事实上,在过去17年中,在全球的Active Directory部署中,可能会有数十亿个Active Directory域中执行的管理委托/访问配置。
顺便说一句,我只知道这一点,因为在2004年,我碰巧撰写了关于这个主题的400页白皮书,标题为“ 在Active Directory中委派管理的最佳实践 ”。白皮书的附录本身就是这方面知识的宝库。令人惊讶的是,这些白皮书在microsoft.com上无处可寻!
现在,这是一个非常复杂的问题(考虑到它需要一个400页的白皮书来介绍),所以我在这里不会涉及太多的细节。相反,我只想与你分享IT人员如何最终获得Active Directory中的足够权限,以便能够执行常见的管理任务,如组成员身份更改,密码重置等。

image.png

不足之处在于,如果将任务委托给特定的安全主体(例如域安全组),则需要在给定类型的对象上执行与该任务相对应的LDAP操作所需的安全权限。在活动目录的配置中,从而使该用户组的所有成员都能够执行该任务。
例如,当IT Operations Support Level 1的域安全组被委派了特定组织单位(OU)中的管理任务“ 修改组的成员资格 ”时,以下安全权限被添加到该OU中每个域安全组的ACL中 – { Allow   IT Operations Support Level 2    Write-Property   Member }

同样,当IT Operations Support Level 3域安全组被委派了特定OU中的管理任务“ 重置用户密码 ”时,以下安全权限将添加到该OU中每个域用户帐户的ACL中 – { Allow   IT Operations Support Level 3    Extended Right   Reset Password (User-Force-Change-Password) }

同样,当IT承包商等域安全组被拒绝执行特定管理任务的能力时,如“ 重置用户密码 “,则将下列安全权限添加到该OU中每个域用户帐户的ACL中 – { Deny   IT Contractors    Extended Right   Reset Password (User-Force-Change-Password) }

注意:以上是对这一切如何工作的高度简化的描述。当然,还有许多微妙的但至关重要的细节,例如支配哪些安全许可(在许多允许和拒绝之中)的优先顺序,以及用户实际上(即有效)访问哪些内容。更多内容可以在这里找到。 

在这些默认的管理员组和帐户以及这些被新手称为“隐身管理员”的众多其他对象中,就包含了所有能够访问或委托的域用户账户!
好吧,通过这个无聊的理论,让我们找出如何在Active Directory中正确识别这些隐身帐户。如何正确发现Active Directory中的隐身管理员

如果你知道的内容很好,那么你知道,为了正确地确定在Active Directory中的隐身管理员,你必须能够确定有效权限 / 有效访问在Active Directory中所能做的事情。
如果你不太了解这个主题,那么也许你可能(错误地)认为仅仅通过执行Active Directory权限审计来找出“ 谁在Active Directory中拥有什么权限 ”就足够了。但是,你错了。
这就是为什么 –
如果“隐形管理员”指的是那些有能力制定管理任务,如能够改变一个域安全组的成员或重置一个域用户帐户的密码,或修改Active Directory对象的权限或所有权限,那么唯一正确的方法来识别所有这些人的身份就是通过这些管理任务,准确地确定有效的Active Directory对象上的/有效的访问权限。
我不会花费更多的时间来帮助世界了解Active Directory有效权限是什么以及为什么它们如此重要,所以如果你想了解更多关于它们的信息,可以阅读我强烈推荐的这篇文章。 
让我们继续回答上面提到的问题… 
所以,下面是保护Domain Admins安全组的ACL(访问控制列表)

image.png

我们已经看到上面只有2个成员。但是,我们也应该想知道的是,究竟有多少人可以制定Domain Admins组的“更改组成员”的管理任务。
如上图所示,Domain Admins组的ACL中有许多ACE,每个都允许或拒绝特定的安全主体(用户,组,以及大家所熟知的SID或外部安全主体)和各种特定的Active Directory安全权限。
现在,从技术上来说,要找出谁可以更改组成员,我们需要做的是确切地找出谁有足够的写属性(Write Property – Member)的 有效的权限,这是需要能够修改此对象的成员属性。
让我告诉你唯一的方法,我知道如何准确地做到这一点 。
我启动这个工具,使用其内置的搜索实用程序来找到并指向该工具的域管理员组,并单击一个按钮 –

image.png

在几秒钟内,该工具就能精确确定在此Active Directory对象上授予的完整有效权限集合,并以最直观的方式向我显示结果。

注意:在有些人可能会想到微软的“ 有效权限”选项卡。要知道为什么它不仅不准确,而且还不够充分,那么你就要阅读这篇文章。对于其他人来说,可能会想到这个工具 ,但是开发人员可能不知道该工具是危险的且不准确的。对于像dsacls,acldiag或各种Active Directory权限分析器之类的工具的用户而言,你可能会想要阅读这些信息以了解为什么这些工具不能单独完成这项工作。

从上面的图片中可以看出,虽然域管理员安全组本身只有2个成员,但实际上有11个人可以更改其成员,包括一个鬼鬼祟祟的坏人
从这一份报告来看,特权用户的实际数量增加了500%,即从2增加到了11!
同样,该工具可以精确显示此Active Directory对象中具有足够的修改权限和修改所有者的有效权限,并确定特权用户的实际数量。
现在,由于该工具是Active Directory有效权限计算器(实际上是世界上唯一准确的),它主要是为Active Directory管理员和Active Directory安全专业人员设计的,因此它根据有效的权限来确定并提供结果。但是,可能会有许多人,例如IT审计员,IT经理,网络安全风险评估师和其他角色相似的人员,他们可能不是Active Directory安全专家,因此可能不知道任何映射的有效权限等技术细节。但可能有需要作出这样的决定。
对于所有这样的个人,我们建立了这个工具来帮助他们做出同样的决定 –

image.png

与以前的工具不同的是,该工具的内置分析逻辑不仅可以确定有效的权限,还可以确定Active Directory中的有效访问权限,因此可以以简单的英文向你显示实际可以在Active Directory中执行操作的人员即在管理任务方面,无需你了解有关Active Directory的任何信息。
从上面的截图中可以看出,这个工具的结果也表明总共有11个人可以制定能够更改Domain Admins组成员的管理任务!
通过这种方式,在几秒钟内,每个人都可以准确找出谁可以执行管理任务,如能够修改特权安全组的成员资格,从而在Active Directory中发现“隐身的管理员”!
现在让我给你看另一个例子 – 
让我们假设一个用户Jeff Bezos是Active Directory中Enterprise Admins组的唯一成员。
由于他是Enterprise Admins组的成员,他显然被认为是特权用户。
现在,希望你会同意,因为他是一个特权用户,任何人可以重置他的密码也应该被认为是一个特权用户,因为他只是通过一个鼠标点击动作就可以成为企业管理员,所以不应该是“我们也正在确定谁可以重置他的密码?!

注意:现在,如果他的帐户可能启用了智能卡,那么只需找出谁可以关闭“ 登录时需要智能卡 ”的要求,并重置密码即可!

那么,让我们来看看究竟是谁能重置Jeff Bezos的密码,

image.png

我们点击一个按钮,喝一口咖啡,瞧,我们刚刚发现,总共有30个人有足够的有效的权限/有效的访问他的域用户帐户,以便能够重置杰夫·贝佐斯的密码!
仔细想想 – 即使在这个虚构的企业组织中,只有1个企业管理员,即只有1个用户是企业管理员组的成员,我们刚发现有30个人可以重置他的密码!   
如何在Active Directory中审计特定的隐身访问
如果“隐身管理员”/“隐身访问”指的是“委派管理员”/“委派访问”,那么接下来的内容就是关于如何一步一步的指导世界各地的IT人员审计Active Directory中的特定隐身访问。

image.png

1.  如何正确 审计谁可以在Active Directory中创建用户帐户

2.  如何正确 审计谁可以更改Active Directory中的组成员身份

3.  如何正确 审计谁可以删除Active Directory中的组织单位

4.  如何正确 审计谁可以重置Active Directory中的密码

5.  如何正确 审计谁可以更改Active Directory中的服务连接点

在讨论主题时,你可能还想了解如何正确执行Active Directory特权用户审计
现在假设你的Active Directory中有数千个域用户帐户,域安全组,域计算机帐户,组织单位,服务连接点等。
从技术上讲,如果你真的想要发现Active Directory中的所有“隐身管理员”,你不想确切地知道谁可以重置Active Directory中的所有域用户帐户的密码,谁可以更改所有域的成员资格Active Directory中的安全组,可以更改保护域中所有Active Directory对象的安全权限等。例如,如何确切地知道谁可以重置CEO的域用户帐户的密码?
那么,如果答案是肯定的,基本上就是在确定Active Directory中成千上万个对象的有效权限。现在,即使你有能力通过单击一个按钮来确定单个Active Directory上的有效权限/访问权限,仍然需要数千次的单击一个按钮。
这听起来不是太多,更不用说这可能需要几个星期才能完成。当然,如果你甚至没有能力一次确定一个对象的有效权限,你可以很容易地花费几个月,甚至几年来得出分析结果。
那么,如果有这样一个工具可以一次性处理数千万个对象,这不是很好吗?
像下图这样 。

image.png

如果你可以单击一个按钮,现在你可以立即准确地发现活动目录中的每一个“Stealthy Admin”,无论你的Active Directory中有几百个或几十万个对象。
有关使用此工具审计的所有管理任务的完整列表,请单击此处查看。
对于听起来觉得很容易的新手来说,如果你想知道这是多么困难,你会想找到一个活动目录安全专家,一个已经花了数年时间研究Active Directory安全性的人,并且拥有数千小时的尝试确定各种Active Directory对象的有效权限的经验,也许他可以帮助你知道这件事其实有多么的困难。
那些真正了解Active Directory安全的人员知道构建这样的工具与攀登珠穆朗玛峰一样难。然后有人声称提供免费的工具,可以帮助识别在Active Directory中的隐形管理员;-)他们没有意识到,这样做,他们可能实际上是向世界展示他们对Active Directory安全知道的有多么的少喝浅。

总结
在这篇文章中,我希望帮助人们了解,有些人可能称之为“隐身管理员”,只是Active Directory中的一个代理管理员,或者可能已经在Active Directory中为其配置了各种级别的访问权的IT人员。
话虽如此,我还想告诉你如何识别这些委派管理员,这符合你的职位的要求,也许我们可以一起玩,并继续称之为“Active Directory中的隐身管理员”。
我也想分享一个简单的事实:为了在Active Directory中发现隐身的管理员,我们需要做的是能够准确地确定Active Directory对象的有效权限。

image.png

噢,我还想传达一下,当企业组织审计Active Directory中的特权用户时,只包括默认Active Directory管理组的成员是不够的。你还需要包含在Active Directory中拥有足够有效访问权限的所有这些用户的身份,以便能够修改这些组的成员身份,重置所有成员的密码,更改保护这些组和帐户的安全权限等。
如果你想知道如何正确地做到这一点,你需要阅读- 如何在Active Directory中正确识别特权用户
最后,我想用两个简单的说明示例来演示所有这些内容,其中一个涉及确定谁可以更改Domain Admins组的成员身份,另一个涉及确定可以重置Enterprise Admin的密码的人员。
这就是这篇文章的主要内容。下一篇文章,我们将回到正轨,继续完成 Microsoft的Active Directory安全学院知识分享

源链接

Hacking more

...