Windows 域基础

工作组(Workgroup)

在介绍 Windows 域之前,需要先了解 Windows 最基础的网络组织形式——工作组(Workgroup)。

工作组是一种去中心化的管理模式。

在工作组环境中,每台计算机都是独立的个体,拥有自己的:

  • 本地用户(Local User)
  • 本地用户组(Local Group)
  • 本地安全策略
  • 本地权限配置

例如,有三台计算机:

PC01
├── Administrator
├── Alice
└── Bob

PC02
├── Administrator
├── Alice
└── Bob

PC03
├── Administrator
├── Alice
└── Bob

虽然这些账户名字可能相同,但实际上它们彼此独立。

PC01 上的 Alice 和 PC02 上的 Alice 并不是同一个用户,它们拥有不同的 SID、不同的密码和不同的权限。

如果 Alice 修改了密码,那么管理员需要到其他机器上重新修改。

如果 Bob 离职,那么管理员需要逐台删除账户。

工作组中的每台计算机都像一个独立的小王国,没有统一的管理中心。

工作组存在的问题

当计算机数量较少时,工作组模式已经足够使用。

例如:

  • 家庭网络
  • 小型办公室
  • 实验环境
  • 几台服务器组成的小网络

但是,当企业规模扩大之后,工作组模式会遇到很多问题。

用户管理困难

如果公司有 500 台计算机,每台机器都需要维护本地账户。

员工修改一次密码,管理员可能需要同步很多台机器。

权限管理复杂

假设财务部门只能访问财务服务器。

在工作组模式下,管理员可能需要逐台配置权限:

PC01 -> 配置
PC02 -> 配置
PC03 -> 配置
...
PC500 -> 配置

维护成本非常高。

无法统一安全策略

例如企业要求:

  • 密码至少 12 位
  • 禁止使用 USB
  • 开启防火墙
  • 自动安装补丁

工作组环境下通常需要人工逐台配置。

资源共享困难

如果员工需要访问文件服务器:

\\fileserver\share

服务器必须单独维护自己的用户数据库。

很多企业甚至会出现:

  • 文件服务器一个密码
  • 数据库一个密码
  • 邮件系统一个密码

用户需要记住多个账户。

Windows 域的核心组成

为了解决工作组管理混乱的问题,微软提出了 Windows 域(Windows Domain)的概念。

Windows 域是一种集中式管理架构。

它通过一台或多台服务器统一管理整个网络中的:

  • 用户
  • 计算机
  • 权限
  • 安全策略
  • 网络资源

负责管理整个域的服务器,称为:域控制器(Domain Controller,DC)。所有域成员都不再各自维护独立的用户体系,而是将身份认证交给域控制器完成。

因此:工作组是去中心化管理,而 Windows 域是集中式管理。Windows 域并没有改变网络通信方式,而是在网络之上增加了一套统一的身份和权限管理体系。

但 Windows 域并不是简单地由一台域控和若干客户端组成,而是一套层次化的目录服务系统(Directory Service)。

从逻辑结构上来看,一个典型的 Active Directory 域环境可以表示为:

Forest(森林)
    │
    ├── Tree(树)
    │      │
    │      └── Domain(域)
    │              │
    │              ├── Active Directory
    │              ├── Domain Controller
    │              ├── OU
    │              ├── GPO
    │              ├── User
    │              ├── Computer
    │              └── Group
    │
    └── Site(站点)

其中,Active Directory 用于保存各种对象的信息,而域控负责提供认证、查询和管理服务。

Forest(森林)

森林(Forest)是 Active Directory 中最大的逻辑管理单元。

一个森林可以包含一个或多个域。

例如:

Forest
    │
    └── corp.local

也可以是:

Forest
    │
    ├── corp.local
    ├── dev.corp.local
    └── test.corp.local

森林中的所有域共享:

  • Schema(架构)
  • Configuration(配置)
  • Global Catalog(全局编录)

