内网渗透之域关系探测神器:Bloodhound

摘要

注:本篇文章建立在有一定的内网渗透基础前提下,所以翻译时候有些词汇显得比较术语化,建议大家没事可以多了解下内网渗透的知识

保护一个公司或者组织免受当今复杂的攻击并非易事。除了管理保护组织安全的日常职责之外,通常还需要安全团队随时准备响应事件。为了有效管理,安全团队必须具有良好定义的策略和可靠的检测功能。这种功能和策略的实施常常会在蓝队和红队之间引发一场持续的军备竞赛,双方都在寻求越来越复杂的工具和检测能力。然而,安全专业人员通常可以通过预测可能的攻击路径并采取步骤阻止攻击者使用这些路径从而优化他们的工作并获得优势。

如何获取隐藏到域控制器管理员账户?

首先我们得要先知道什么是隐藏的管理员帐户?为什么要关心这个问题?

隐藏的管理员帐户是域帐户,提供对敏感系统(如域控制器、exchange服务器或数据库服务器)的管理员访问。这些帐户可能不属于特权Active Directory (AD)组(即域管理员),但是它们仍然可以访问相同的系统。这些帐户的权限是使用AD对象上的访问控制列表(ACL)直接分配的。

这些隐藏的管理员帐户通常是服务或维护帐户,它们在环境中执行自动化的例行任务。此外,隐藏的管理员帐户通常可以访问环境中的多个系统。值得关注的是,在配置检查或密码管理和监视方面,这些帐户通常不会得到与普通管理员账户相同的关注。

因此,他们经常作为一种弱点项来进行探测,红队利用这些服务帐户进行横向渗透并且访问多个系统。

此外,隐藏的管理员帐户也经常成为自我传播的恶意软件的目标,包括那些用于勒索软件和加密攻击的恶意软件。利用这些管理员特权,恶意软件可以很容易地在整个公司中传播。

如何处理隐藏的管理帐户?

我们这选择是使用侦探犬。不,我说的不是耷拉着眼睛的气味狗——我说的是现在很多红色团队使用的非常流行的内部AD侦察工具。

侦探犬是一个单页JavaScript web应用程序,带有一个由PowerShell脚本提供的Neo4j数据库。侦探犬使用图论方式来揭示AD环境中隐藏的、常常是意想不到的关系图。

它由Will Schroeder (@harmjoy)、Andrew Robbins (@_wald0)和Rohan Vazarkar (@CptJesus)开发。侦探犬可以在几分钟内完成以前需要渗透测试人员和分析人员几周才能完成的工作。尽管该工具在渗透测试社区中非常流行,但是我们仍然发现一些安全性和IT团队没有意识到它对于保护他们的基础设施有多么强大和有益。具体来说,侦探犬可以发现隐藏的关系和管理帐户,如过不进行使用探测这些账户可能会被我们忽略掉。要使用侦探犬,您必须设置Neo4j community edition数据库。然后需要将侦探犬web应用程序连接到Neo4j数据库。有关完整的安装说明,请访问侦探犬Wiki

(https://github.com/BloodHoundAD/BloodHound/wiki/Getting-started)

设置好数据库并登录到侦探犬web应用程序之后,需要使用Bloodhound PowerShell ingestor选项从AD中提取AD数据。

图1显示了一个示例命令,它搜索林(-SearchForest)中的所有域,以及用于保存生成的CSV文件的文件夹位置。

图1:运行侦探犬的Bloodhound PowerShell Ingestor

一旦ingestor完成,您将看到三个CSV文件,它们可以上传到侦探犬中,如图2所示:

A.group_membership.csv B.local_admins.csv C.Sessions.csv

图2:侦探犬web应用的上传界面

上传这些文件后,利用侦探犬内部的预构建查询。这些查询是开始获取有关环境的重要信息的好方法。查询包括:

查看所有域管理员; 查看具有最多本地管理员权限的用户; 或查看具有最多管理用户访问权限的计算机。

其中一个查询使我们能够得到域信任关系,如图3所示。

图 3:侦探犬预构建分析查询

在查找隐藏的管理员帐户和信任错误配置时,我们通常使用预先构建的查询“查找拥有最多本地管理权限的前10个用户”和“映射域信任”。

这些查询将提供一些快速的结果,并向我们展示哪些帐户可以访问最多的系统,以及域之间是否存在双向信任,从而允许对环境进行更大程度的访问。找到隐藏的管理员帐户的另一个好方法是直接查看系统、组或用户节点信息。我们只需输入环境中的任何用户、组或系统名称的前几个字符,就可以调查该环境中的任何用户、组或系统名称。

一旦您选择了一个节点,左侧面板中的“node Info”字段就会填充。您还可以右键单击一个节点并选择子选项“Expand”,以查看该节点的成员,如图4所示。

图4:侦探犬用户交互界面

我们能够轻松发现隐藏管理员帐户的另一种方法是搜索敏感的系统,比如域控制器。这可以通过简单地搜索“域控制器”组并左键单击组节点来实现。左边的“Node Info”字段将被填充。接下来,在“群组成员”部分中,左键单击“直接成员”旁边的数字。将看到该组下的所有域控制器系统节点,如图5所示。

图5:侦探犬显示的域控制器组的成员

接下来,左键单击其中一个系统节点(例如:“GOAT-DC”),并在“Local Admins”部分中,左键单击“Derivative Local Admins”旁边的数字,如图6所示。

图6:侦探犬显示的GOAT-DC 派生的本地管理员

现在,我们可以看到有两个帐户具有对域控制器的本地管理员访问权,它们不在“域管理员”组中,甚至没有显示在图4中。。

结论

环境中隐藏的管理员帐户常常被遗忘,或者完全不为人知。它们可以为攻击者提供一种独特的方式来获得域管理员权限并不破坏环境。 侦探犬在识别隐藏的管理员帐户方面非常有效,而且功能强大且易于使用。它可以在几分钟内提供对你的域环境的关系图谱,在你寻找隐藏的域关系时,它是一个很好的工具。我们建议安全公司经常使用像侦探犬这样的免费工具进行威胁探测,并将它们作为定期的、主动的安全评估的一部分。我们在安全方面越主动,就越能更好地预测威胁,为我们的团队做好准备,并提高我们阻止入侵的能力。

目前评论:0 条

发表评论