Post Compromise - 0501 Active Directory Basics | TryHackMe
ROOT / 红队攻防

Post Compromise - 0501 Active Directory Basics | TryHackMe

系列Post Compromise第 5 / 8 篇
  1. The Lay of the Land
  2. Enumeration
  3. Windows Privilege Escalation
  4. Windows Local Persistence
  5. Active Directory Basics
  6. Breaching Active Directory
  7. Enumerating Active Directory
  8. Lateral Movement and Pivoting
目录(22 节)

https://tryhackme.com/room/activedirectorybasics

考虑到域知识的重要性,涉及域的内容我将全部翻译为中文供各位查阅

Task 1 Introduction

什么是 Active Directory?

活动目录(Active Directory,简称 AD)是一组连接在域内的计算机和服务器的集合,它们作为更大域森林中的一部分,构成了活动目录网络。活动目录包含许多不同的功能组件,以下是 Windows 活动目录组件列表:

  • 域控
  • 域林、域树、单域
  • 用户和组
  • 信任关系
  • 策略
  • 域服务

所有这些 Windows 活动目录的部分组合在一起,构成了一个庞大的计算机和服务器网络。

为什么要使用域?

绝大多数大型公司使用 Active Directory,是因为它允许通过单个域控制器来控制和监控其用户的计算机。它允许单个用户登录到 Active Directory 网络上的任何计算机,并访问他或她在服务器上存储的文件和文件夹,以及该计算机上的本地存储。这使得公司内的任何用户都可以使用公司拥有的任何计算机,而无需在计算机上设置多个用户。Active Directory 会为我们完成这一切。

Task 2 Physical Active Directory

物理层面的 Active Directory 是指本地的服务器和机器,可以包括域控制器、存储服务器以及域用户计算机等各种设备,它们构成了一个 Active Directory 环境所需的一切,除了软件部分。

域控

域控制器(Domain Controllers,简称 DC)是安装了 AD 域服务(AD DS)并已晋升为域林中的域控制器的 Windows Server 服务器。域控制器是 Active Directory 的核心,它们控制域中的其余部分。下面是域控制器的任务:

  • 掌握 AD DS 的数据存储
  • 处理身份验证和授权服务
  • 从域林中的其他域控制器复制更新
  • 允许管理员访问以管理域资源

AD DS Data Store

域数据存储包含存储和管理目录信息(例如用户、组和服务)所需的数据库和进程。下面概述了 AD DS 数据存储的一些内容和特征:

  • 包含 NTDS.dit - 这是一个数据库,包含了域控的所有信息,以及域用户的密码哈希值
  • 默认存储位置为 %SystemRoot%\NTDS
  • 只能由域控访问

Question: What database does the AD DS contain? Answer: NTDS.dit

Question: Where is the NTDS.dit stored? Answer: %SystemRoot%\NTDS

Question: What type of machine can be a domain controller? Answer: Windows server

Task 3 域林

域林(The Forest)是 Windows 活动目录中的核心概念,它充当了整个网络的枢纽,容纳并连接了所有其他组件。没有域林,其他域树和单域之间将无法有效地协同工作。需要理解的是,域林的概念不仅具有物理层面,也包括比喻性的意义。当提到“域林”时,实际上是在描述通过网络构建的各个树和域之间的连接和关系。这一概念在 Windows 活动目录中起到了至关重要的作用。

Active Directory 域林示意图

域林概述

一个域林(Forest)是 AD 网络内的一个或多个域树的集合,它用来将整个网络的各部分进行分类。

域林由以下部分组成:

  • 域树(Trees) - AD DS 中域的层次结构
  • 单域(Domains) - 用于分组和管理对象
  • 组织单位(Organizational Units,OUs) - 用于容纳组、计算机、用户、打印机以及其他组织单位
  • 信任关系(Trusts) - 允许用户访问其他域中的资源
  • 对象(Objects) - 用户、组、打印机、计算机、共享资源
  • 域服务(Domain Services) - DNS服务器、LLMNR、IPv6
  • 域模式(Domain Schema) - 用于对象创建的规则

Question: What is the term for a hierarchy of domains in a network? Answer: Tree

Question: What is the term for the rules for object creation? Answer: Domain Schema

Question: What is the term for containers for groups, computers, users, printers, and other OUs? Answer: Organizational Units

Task 4 Users 和 Groups

在 Windows 活动目录(Active Directory)中,你有完全的管理权,可以自定义用户和组的设置。当你建立一个域控制器时,系统会预设一些默认组以及两个默认用户:管理员(Administrator)和访客(Guest)。当然,你也可以根据具体需求创建新的用户和组,并将用户分配到这些组中。对整个 AD 域你拥有完全的控制权,可以灵活管理用户和组的权限设置,以满足组织的需求。

Users