同时,森林中的域之间默认建立双向传递信任关系。

对于绝大多数企业来说,一个森林已经能够满足需求,因此很多环境实际上只有一个森林。

信任关系(Trust Relationship)

信任关系定义了两个域之间是否允许互相进行身份认证。

单向信任与双向信任

单向信任(One-Way Trust)

Domain A  →  信任  →  Domain B

Domain A 信任 Domain B,意味着 Domain B 的用户可以访问 Domain A 的资源,但反过来不行。

双向信任(Two-Way Trust)

Domain A  ↔  互信  ↔  Domain B

两个域中的用户都可以访问对方的资源。

传递性信任(Transitive Trust)

如果 A 信任 B,B 信任 C,那么传递性信任意味着 A 也隐式信任 C。

同一个森林内部的域之间默认建立双向传递信任,因此森林内所有域的用户在理论上可以访问整个森林范围内的资源。

外部信任与林信任

外部信任(External Trust)

两个不同森林中的域之间建立的信任,默认是非传递的。

林信任(Forest Trust)

两个完整森林之间建立的信任,可以是传递的,但需要双方森林根域管理员手动配置。

SID 过滤(SID Filtering)

跨域访问时,Windows 默认会过滤票据中携带的外部域 SID,防止攻击者通过 SID History 伪造权限。

这种机制称为 SID Filtering(也叫 Quarantine)。

在林信任场景中,SID Filtering 默认启用;而旧版本的外部信任可能没有启用,这是历史漏洞利用的重要条件之一。

Tree(树)

树(Tree)是森林中的逻辑组成部分。

树由多个具有连续 DNS 命名空间的域组成。

例如:

corp.local
dev.corp.local
test.corp.local

它们共同组成一棵树。

如果域之间没有连续的命名空间:

corp.local
example.com

则它们通常属于不同的树,但仍然可以存在于同一个森林中。

树的设计主要是为了满足大型企业复杂的域名规划需求。

Domain(域)

域(Domain)是 Windows 域环境中最基本的管理单元。

一个域通常包含:

  • 用户
  • 计算机
  • 安全组
  • 域控制器
  • OU
  • GPO

例如:

corp.local

域具有自己独立的:

  • 身份认证体系
  • 用户数据库
  • 安全策略
  • SID 命名空间

在企业中,一个部门或者一个组织通常不会单独建立域,而是整个公司使用一个域进行统一管理。

SID(安全标识符)

SID(Security Identifier)是 Windows 为每个安全主体(用户、计算机、组等)分配的唯一标识符。

SID 格式

S-1-5-21-<DomainIdentifier>-<RID>

例如一个域用户的 SID:

S-1-5-21-3623811015-3361044348-30300820-1001

各字段含义:

字段 示例值 含义
S S SID 固定前缀
修订版本 1 固定为 1
颁发机构 5 NT Authority
子颁发机构 21 域账户标识
Domain Identifier 3623811015-3361044348-30300820 域 SID(三段随机值)
RID 1001 相对标识符,对象唯一号

Domain SID 与 Object SID

  • Domain SIDS-1-5-21-<三段随机值>,每个域在创建时生成,全局唯一
  • Object SID:Domain SID + RID,是每个对象的完整标识

同一个域内所有对象共享相同的 Domain SID,只通过 RID 区分。

Well-Known SID

Windows 保留了一批预定义 SID,不属于任何域:

SID 含义
S-1-5-18 SYSTEM(本地系统)
S-1-5-19 LOCAL SERVICE
S-1-5-20 NETWORK SERVICE
S-1-1-0 Everyone
S-1-5-11 Authenticated Users
S-1-5-7 Anonymous Logon

RID 与特殊账户

域中某些账户的 RID 是固定的:

RID 账户 含义
500 Administrator 默认域管理员
501 Guest 来宾账户
502 krbtgt Kerberos 服务账户

Site(站点)

Site(站点)是 Active Directory 中容易被忽略的一个概念。

