学习目标

  1. Active Directory 历史
  2. 常用术语
  3. AD组织架构
  4. AD身份验证协议
  5. 域内不同的特权级别
  6. 常用的AD管理任务

Active Directory Overview

为什么使用Active Directory

AD 是windows网络环境中的一种分层,分布式的一种服务,用于企业/组织集中统一管理组织内的资源,包括用户,计算机,组,网络设备,共享文件,组策略,设备,信任。

AD再windows域环境中提供身份验证的服务,今年来针对AD的攻击迅速增加。AD设计之初就是向后兼容的,而且很多功能的默认设置是并不安全的,而且非常容易被错误配置。这样的弱点容易造成未授权的访问。
AD本质上是一个非常大的只读数据库,而且域内所有账户都能访问,无论他们时什么权限。我们只需要一个不带其他额外权限的普通AD用户账户就能枚举AD中大多数东西。

保护AD非常重要,因为任何权限的账户都能彻底枚举AD,并且发现AD的错误配置。此外,很多攻击只需要一个标准AD账户就能实现。

这再一次强调了

  • 纵深防御
  • 设计系统时应该重点关注AD安全,网络分段,以及权限分配

2021年12月的noPac攻击就是最好的例子

  • AD使得管理员和用户查询和使用域内资源变得容易
  • AD扩展性很强,一个域内支持数百万的域内资源,而且随着组织发展可以扩展额外的域

Active-Directory (1).webp
据估计,大约有95%的top500强企业都使用了AD,AD因此成为攻击重点。攻击者攻击成功后可以从AD获得内网的访问权限,作为专业的安全人员,我们会在职业生涯中遇到各种各样规模的AD环境。必须了解AD的结构和功能,我们才能更好的了解作为攻击者和防御者。

越来越多的勒索软件的制作者也将AD作为主要的攻击目标,勒索软件在攻击过程中也集成了PrintNightmare (CVE-2021-34527)Zerologon (CVE-2020-1472) 来达到权限提升和内网横移的目的
了解 Active Directory 的结构和功能是在攻击者之前发现和防止此类缺陷的职业道路的第一步。研究人员不断发现新的、极高风险的攻击,这些攻击会影响 Active Directory 环境,这些环境通常只需要标准域用户即可获得对整个域的完全管理控制。有许多很棒的开源工具可供渗透测试人员枚举和攻击 Active Directory。尽管如此,为了最有效地使用这些工具,我们必须了解 Active Directory 如何识别明显和细微的缺陷。工具只有在操作员知识渊博的情况下才有效。因此,让我们花时间了解 Active Directory 的结构和功能,我们必须深入的手动和基于工具的枚举、攻击、横向移动、后期利用和持久性。

Active Directory 的历史

LDAP 是AD的基础,于1971年在RFCs中首次被引入。Active Directory 早起源于X.500组织单元概念,它是 Novell 和 Lotus 创建的,是 directory system 里最早的一个,并于 1993 年作为 Novell Directory Services 发布。
Active Directory 于 90 年代中期首次引入,但直到 Windows Server 2000 发布才成为 Windows 操作系统的一部分。1990 年,随着 Windows NT 3.0 的发布,Microsoft 首次尝试直接在NT 3.0中提供目录服务。NT 3.0 整合了LAN Manager 协议和 OS/2 系统,OS/2是微软最初与由 IBM 的Ed Iacobucci一起创建的,后者还领导了 IBM DOS 的设计,后来共同创立了 Citrix Systems。NT 操作系统在整个 90 年代不断发展,并且重新调整了 LDAP 和魔改出了Kerberos 等协议。 Active Directory 的第一个 beta 版本发布于 1997 年。

Windows Server 2003 发布,AD增加扩展的功能和改进了管理,并添加了 Forest 功能,它允许系统管理员在同一个环境(域环境,安全策略等等)下创建不同域、用户、计算机和其他对象的“容器”。

Active Directory Federation Services (ADFS) (ADFS) 是在 Server 2008 中引入的,旨在为 Windows Server 操作系统上的用户提供系统和应用程序的单点登录 (SSO)。 ADFS 使用户能够在不同的LAN上,更简单、更精简地登录应用程序和系统。
ADFS 使用户能够使用一组凭证,跨组织边界的访问应用程序(域内通行只要一个凭证)。 ADFS 使用基于声明的访问控制授权模型,它通过一组与其身份相关的声明来识别用户,从而确保跨应用程序的安全性,这些声明由身份提供者打包到安全令牌中。类似(JAVA WEB TOKEN)

windows server 2016 为AD带来了更多的功能,例如可以将AD迁移到云以及额外的安全增强功能,例如:用户访问监控 和 组托管服务帐户 (gMSA)Group Managed Service Accounts (gMSA)。 gMSA 提供了一种更安全的方式来运行特定的自动化任务、应用程序和服务,并且通常是Kerberoasting 攻击的推荐缓解措施。
随着云计算的兴起,大量的应用伴随Azure AD Connect上云,Azure AD Connect也变成了Microsoft Office 365 environment下用户的登陆方法。

从 2000 年至今,Active Directory 经历了各种错误配置。安全研究员会总是定期发现影响 Active Directory 和其他与 AD 交互应用(例如 Microsoft Exchange)的新漏洞。随着安全研究人员不断发现新漏洞,运行 Active Directory 的组织需要始终掌握修补和实施修复的能力。作为渗透测试人员,我们的任务是在攻击者之前为我们的客户发现这些漏洞。

出于这个原因,我们必须在 Active Directory 基础上打下坚实的基础,并了解它的结构、功能、用于操作的各种协议、如何管理用户权限和特权、系统管理员如何管理 AD 以及众多漏洞和错误配置可以存在于 AD 环境中。管理AD并非易事。一项更改/修复可能会在其他地方引入其他问题。

如前所述,95% 的财富 500 强公司运行 Active Directory,而微软在目录服务领域几乎完全垄断。尽管许多公司正在过渡到云和混合环境,但对许多公司来说,本地 AD 并没有消失。如果您正在执行网络渗透测试活动,您几乎可以肯定会在几乎所有这些活动中以某种方式遇到 AD。

这些基础知识将使我们成为更好的攻击者,并让我们深入了解 AD,这在向我们的客户提供补救建议时将非常有用。对 AD 的深入了解将使AD变得不那么令人生畏,并且我们在处理具有 10,000 个主机的环境时将拥有与处理具有 20 个主机的环境相同的信心