用户(Users)是活动目录的核心,因为没有用户,活动目录将失去其意义。在活动目录网络中,通常有四种主要类型的用户,但根据 企业/组织 的权限管理方式,还可以有其他类型的用户。这四种主要用户类型包括:

  • 域管理员 - 这是最高权限的用户,他们负责管理域,并是唯一能够访问域控制器的用户。
  • 服务账户(有可能是域管理员) - 这些用户通常仅用于服务维护,例如 Windows 需要它们来将服务与服务账户进行关联,如 MSSQL 服务、IIS 服务等。
  • 本地管理员 - 这些用户拥有本地计算机的管理员权限,有时甚至可以管理其他普通用户,但他们无法访问域控制器。
  • 域用户 - 这些用户是普通用户,他们可以登录他们被授权访问的计算机,根据组织的设置,他们可能被授予对计算机的本地管理员权限。活动目录的用户类型和权限设置对于组织的安全性和管理至关重要。

Groups

通过将用户和对象组织成具有指定权限的组(Groups),可以更轻松地向用户和对象授予权限。在 Active Directory 中,有两种主要类型的组:

  • 安全组(Security Groups)- 这些组用于指定一组用户的权限,通常用于管理访问权限和授权设置,以确保系统的安全性。
  • 分发组(Distribution Groups)- 这些组用于创建电子邮件分发列表,用于批量发送邮件给特定群体。尽管从入侵者的角度来看,这些组可能不太有利,但在信息收集方面仍然具有一定用途。

通过使用这些组,可以更有效地管理用户和对象的权限,以满足不同情境下的需求和安全要求。

默认安全组

以下是默认安全组的简要概述:

  • Domain Controllers - 包括域内的所有域控
  • Domain Guests - 包括域内的所有访客用户
  • Domain Users - 包括域内的所有普通用户
  • Domain Computers - 包括所有加入域的工作站和服务器
  • Domain Admins - 指定的域管理员
  • Enterprise Admins - 指定的企业管理员
  • Schema Admins - 指定的架构管理员
  • DNS Admins - DNS管理员组
  • DNS Update Proxy - 允许执行代表其他客户端(如DHCP服务器)执行动态更新的DNS客户端
  • Allowed RODC Password Replication Group - 属于此组的成员的密码可以复制到域内的所有只读域控
  • Group Policy Creator Owners - 属于此组的成员可以修改域的组策略
  • Denied RODC Password Replication Group - 该组中的成员无法将其密码复制到域中的任何只读域控
  • Protected Users - 此组的成员受到额外的身份验证安全威胁保护,详细信息参阅 https://go.microsoft.com/fwlink/?LinkId=298939
  • Cert Publishers - 此组的成员被允许将证书发布到域中
  • Read-Only Domain Controllers - 此组的成员是域内的只读域控
  • Enterprise Read-Only Domain Controllers - 此组的成员是企业内的只读域控
  • Key Admins - 此组的成员可以对域内的密钥对象执行管理操作
  • Enterprise Key Admins - 此组的成员可以对域林中的密钥对象执行管理操作
  • Cloneable Domain Controllers - 属于此组的域控成员可以被克隆
  • RAS and IAS Servers - 此组中的服务器可以访问用户的远程访问属性

Question: Which type of groups specify user permissions? Answer: Security Groups

Question: Which group contains all workstations and servers joined to the domain? Answer: Domain Computers

Question: Which group can publish certificates to the directory? Answer: Cert Publishers

Question: Which user can make changes to a local machine but not to a domain controller? Answer: Local Administrators

Question: Which group has their passwords replicated to read-only domain controllers? Answer: Allowed RODC Password Replication Group

Task 5 Trusts 和 Policies

域信任

信任关系(Trusts)是网络中用户访问其他域内资源的一种机制。大多数情况下,信任关系规定了域内部分如何与彼此通信,而在某些环境中,信任关系也可以扩展到外部域甚至跨越不同的域林。

Active Directory 域信任示意图

有两种类型的信任关系,它们决定了域之间的通信方式。以下是这两种信任关系类型的概述:

  • 方向性信任(Directional) - 信任关系的方向从信任域(trusting domain)流向被信任域(trusted domain)。
  • 可传递性信任(Transitive) - 信任关系扩展到不仅涉及两个域,还包括其他被信任的域。

建立的信任关系类型决定了域和域林内部的树状结构如何在攻击 AD 域环境时进行数据通信以及相互之间的数据传输。有时,攻击者可以滥用这些信任关系,以在网络中进行横向移动。

域策略

