- 文档
- 网络安全
- 教程
【免费下载链接】Learn-Web-Hacking
Study Notes For Web Hacking / Web安全学习笔记
活动目录(Active Directory,AD)是 Windows Server 域环境的基石,本文基于 Learn-Web-Hacking 仓库中 source/intranet/windows/domain/ad.rst 的主干内容,系统讲解 AD 的逻辑与物理组件、名称空间、对象模型,并结合仓库中 域结构、域内用户、内网协议、常见攻击 与 防护思路 等章节,帮助你建立从"理解域"到"攻防实战"的完整知识链,为后续的 Kerberos、ADCS、组策略与域渗透攻击铺垫扎实基础。
一、活动目录是什么:Windows 域环境的目录服务
活动目录是面向 Windows Server 的目录服务(Directory Service)。它存储了有关网络对象(用户、计算机、组、打印机等)的信息,并且让管理员和用户能够查找和使用这些信息。
在 Windows 域环境中,所有资源的身份与权限信息都汇聚在活动目录中。域内的一台计算机加入域、一个用户登录域、管理员下发组策略,本质上都是在与活动目录交互。活动目录因此既是"身份认证的中心",也是"策略下发的中枢",是内网渗透中几乎所有攻击路径的最终目标。
仓库中的 域 章节补充了它的逻辑地位:域(Domain)指将网络中多台计算机在逻辑上组织到一起、进行集中管理的逻辑环境,域是组织与存储资源的核心管理单元。域中至少有一台域控制器,域控制器中保存着整个域的用户账号和安全数据库。
二、ADDS:活动目录的目录服务实现
Active Directory 提供目录服务的组件被称作Active Directory 域服务(Active Directory Domain Services,ADDS)。ADDS 负责目录数据库的存储、增删改查等工作,可以用在多种局域网、广域网的场景中。
理解 ADDS 有两种视角:
- 逻辑视角:从数据组织与目录结构上看,ADDS 的组件可以分为Partition、Schema、Domain、Domain tree、Forest、OU、Container;
- 实现视角:从功能部署与复制机制上看,ADDS 可以分为Domain controller(域控制器)、Data store(数据存储)、Global catalog server(全局编录服务器)、RODC(只读域控制器)、Site(站点)、Subnet(子网)。
下面分别展开讲解这两类组件,它们正是理解"域是如何运转的"以及"域渗透攻击的目标在哪里"的关键。
2.1 逻辑组件:目录数据如何组织
Partition(分区)
Partition 也被称为naming context(命名上下文),是 ADDS 数据库的一部分。Active Directory 数据库按分区组织,每个分区对应一个独立的复制单元。常见的分区包括:
- Schema 分区:包含目录中所有对象类与属性的定义;
- Configuration 分区:包含域林中拓扑、站点等配置信息;
- Domain 分区:包含某个域内的用户、组、计算机等对象;
- Application 分区:供特定应用使用(如 DNS 区域)。
Schema(架构)
Schema 是存储在 ADDS 中数据的定义,相当于数据库的表结构定义。它规定了目录中允许存在哪些对象类型(objectClass),每种对象可以拥有哪些属性(attribute),以及属性值的语法和约束。Schema 在整个域林范围内一致,因此修改 Schema 属于高风险操作。
Domain(域)、Domain tree(域树)、Forest(林)
- 域(Domain):ADDS 中管理与复制的核心逻辑单元,域内对象共享同一个 Domain 分区;
- 域树(Domain tree):由多个域组成,这些域共享同一表结构和配置(即共享 Schema 与 Configuration 分区),形成一个连续的命名空间(namespace);
- 林(Forest):一个复杂的 AD 实例,由一个或数个域树组成,每个域树都有自己唯一的名称空间。林是 AD 部署的顶层边界,林根域下的信任关系决定整个森林的访问边界。
OU(组织单位)与 Container(容器)
- OU(Organizational Unit,组织单位)是一个容器对象,将域中的对象组织成逻辑组,帮助管理员管理。OU 中可以包含用户、计算机、工作组、打印机、安全策略以及其他组织单位等,是可以嵌套和委派管理权限的最小管理单元;
- Container(容器)是为 ADDS 提供组织框架的对象,是对象的逻辑归属节点。与 OU 不同,系统内置的容器(如 Users、Computers 等)不能直接附加组策略。
结合仓库 域结构 一节:域树由多个共享同一表结构和配置的域组成;林由一个或数个域组成,每棵域树都有自己唯一的名称空间。域信任类型(Tree-Root Trust、Parent-Child Trust、Forest Trust、Realm Trust、External Trust、Shortcut Trust)决定了跨域访问资源的边界,详见下文"信任关系"。
2.2 实现组件:域如何部署与复制
Domain controller(域控制器,DC)
域控制器是 ADDS 目录的宿主。ADDS 的目录存储在域控制器内,一个域内可以有多台域控制器,每一台域控制器的地位几乎是平等的,保存着几乎相同的数据库。在一台域控制器上添加一个用户账户后,这个账户会被自动复制到其他域控制器的数据库中。
每个域控制器都保存有完整的 ADDS 数据,每台域控都可以处理数据的修改,并同步至其他的域控——这是理解 DCSync 等攻击的前提:只要拿到足够权限,任意一台"看似普通"的域控/高权限账户都可以向其他域控请求数据同步。
Data store(数据存储)
域控会有一份数据拷贝(Data store),默认存储在C:\Windows\NTDS目录下(即ntds.dit文件)。这份文件是域内所有用户 NTLM 哈希、Kerberos 密钥等凭据的唯一落盘载体,因此ntds.dit的提取(如通过vssadmin卷影拷贝、ntdsutil或 mimikatzlsadump::dcsync/lsadump::sam)是域渗透中"拿下全域"的标志性动作。
Global catalog server(全局编录服务器)
全局编录服务器是存储全局编录(Global Catalog,GC)的域控。全局编录以只读的方式存储了一个 multiple-domain forest(多域林)中所有对象的部分属性,用于加速跨域搜索(例如在域林中查找某个用户位于哪个域)。并非所有域控都是 GC,但域林中第一台域控默认即是 GC。
RODC(Read-only domain controller,只读域控制器)
RODC 是只读域控制器,持有目录数据库的只读副本,不能本地处理写操作,写请求需转发给可写域控。RODC 通常部署在物理安全无法保证的分支机构场景,即使 RODC 被攻破,攻击者也无法直接篡改目录,且 RODC 只缓存有限的凭据,降低了凭据泄露面。
Site(站点)与 Subnet(子网)
- Site表示一个物理网络区域,用于优化复制流量与登录流量;
- Subnet将 IP 地址段映射到站点,使客户端能就近联系最近的域控(优先使用站点内域控进行认证)。
从实现上看,正是这些组件的协作,构成了"多域控、多站点、可复制、可容错"的域基础架构。
三、名称空间:在区域内用名称找到信息
名称空间(namespace)是一块界定好的区域,在区域内可以用名称找到与之相关的信息。ADDS 使用 X.500/DNS 式的层次化命名:
- 域的 DNS 名称(如
corp.example.com)本身就是名称空间的一部分; - 对象通过其DN(Distinguished Name,可分辨名称)与RDN(相对可分辨名称)在目录树中定位;
- 用户访问域内资源时,名称解析将名称转换为可寻址的对象——这直接引出了内网名称解析协议的重要性(详见下文"域内关键协议")。
域树(Trees)由多个域组成,这些域共享同一表结构和配置,形成一个连续的命名空间;林(Forests)由一棵或多棵域树构成,每棵域树都有自己唯一的名称空间,通过信任关系相互联通。
四、对象与属性:AD 的一切都是对象
ADDS 内的资源都是以**对象(Object)的形式存在的,对象通过属性(Attribute)**来描述其特征。
例如一个用户对象CN=zhangsan,OU=研发部,DC=corp,DC=example,DC=com,它的常见属性包括sAMAccountName(登录名)、userPrincipalName(UPN 登录名)、objectSid(SID)、memberOf(所属组)等。对象的属性值中,最敏感的一类是凭据相关字段:
- 用户对象的 NTLM 哈希由
unicodePwd属性承载; - Kerberos 密钥派生自用户密码;
servicePrincipalName(SPN)属性记录了该账户承载的服务标识,是 Kerberoasting 攻击的枚举对象。
结合仓库 域内用户 一节:域环境中的用户账户保存在活动目录中,一个域用户可以在域中的任何一台计算机上登录;域中用户使用 SID(Security Identifier)表明身份,用 NTLM 哈希或 Kerberos 验证身份。所有加入域的主机都会有一个机器用户(机器账号),用户名以
$结尾。
五、复制模型与信任关系:域间的协作机制
5.1 复制模型
AD 数据库存在两种复制模式(详见 域结构):
- 多主机复制模式(Multi-master Replication Model):可以直接更新任何一台域控制器内的 AD 对象,并将更新后的对象复制到其他域控制器。域内大部分数据都使用多主机模式进行复制;
- 单主机复制模式(Single-master Replication Model):由一台被称作**操作主机(Operations Master,即 FSMO)**的域控制器负责接收更改数据的请求,再复制到其他域控。仅少数敏感操作(如 Schema 修改、RID 池分配等)使用该模式。
复制是 DCSync 攻击的机理基础:域控之间通过远程目录协议 MS-DRSR 定期同步,由需要同步的域控向其他服务器发送GetNCChanges请求——攻击者正是利用这一合法机制导出全域哈希(详见 常见攻击)。
5.2 信任关系
两个域之间需要创建信任关系,才可以访问对应域内的资源。Active Directory 的信任方式(详见 域结构)包括:
| 信任类型 | 特点 |
|---|---|
| Tree-Root Trust | 双向、具有转移性(transitive) |
| Parent-Child Trust | 具有转移性、双向信任 |
| Forest Trust | 两个林创建信任后,林中所有域相互信任;信任关系无法自动扩展到其他林 |
| Realm Trust | ADDS 域可与非 Windows 系统的 Kerberos 域创建信任 |
| External Trust | 位于两个林内的域之间可通过外部信任建立信任关系 |
| Shortcut Trust | 用于缩短跨域验证用户身份的时间 |
信任关系界定了攻击者的横向移动边界:拿到某个域的域管理员权限后,通过林信任/域信任可以横向进入信任域,这也是"跨域渗透"的理论基础。
六、域内关键协议:名称解析与认证的底层支撑
AD 环境高度依赖名称解析与认证协议。Windows 查询名称解析的顺序为DNS → mDNS → LLMNR → NBNS(详见 内网协议):
- NetBIOS / NBNS:NetBIOS 基于网络交互,通常使用 UDP 137、UDP 138、TCP 139 端口;NBNS(NetBIOS Name Service)监听 UDP 137,提供名称解析、状态查询、注册/释放 NetBIOS 名三种功能,可用
nbtstat工具管理。Windows 安装 TCP/IP 协议时默认启用该协议,可能导致未设置权限校验的网络资源被访问; - LLMNR:链路本地多播名称解析(Link-Local Multicast Name Resolution),基于 DNS 数据包格式,Windows Vista 后引入,监听 UDP 5355,多播地址为
224.0.0.252(IPv6 为FF02:0:0:0:0:0:1:3); - mDNS:multicast DNS,Windows 10 引入,监听 UDP 5353,多播地址
224.0.0.251(FF02::FB),在无传统 DNS 服务器时实现局域网内主机相互发现与通信; - WPAD:网络代理自动发现协议(Web Proxy Auto-Discovery),客户端使用 DHCP 和/或 DNS 发现方法来定位配置文件 URL,下载后执行以测定特定 URL 应使用的代理。
这些协议在真实环境中常被用作欺骗与降级攻击的入口:当 DNS 解析失败时,系统会回退到 LLMNR/NBNS 多播查询,攻击者只需在同一链路上响应即可获得 NTLM 凭据(即 Responder 类攻击的经典利用面)。在域渗透的信息收集阶段,Windows 信息收集 中列举了nltest /domain_trusts、net time /domain、dsquery user、net group "Domain Admins" /domain等命令来定位域控、枚举用户与域管理员。
七、攻防视角下的 AD:攻击路径与防护要点
理解 AD 架构之后,域渗透的攻击路径就非常清晰了。仓库 域内攻击思路 概括了三条主线:
- 获取域控权限:通过域控相关漏洞,或抓取 hash(尤其是域管理员、运维等高权限账号的哈希);
- 控制入域机器:下发恶意策略控制、获取域内用户凭证、利用错误的域管理配置、域内 relay;
- 获取服务票据:攻击 Exchange 等承载高价值服务的服务器。
常见攻击 章节给出了具体的攻击手法及其与 AD 组件的对应关系:
| 攻击 | 对应的 AD 机制/组件 |
|---|---|
| 黄金票据(Golden Ticket) | 伪造 TGT,需与 DC 通信并获取 krbtgt 的 hash,可获取任何 Kerberos 服务权限 |
| 白银票据(Silver Ticket) | 伪造 TGS,只需目标服务的 NTLM hash,只能访问指定服务 |
| DCSync | 滥用域控间GetNCChanges复制机制导出全域哈希;需要 Administrators / Domain Admins / Enterprise Admins 组成员、域控计算机账户,或具备DS-Replication-Get-Changes等 DACL 权限;拥有 WriteDACL 时也可写入上述 DACL 完成攻击 |
| DCShadow | 在 AD 环境中创建恶意域控制器,并推送恶意对象 |
| PTH(哈希传递) | 直接传递 NTLM 哈希进行认证 |
| PtT(票据传递) | 使用 Kerberos 票据代替明文密码或 NTLM 哈希 |
| Kerberoasting | 域内任何主机通过查询 SPN 向域内所有服务请求 TGS,再离线暴力破解;DONT_REQ_PREAUTH账户还可被 AS-REP Roasting 离线破解 |
| Kerberos 委派攻击 | 基于域内已配置委派(非约束/约束委派)的账户获取其他账户权限 |
说明:Kerberos 认证流程与 SPN 注册机制(Local System / Network Service 权限注册在机器账户下,域用户权限注册在域用户账户下)详见仓库 Kerberos 的 Windows 实现,是理解票据攻击的必需前置知识。
针对上述攻击,防护 章节给出的对抗思路包括:使用 ATA 等商业化防护工具、安装杀毒软件与 EDR、关闭高危服务、统一配置防火墙策略、对域控等高危账号使用白名单进行行为管理、检测高危操作(权限提升、高危账号密码修改/重置)、对大量尝试登录/信息查询的行为频率建模并报警、及时安装补丁、通过 GPO 下发自启动与计划任务对特定攻击行为进行监控。
八、实战速查:面向域渗透的 AD 关键结论
- AD 的核心是 ADDS:目录数据库(
C:\Windows\NTDS)是所有身份凭据的最终落盘位置,ntds.dit是域渗透的"圣杯"; - 逻辑组件记住 7 类:Partition、Schema、Domain、Domain tree、Forest、OU、Container;实现组件记住 6 类:Domain controller、Data store、Global catalog server、RODC、Site、Subnet;
- 复制机制即攻击面:多主机复制让任意域控可处理修改并同步,DCSync 正是利用
GetNCChanges复制请求导出哈希; - 名称解析回退是欺骗入口:DNS → mDNS → LLMNR → NBNS 的回退链让 LLMNR/NBNS 欺骗(Responder 类)在未加固域中极易得手;
- 信任关系决定横向边界:林信任、域信任、外部信任是跨域移动的路径,域结构 中六种信任类型的转移性决定了边界松紧;
- 对象属性承载凭据:用户对象、机器用户(
$结尾)、SPN 属性是 Kerberoasting、AS-REP Roasting 等离线破解攻击的枚举对象。
掌握本篇文章的 AD 架构知识后,建议继续按仓库 域渗透 章节顺序深入:先读 域内用户 理解身份模型,再读 Kerberos 的 Windows 实现 与 内网协议 打牢协议基础,最后结合 常见攻击、ADCS、组策略 与 防护 完成从原理到攻防对抗的闭环。
- 文档
- 网络安全
- 教程
【免费下载链接】Learn-Web-Hacking
Study Notes For Web Hacking / Web安全学习笔记
相关推荐
GOAD-Light 轻量级 Active Directory 渗透实验环境:双域架构、攻击场景与自动化部署详解
GOAD Light 轻量级 Active Directory 渗透实验环境:双域架构、攻击场景与自动化部署详解 本文基于 GOAD 仓库中 GOAD Ligh
网络安全渗透测试Responder与Active Directory:域环境下的渗透测试
在Active Directory域环境中进行渗透测试时, Responder工具 是网络安全专家不可或缺的利器。这款强大的渗透测试工具专门用于捕获和利用网络认
网络安全Learn-Web-Hacking 认证基石:Kerberos 协议原理、双向认证流程与域渗透攻击面
Learn Web Hacking 认证基石:Kerberos 协议原理、双向认证流程与域渗透攻击面 Kerberos 是 Windows 域环境中的默认身份验
文档网络安全教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考