Site 并不是逻辑组织结构,而是网络拓扑结构。

例如:

北京数据中心
    DC01

上海数据中心
    DC02

深圳数据中心
    DC03

管理员可以将不同地域划分为不同站点。

这样客户端会优先访问距离最近的域控制器,从而减少网络延迟和跨地域流量。

站点还影响:

  • 域控制器定位
  • 域数据复制
  • Kerberos 认证
  • GPO 获取

客户端可以使用:

nltest /dsgetsite

查看自己所属的站点。

Active Directory(AD)

Active Directory(简称 AD)是微软提供的目录服务。

可以简单理解为:一个用于保存企业网络资源信息的目录数据库。

AD 中存储着几乎所有重要对象:

  • User(用户)
  • Computer(计算机)
  • Group(组)
  • OU(组织单位)
  • GPO(组策略对象)
  • Contact(联系人)
  • Printer(打印机)
  • Shared Folder(共享资源)
  • Service Account(服务账户)
  • Certificate Template(证书模板)

每个对象都拥有自己的属性。

例如用户对象:

sAMAccountName
userPrincipalName
objectSid
memberOf
pwdLastSet
servicePrincipalName

计算机对象:

dNSHostName
operatingSystem
objectSid
servicePrincipalName

管理员通过这些对象和属性管理整个企业网络。

Domain Controller(域控制器)

域控制器(Domain Controller,DC)是安装了 Active Directory Domain Services(AD DS)的服务器。

它负责维护整个域环境的正常运行。

主要功能包括:

保存 AD 数据库

AD 数据库存储在:

C:\Windows\NTDS\ntds.dit

域中的对象信息都保存在其中。

提供身份认证服务

用户登录域时,需要由域控制器验证身份。

域控支持两种主要认证协议:

Kerberos

域环境的默认认证协议,基于票据(Ticket)机制。

整个认证流程中密码本身不在网络上传输,而是通过密钥派生和票据交换完成身份验证。

主要流程分为三个阶段:

1. AS-REQ / AS-REP    客户端向 KDC 申请 TGT(票据授予票据)
2. TGS-REQ / TGS-REP  客户端凭 TGT 向 KDC 申请目标服务的 ST(服务票据)
3. AP-REQ             客户端持 ST 访问目标服务

其中 KDC(Key Distribution Center)角色由域控承担。

NTLM

较旧的认证协议,基于挑战-响应(Challenge-Response)机制。

当出现以下情况时通常回退到 NTLM:

  • 通过 IP 地址而非主机名访问
  • 客户端不在域内
  • 某些跨林访问场景

NTLM 不颁发票据,而是由目标服务器将挑战和响应转发给域控进行验证。

两种协议的详细原理可见:https://f0rget.me/2023/02/28/intranet-kerberos-auth/

提供 LDAP 服务

客户端和管理工具通常通过 LDAP 查询域中的对象信息。

例如:

  • 查询用户
  • 查询计算机
  • 查询组
  • 查询组织单位

提供 DNS 服务

大多数企业都会让域控制器同时承担 DNS 服务。实际上 DNS 服务器角色可以放到其他 Windows Server。

因为很多域功能都依赖 DNS 定位域控制器。

例如:

_ldap._tcp.dc._msdcs.domain.local

域数据复制

大型企业通常拥有多个域控。

多个域控之间通过复制机制保持数据一致。

GPO 分发

域控制器负责向客户端提供组策略数据。

客户端会定期向域控请求最新策略。

常见管理工具

Active Directory Users and Computers(dsa.msc)

这是最常用的域管理工具,也是管理员日常使用频率最高的控制台。

主要用于管理 Active Directory 中的基本对象,包括:

  • 创建、删除域用户
  • 创建、删除计算机对象
  • 创建和管理安全组
  • 管理组织单位(OU)
  • 将计算机加入指定 OU
  • 重置用户密码
  • 启用或禁用账户
  • 查看对象属性

例如:

