域渗透利器——我是如何爱上AD Explorer的
Mark Russinovich的Sysinternals工具(微软出品)并非新事物。多年来,它们一直是系统管理员的最爱。但可能较少人知的是,这些工具对渗透测试员也极为有用!其中我最喜欢的是AD Explorer。我的同事Dave Fletcher(曾担任过非凡的系统管理员等多重角色)在一次任务中提醒了我这个工具,自此我在内部评估中一直忠实使用它。当然,对于在互联网上暴露域控制器的组织,这在外网测试中也可能有用(阅读下文了解更多关于使用Shodan的内容)。
你只需要一个域账户——任何域账户——就可以与域控制器通信,并请求其枚举域。它会展示OU结构、用户账户、计算机账户。它可能有助于发现高价值目标,如特权用户和数据库服务器。
与所有Sysinternals工具一样,它们是独立的可执行文件,无需安装。因此,只要你有写权限,就可以从http://live.sysinternals.com下载。
但如果你没有写权限或不允许下载可执行文件怎么办?别担心,你也可以直接从运行框或资源管理器窗口给出以下UNC路径,并在不将文件下载到磁盘的情况下执行它。
|
|
点击可执行文件直接从微软站点加载到内存中。
让我们看几个例子,展示这个工具的强大功能。首先,你可能会找到元数据,为你提供关于对象的线索,如下面的截图所示。看起来我们找到了CIO的笔记本电脑。我不知道你怎么想,但如果我得知CIO的计算机名,我忍不住会想办法登录那里并从内存中获取他们的凭据。那通常也是一个相当特权的账户。
可能还有其他属性包含有趣信息,例如“info”属性。在下面的例子中,我们展示了一个真实测试中的AD记录。数据已被编辑,但足以说明那里的数据非常敏感,并提供了一些优秀的社交工程机会(想想密码重置)!
如果你需要找到高价值目标服务器,那么组织的命名约定通常会帮助你。服务器经常根据其功能命名,例如名称中包含“SQL”或“Sharepoint”。
AD Explorer中的搜索功能也非常出色,帮助你在海量数据中切片切块,找到你需要的。例如,你需要识别禁用的账户吗?只需选择userAccountControl属性并搜索值为514。(实际上,userAccountControl属性是一个代表多个标志的值,其中之一是“禁用”标志,因此这里可能有多个值代表禁用账户,但最常见的是514。)
如果你有足够高的权限,你还可以添加和修改对象和属性。它不允许你像Active Directory用户和计算机那样做那么多,但这个功能在渗透测试中仍然可能有用。作为演示,我在测试域中为用户Grace添加了“Comment”属性。
该工具还提供了一个极好的选项来保存快照……
……你可以将其复制到任何地方,并在AD Explorer中重新打开以供查看。
查看快照不会让你做任何更改,但它对侦察活动非常出色。 AD Explorer还可以对两个快照进行“差异”比较。这在渗透测试中可能有什么用?当你获得域访问权限时立即拍摄快照。然后,在你进行一些黑客和破解操作后,人们开始更改密码或禁用账户,你可以拍摄另一个快照,看看谁更改了密码或哪些被禁用。据我所知,AD Explorer不允许你修改密码或将状态从禁用更改为启用(即使是作为DA),但至少你可以检查并避免使用禁用账户,通过这种方法保持更隐蔽。
现在,关于外部测试……如果你在Shodan上搜索暴露在互联网上的DC,并以这种方式登录一个会怎样?当然,如果你想使用AD Explorer连接到服务器,你需要想出一个域账户。下面的搜索是针对两个常见的LDAP端口和包含字母“DC”的主机名。令人惊讶的是,有很多可以从互联网访问。
或者更进一步,添加端口445以找到可能容易受到Shadow Brokers最近泄露的SMB漏洞攻击的域控制器。(注意:并非所有这些命中都有所有三个端口打开。) 这些服务器之一的妥协可能代表整个域的妥协。哎呀。确保你的组织不在此列表中!
!!2018年5月新增提示和技巧!! 使用AD Explorer协助网络钓鱼诡计。 如果你想从外部电子邮件地址向特定组发送定向网络钓鱼电子邮件,你可以查询AD以查找允许来自外部来源邮件的分发组。属性msExchRequireAuthToSendTo揭示了这一点。当该属性为False时,任何人都可以向该组发送邮件。
你也可以从搜索结果中双击一个组,然后检查该组的member属性以获取成员列表。可以以这种方式提取单个电子邮件地址,但这要繁琐得多。向组发送邮件的能力要快得多,而且它可能使电子邮件对收件人更可信。 从命令行创建快照 AD Explorer是一个GUI工具,但如你所知,GUI访问通常不可用。但从shell访问,你也可以创建快照(谢谢Fletch!)。将可执行文件上传到你具有shell访问权限的主机,并使用以下命令:
|
|
或者先用这个命令运行而不上传:
|
|
你可以通过在命令提示符下键入“adexplorer /?”来查看所需的语法:
寻找特权账户 另外,如果你正在寻找特权账户,不要忘记检查Builtin Administrators组。这可能包含不一定是域管理员但可能对域控制器具有本地管理员访问权限的账户FTW!
寻找密码 有3-4个字段在大多数AD模式中似乎很常见,UserPassword、UnixUserPassword、unicodePwd和msSFU30Password。在令人惊讶的大量测试中,我们发现其中一个或多个字段填充了实际密码。它们有时通过转换为ASCII十进制等效值来混淆,但这不是“man ascii”不能帮助你的。 这是我们最近拍摄的快照中的一个例子。
这两个都有相同的密码,解码为A B C D ! e f g h 1 2 3 4 5 $ 6 7 8 9 0。 如果你知道使用AD Explorer的任何其他提示或技巧,请告诉我们,我们将添加它们。谢谢!