域策略(Policies)是 Active Directory 中的一个重要部分,它们规定了服务器的运作方式以及遵循或不遵循的规则。你可以将域策略类比为域组,不同之处在于它们不仅包含权限,还包含规则,而且这些策略不仅适用于一组用户,还适用于整个域。它们实际上充当了 Active Directory 的规则手册,域管理员可以根据需要进行修改和调整,以确保网络平稳和安全运行。除了非常长的默认域策略列表之外,域管理员可以选择添加自己的策略,以满足域控制器上尚不存在的需求,例如,如果你想要在域上禁用所有计算机上的 Windows Defender,你可以创建一个新的组策略对象来禁用 Windows Defender。域策略的选项几乎是无限的,并且对攻击者来说是枚举 Active Directory 网络时的一个重要因素。

这里举例两个策略:

  • 禁用 Windows Defender - 禁用域内所有计算机上的 Windows Defender
  • 数字签名通信(始终) - 可以在域控制器上禁用或启用 SMB 签名

Question: What type of trust flows from a trusting domain to a trusted domain? Answer: Directional

Question: What type of trusts expands to include other trusted domains? Answer: Transitive

Task 6 域服务和域身份验证

AD 域服务是 AD 网络的核心功能,它们允许对域、安全证书、LDAP(轻量目录访问协议)等进行管理。这些服务是域控制器用来决定如何操作以及为域提供哪些服务的关键因素。AD 域服务是构建和维护一个有效的 AD 网络的基础。

域服务

域服务就是字面意思,它们是域控制器向单域或域树的其它部分提供的服务。可以向域控制器添加各种各样的服务,但在这里,下面是将 Windows Server 设置为域控制器时默认提供的域服务:

  • LDAP - 轻量级目录访问协议(Lightweight Directory Access Protocol):提供应用程序与目录服务之间的通信。
  • 证书服务 - 允许域控制器创建、验证和撤销公钥证书。
  • DNS、LLMNR、NBT-NS - 域名服务,用于识别IP主机名。

域服务是域控制器的核心功能,它们支持目录服务、证书管理和域名解析等关键任务,以确保域和域树内的资源和身份得到有效管理和保护。

域身份验证

在 Active Directory 中最重要的部分,同时也是最容易受到攻击的部分,就是身份验证协议的设置。对于 Active Directory,有两种主要的身份验证类型:NTLM 和 Kerberos,二者的基本概念如下:

  • Kerberos:Active Directory 的默认身份验证服务使用票据授予票据和服务票据来验证用户,并为用户提供访问域内其他资源。
  • NTLM:默认的 Windows 身份验证协议使用加密的挑战/响应协议。

Active Directory 域服务是攻击者的主要入口点,并包含了一些最容易受攻击的协议。

Question: What type of authentication uses tickets? Answer: Kerberos

Question: What domain service can create, validate, and revoke public key certificates? Answer: Certificate Services

Task 7 云上域环境

近来,有一个趋势是企业正在将业务逐步上云,其中最显著的云 AD 供应商是 Azure AD。与传统的本地 AD 网络相比,Azure AD 的默认设置更加安全,但仍然可能存在潜在的安全风险。

Azure 域

Azure 作为连接实际 AD 和用户登录的中介,提供了更安全的域之间交互方式,有效减少了许多 AD 攻击的可能性。

Azure 域连接示意图

云上域安全

将云端 AD 环境与传统物理网络的 AD 域环境进行比较来展示云端如何提供更多的安全措施:

Windows Server AD Azure AD
LDAP Rest APIs
NTLM OAuth/SAML
Kerberos OpenID
OU Tree Flat Structure
Domains and Forests Tenants
Trusts Guests

Question: What is the Azure AD equivalent of LDAP? Answer: Rest APIs

Question: What is the Azure AD equivalent of Domains and Forests? Answer: Tenants

Question: What is the Windows Server AD equivalent of Guests? Answer: Trusts

Task 8 Hands-On Lab

powershell -ep bypass - 加载绕过执行策略的 powershell shell

. .\PowerView.ps1 - 导入 PowerView 模块

Get-NetComputer -fulldata | select operatingsystem - 获取域内所有操作系统版本

Get-NetUser | select cn - 获取域内所有用户名

Get-NetGroup -GroupName * - 获取域内所有组名

Get-NetUser -SPN | ?{$_.memberof -match 'Domain Admins'} - 获取所有具有服务主体名称(SPN)的用户,并筛选出其中隶属于 “Domain Admins” 组的用户

Question: What is the name of the Windows 10 operating system? Answer: Windows 10 Enterprise Evaluation

Question: What is the second “Admin” name? Answer: Admin2

Question: Which group has a capital “V” in the group name? Answer: Hyper-V Administrators

Question: When was the password last set for the SQLService user? Answer: 5/13/2020 8:26:58 PM

LEGAL / ETHICAL NOTICE本文仅用于安全研究与学习交流,请勿将相关技术用于未授权目标。
DIR /红队攻防#Active Directory#Red Team#TryHackMe#Windows

讨论与补充

/ SEARCH DATABASE ESC