Company
│
├── HR
├── RD
├── Server
└── Workstation

管理员通常通过 dsa.msc 维护整个企业的组织架构。

Active Directory Administrative Center(dsac.exe)

这是微软后来推出的新一代 AD 管理工具。

相比传统的 dsa.msc,它提供了:

  • 更现代化的图形界面
  • PowerShell 集成
  • 回收站(AD Recycle Bin)管理
  • 更丰富的对象属性展示
  • 更方便的批量管理

例如:

可以直接恢复误删除的用户对象,而不需要复杂的命令操作。

很多 PowerShell 操作也可以通过该工具自动生成。

因此:dsa.msc 更像传统管理工具,而 AD Administrative Center 更偏向现代化管理平台。

Group Policy Management(gpmc.msc)

组策略管理控制台用于管理 GPO(Group Policy Object)。

管理员可以通过它:

  • 创建 GPO
  • 编辑 GPO
  • 删除 GPO
  • 将 GPO 链接到 Domain
  • 将 GPO 链接到 OU
  • 配置 GPO 优先级
  • 查看策略继承关系
  • 备份和恢复 GPO

例如:

Default Domain Policy

Default Domain Controllers Policy

Finance Policy

Server Security Policy

都可以在 gpmc.msc 中统一管理。

可以理解为:企业安全配置和批量运维配置的管理中心。

DNS Manager(dnsmgmt.msc)

Windows 域严重依赖 DNS 服务。

实际上,客户端查找域控制器时,首先依赖 DNS 记录。

例如:

_ldap._tcp.dc._msdcs.domain.local

DNS Manager 用于:

  • 管理 DNS 区域(Zone)
  • 添加和删除 DNS 记录
  • 管理 SRV 记录
  • 管理 A、AAAA、CNAME、PTR 等记录
  • 查看动态 DNS 更新
  • 管理域控自动注册的 DNS 信息

很多企业会将 DNS 服务和域控制器部署在同一台服务器上,因此 DNS Manager 也是域管理员的重要工具之一。

可以理解为:域环境名称解析服务的管理控制台。

ADSI Edit(adsiedit.msc)

ADSI Edit 是一个高级 Active Directory 编辑工具。

与 dsa.msc 不同,它不是面向日常管理,而是面向底层目录对象管理。

它可以直接查看和修改 Active Directory 对象的原始属性。

例如:

用户对象可以看到:

objectSid

servicePrincipalName

userAccountControl

msDS-KeyCredentialLink

adminCount

memberOf

计算机对象可以看到:

dNSHostName

servicePrincipalName

msDS-AllowedToActOnBehalfOfOtherIdentity

还可以浏览不同命名上下文:

  • Default Naming Context
  • Configuration
  • Schema
  • RootDSE

很多在 dsa.msc 中看不到的属性,都可以通过 ADSI Edit 查看。

因此,ADSI Edit 常被称为:Active Directory 的注册表编辑器。

由于它可以直接修改底层目录数据,因此管理员通常只在高级维护或故障排查时使用,不建议随意修改未知属性。

Computer(计算机对象)

任何加入域的计算机,都会在 Active Directory 中创建一个计算机对象。

例如:

WIN10-01$
FILESERVER$
WEB01$
SQL01$

计算机名称通常以 $ 结尾。

很多人会疑惑:

为什么机器也需要账户?

原因是计算机本身也需要证明自己的身份。

例如:

  • 登录域
  • 与域控建立信任关系
  • 获取组策略
  • 访问共享资源
  • 与其他服务器进行认证

因此,计算机账户也拥有:

  • SID
  • 密码
  • 权限
  • 安全标识

机器密码

每个计算机账户都会生成自己的密码。

机器密码由系统自动维护。

默认情况下:

  • 随机生成,密码强度不低于 120 位熵值
  • 每 30 天自动更新一次
  • 用户通常无感知

密码变更由客户端的 Netlogon 服务主动发起,而不是由域控推送。

