蜜罐账户的艺术:让不寻常的看起来正常

2022-01-24 16:04:47 浏览数 (1)

本文介绍如何创建用作蜜罐(或蜜令牌)的帐户,这些帐户看起来像是提供了攻击者想要的东西(访问),但最终提供了防御者想要的东西(检测)。重点是使蜜罐帐户在 Active Directory 中看起来正常且“真实”,并且此前提应该在某种程度上可以移植到其他系统。

AD Recon 101 我之前曾在演示文稿中介绍过 AD 侦察( DEF CON 2016:超越 MCSE,Red-Teaming Active Directory),但在此处提供了更多关于特权 AD 帐户侦察的详细信息。 当攻击者对 Active Directory 进行侦察时,需要查看几个关键项目: 

  1. 识别特权帐户 
  2. 使用旧密码识别特权帐户
  3. 使用 Kerberos 服务主体名称 (SPN) 识别特权帐户
  4. 通过常规工作站上的网络会话识别特权帐户

在大多数 Active Directory 环境中,我们可以作为普通 AD 用户(在某些情况下没有有效的 AD 凭据)扫描所有这些 AD 森林。

1. 识别特权账户 

让我们从#1 开始。我们可以递归枚举 AD 森林中每个域中的管理员组,也可以扫描每个域中用户属性“AdminCount”设置为 1 的所有 AD 用户帐户。我介绍了 AdminCount 属性在 2015 年的用途(DerbyCon – “红色与蓝色 Active Directory 攻击与防御”)。

在添加到特权 AD 组(例如管理员、域管理员、企业管理员等)的任何 AD 帐户上,AdminCount 属性自动设置为 1。此技术有用性的限制因素是,我们还可能找到用于属于特权 AD 组,但不再是成员。这意味着扫描 AdminCount=1 的 AD 帐户会提供 潜在特权帐户的快速列表(没有组枚举)。

2.使用旧密码识别特权帐户

一旦我们有了特权帐户列表,我们就想检查旧密码。我通常将“旧密码”定义为超过 5 年,因为 Active Directory 安全性实际上只是在过去 5 年左右(大约从 2014/2015 年左右开始)成为大多数组织的关注点。任何密码超过 5 年的帐户都可能不是很好,任何超过 10 年的密码可能更糟。作为攻击者,我更有可能针对使用旧密码的帐户。

3. 使用 Kerberos 服务主体名称 (SPN) 识别特权帐户

我们还可以检查特权帐户列表以查看它们是否具有关联的 Kerberos 服务主体名称 (SPN)。对于任何具有至少一个 SPN 的帐户,我们可以使用一种称为“ Kerberoast ”的攻击” 可能会离线破解密码。攻击者需要做的就是为 SPN 请求一个 Kerberos 服务票证(通常使用 RC4,它使用 NTLM 密码哈希来加密票证)并将其保存到我们的密码破解系统。破解方法是遍历潜在密码(包括键盘映射/步行类型密码,这些密码只是基于字符在键盘上的位置的简单模式——在管理员中很流行),将它们转换为 NTLM,并尝试使用此打开服务票证NTLM 密码哈希。如果我们能打开票,我们就成功猜到了密码。所有这些都只有用户权限和企业网络上的最少活动。

4. 在常规工作站上识别具有网络会话的特权帐户

我将在此 AD 侦察速成课程中介绍的最后一项检查是检查常规工作站上特权帐户的网络会话。这是一项已执行多年的检查,Will (Harmj0y) 过去已广泛涵盖此内容 ( I Hunt SysAdmins )。有一个原始的 NT 方法(NetSessionEnum) 为任何经过身份验证的用户(“经过身份验证的”包括通过信任连接的帐户)提供从 Windows 服务器请求与其有会话的帐户的能力(包括帐户名称、帐户调用的计算机、会话时间等) )。此信息使攻击者能够收集网络会话信息并识别正在使用哪些计算机特权帐户。借助此信息,攻击者可以确定如何破坏单台计算机以获取对管理员凭据的访问权限并破坏 AD。这是管理系统对于保护管理帐户至关重要的原因之一。

特权账户——攻击者的视角

既然攻击者拥有特权 AD 帐户列表并确定了潜在目标,那么攻击者可以执行哪些检查来“验证”这些帐户以及防御者可以采取哪些措施来反击?

从攻击者的角度来看,如果 Domain Admins 中有一个密码为 15 年且具有关联 SPN 的 AD 帐户,那看起来就像是赢家。Kerberoast 该帐户,从那里获取密码和 pwn AD!

但是攻击者如何在攻击之前验证多汁的目标(可能存在漏洞的帐户)呢?

有一些关键的 AD 用户属性是通过帐户的正常使用而更新的。这包括帐户上次登录的时间、上次登录的位置、上次更改密码的时间等。攻击者希望检查以下内容:

  • 帐户是什么时候创建的? 在过去一年左右创建的帐户可能是可疑的。
  • 帐户最后一次登录是什么时候? 如果该帐户自创建日期以来未登录或未登录,则该帐户可能是蜜罐帐户。
  • 上次更改密码是什么时候?如果密码自创建之日起未更改,则可能存在疑问。
  • 我们可以确定 (NetSessionEnum) 帐户的使用位置吗?缺少网络会话数据的帐户并不意味着它是蜜罐。
  • 如果是管理员帐户,是否有相关的用户帐户处于活动状态?如果有一个名为 adm-smetcalf 的管理员帐户,但没有用户帐户 smetcalf 并且所有其他 AD 管理员帐户都可以通过这种方式关联,这可能是一个蜜罐帐户。我已经使用这种技术在现实环境中识别了蜜罐帐户。[肖恩注意:如果您希望红队在您的环境中非常小心地进行并仔细检查所有内容,请在 AD 中创建一个“Sean Metcalf”帐户。或者有人告诉我

    0 人点赞