变更周期受组策略控制:

计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项
→ Domain member: Maximum machine account password age

对应注册表位置:

HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\MaximumPasswordAge

默认值为 30 天。虽然可以修改,但微软不推荐将值设置为大于 30 天,因为过长的密码有效期为攻击者提供了更大的横向移动窗口。

计算机通过机器密码与域控建立安全通道(Secure Channel)。

可以使用:

nltest /sc_query:domain.local

查看安全通道状态。

域控制器本身也是域成员计算机,因此域控的机器账户密码同样会定期变更。但与普通计算机不同:域控的机器账户密码在所有域控制器之间通过 AD 复制机制保持同步,确保任意一台域控都能验证安全通道。

计算机对象的关键安全属性

msDS-AllowedToDelegateTo

约束委派的配置属性,指定该计算机账户可以代表用户访问哪些目标服务。

例如:

msDS-AllowedToDelegateTo: MSSQLSvc/sql01.corp.local:1433

配置了约束委派的机器账户是委派攻击的核心目标。

msDS-AllowedToActOnBehalfOfOtherIdentity

基于资源的约束委派(RBCD)的配置属性,存储在被委派的目标对象上,指定哪些账户可以代表其他用户访问自己。

与传统约束委派的区别:

  • 传统约束委派:配置在发起方账户上,需要域管权限
  • RBCD:配置在目标方账户上,只需对目标对象有写权限

这意味着:如果攻击者对某机器对象有写权限,就可以直接配置 RBCD 完成横向移动,而不需要域管权限。

ms-DS-MachineAccountQuota

这是域级别的属性,定义了普通域用户(非管理员)最多可以将多少台计算机加入域。

默认值为 10

安全意义:

  • 攻击者只需拥有一个普通域账户,即可创建最多 10 个计算机账户
  • 新创建的计算机账户创建者对该对象拥有写权限
  • 配合 RBCD 可以构造权限提升路径

许多企业没有修改这个默认值,这是 RBCD 攻击链中经常被利用的起点。

计算机加入域

计算机加域时,大致会完成以下工作:

  1. 创建计算机对象。
  2. 创建机器账户。
  3. 建立安全通道。
  4. 保存机器密码。
  5. 在 DNS 中注册主机记录。
  6. 获取域策略。

默认情况下,域管理员组(Domain Admins)会被加入本地 Administrators 组,因此域管理员可以统一管理域成员计算机。

User(用户对象)

用户对象表示域中的身份。

域用户可以在整个域范围内进行认证。

除了普通员工账户,还存在一些特殊账户:

Administrator

默认管理员账户。

RID 为 500。

Guest

默认来宾账户。

RID 为 501。

krbtgt

Kerberos 服务账户。

用于支持 Kerberos 身份认证。

RID 为 502。

安全要点:

krbtgt 账户的密码是在域创建时设置的,之后默认永远不会自动修改

这意味着:

  • 如果攻击者获取了 krbtgt 的 NTLM Hash,就可以伪造任意用户的 TGT(Golden Ticket)
  • 由于密码不会变更,即使组织定期修改域管密码,该 Hash 仍然有效
  • Golden Ticket 可以伪造任意 SID、任意组成员身份,理论上拥有整个森林的完全控制权

因此,微软建议域管理员定期手动重置 krbtgt 密码,且需要连续重置两次(第一次作废旧票据,第二次确保新密钥生效)。

服务账户

很多后台服务使用独立账户运行。

例如:

svc_sql
svc_backup
svc_web

此外,Windows 还提供:

  • Managed Service Account(MSA)
  • Group Managed Service Account(gMSA)

用于简化服务账户管理。

用户对象的关键安全属性

从攻击者视角看,以下几个属性比账户名更重要。

userAccountControl(UAC 标志位)

这个属性是一个 32 位整数,每个比特位对应账户的一项设置。

常见标志位:

标志位名称 十六进制值 含义
ACCOUNTDISABLE 0x0002 账户已禁用
DONT_EXPIRE_PASSWORD 0x10000 密码永不过期
TRUSTED_FOR_DELEGATION 0x80000 允许非约束委派
NOT_DELEGATED 0x100000 禁止委派,保护敏感账户
DONT_REQUIRE_PREAUTH 0x400000 不要求 Kerberos 预认证(AS-REP Roasting 目标)
TRUSTED_TO_AUTH_FOR_DELEGATION 0x1000000 允许约束委派(协议过渡)

DONT_REQUIRE_PREAUTH 标志是 AS-REP Roasting 攻击的前提条件;TRUSTED_FOR_DELEGATION 是非约束委派攻击的核心标志。

servicePrincipalName(SPN)

SPN 是 Kerberos 中服务实例的唯一标识符。

格式:

serviceClass/host:port/serviceName

例如:

MSSQLSvc/sql01.corp.local:1433
HTTP/web01.corp.local

当一个用户账户注册了 SPN,任何域用户都可以向 KDC 申请该服务的 ST(服务票据),而 ST 使用该账户的 NTLM Hash 加密。

这意味着:拥有 SPN 的用户账户 = Kerberoasting 攻击目标。攻击者可以离线破解 ST 获取明文密码。

adminCount

当一个用户被添加到受保护组(如 Domain Admins)时,adminCount 会被设置为 1

这表明该账户受到 AdminSDHolder 保护机制管理。

意义:

  • 这类账户的 ACL 会定期被 AdminSDHolder 模板覆盖
  • 即使从高权限组移除,adminCount = 1 也会保留,作为历史标志
  • 枚举 adminCount = 1 的账户是快速定位高价值目标的有效方式

pwdLastSet 与 lastLogon

属性 含义 安全意义
pwdLastSet 最近一次密码设置时间 值为 0 时表示账户必须下次登录时改密;长期未改密的账户可能使用弱口令
lastLogon 最近一次登录时间(本地 DC 记录) 非全局一致,仅在登录的那台 DC 更新
lastLogonTimestamp 近似登录时间(全域复制) 全局一致,但有 14 天内的延迟

长期未登录账户(lastLogon 很旧)或密码多年未改(pwdLastSet 很旧)往往是密码喷洒的优先目标。

memberOf 与组嵌套

memberOf 记录了账户直接所属的组。

但 AD 支持组嵌套,例如:

UserA
  → 组 A
      → 组 B(Domain Admins)

UserA 通过嵌套间接拥有 Domain Admins 权限,但 memberOf 只显示”组 A”。

Group(组)

组用于统一管理权限。

相比直接给用户授权,通过组授权更加方便维护。

Windows 中的组可以按照作用域分为:

本地域组(Domain Local Group)

通常用于给某个域中的资源分配权限。

全局组(Global Group)

通常用于组织同一个域中的用户。

例如:

研发部
财务部
运维部

通用组(Universal Group)

适用于多个域之间共享权限。

在大型企业中较为常见。

按照用途,组又可以分为:

  • 安全组(Security Group)
  • 分发组(Distribution Group)

其中安全组可以用于权限控制,分发组主要用于邮件系统。

常见内置组包括:

Domain Admins
Domain Users
Enterprise Admins
Schema Admins
Account Operators
Backup Operators
Print Operators
Remote Desktop Users

容器(Container)

Active Directory 中保存着大量对象,为了方便管理,这些对象需要存放在不同的位置。

微软引入了容器(Container)的概念。

容器本身并不表示一个真实存在的资源,而是用于组织和管理其他对象。

例如:

Domain
│
├── Users
├── Computers
├── Builtin
└── Domain Controllers

这些节点都可以保存其他对象。

容器就像操作系统中的文件夹,用来存放各种 Active Directory 对象。

Windows 域中的默认容器

创建一个新的域后,通常会看到如下默认结构:

Builtin
Computers
Domain Controllers
ForeignSecurityPrincipals
Managed Service Accounts
Users

其中:

名称 类型 用途
Builtin Container 保存系统内置组
Computers Container 默认保存新加入域的计算机
Users Container 默认保存用户和部分内置组
ForeignSecurityPrincipals Container 保存外部信任主体
Managed Service Accounts Container 保存托管服务账户
Domain Controllers OU 保存域控制器

OU(组织单位)

OU(Organizational Unit)是一种逻辑管理容器。

它存在的目的并不是安全隔离,而是方便管理。

例如:

Company
│
├── HR
├── RD
├── Finance
└── Server

管理员可以按照:

  • 部门
  • 地区
  • 职能
  • 设备类型

划分不同 OU。

OU 可以包含:

  • 用户
  • 计算机
  • 子 OU

同时,还支持权限委派和组策略管理。

Container 与 OU 的区别

很多初学者容易混淆 Container 和 OU。

实际上:

OU(Organizational Unit)也是一种容器。

但是,并不是所有容器都是 OU。

Windows 域中主要存在两种管理容器:

类型 LDAP 类型 是否支持 GPO 是否支持权限委派
Container CN × ×
OU OU

例如:

CN=Users,DC=corp,DC=local

表示一个普通容器。

而:

OU=HR,DC=corp,DC=local

表示一个组织单位。

可以看到:LDAP 路径中的前缀也不同。

GPO(组策略对象)

组策略(Group Policy Object,GPO)用于集中管理域中的用户和计算机。

GPO 分为两部分:

Computer Configuration

作用于计算机。

通常在系统启动时处理。

User Configuration

作用于用户。

通常在用户登录时处理。

管理员可以利用 GPO 配置:

  • 密码策略
  • 登录脚本
  • 软件部署
  • Windows 更新
  • 注册表
  • 防火墙
  • 安全审计
  • 桌面环境

为什么 GPO 通常绑定 OU

因为不同部门往往需要不同管理策略。

例如:

研发部
    禁止自动更新

财务部
    禁止 CMD

服务器
    开启高级审计

通过将 GPO 绑定到不同 OU,可以实现精细化管理。

GPO 如何存储和生效

GPO 包括两部分:

Group Policy Container(GPC)

存储在 Active Directory 中。

Group Policy Template(GPT)

存储在:

\\domain.local\SYSVOL\

客户端会周期性访问 SYSVOL 获取策略文件。

管理员可以使用:

gpupdate /force

立即刷新策略。

查看策略结果:

gpresult /r

gpresult /h report.html

图形化查看:

rsop.msc

SYSVOL 与 NETLOGON

这两个共享是域环境中每个成员计算机默认都能访问的网络路径,也是域内信息收集的重要目标。

SYSVOL

\\domain.local\SYSVOL\

SYSVOL 是一个在所有域控之间复制同步的共享目录,存储着:

  • GPO 的模板文件(Group Policy Template,GPT)
  • 登录脚本(Logon Scripts)
  • 密码策略等 XML 配置文件

访问权限:域内所有经过认证的用户(Authenticated Users)均可读取。

安全意义:

  • 历史上曾有管理员将凭据以明文形式写入登录脚本(如 net use 命令行)
  • 早期 GPP(Group Policy Preferences)会将本地管理员密码以 AES 加密后存储在 SYSVOL 的 XML 文件中,但微软公开了密钥,导致可以直接解密(MS14-025)
  • SYSVOL 中的登录脚本路径是信息收集阶段的常规检查项

NETLOGON

\\domain.local\NETLOGON\

NETLOGON 是所有域控都提供的另一个共享目录,主要用于:

  • 存放登录脚本
  • 客户端定位域控时使用的辅助路径

访问权限:同样对所有域内认证用户可读。

渗透测试中,枚举 SYSVOL 和 NETLOGON 有时可以直接找到凭据或敏感配置。

版权声明:除特殊说明,博客文章均为 Shule 原创,依据 CC BY-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