读完本篇你将能:理解 Windows 访问控制模型(SID、ACL、ACE、令牌),掌握内置用户组的权限差异,理解 Active Directory 域的基本架构(域控制器、OU、组策略、信任关系),能在 VMware 中搭建一个完整的域环境(1 台 DC + 2 台成员机),并配置组策略和用户账户,为后续域渗透学习打下实验基础。
从本篇开始进入内网渗透模块。企业内网的核心是 Windows 域(Domain),它用 Active Directory(AD)统一管理所有计算机、用户、策略。要学好域渗透,必须先理解域的工作原理。本篇先从单机 Windows 权限体系讲起,再扩展到域环境,最后手把手教你搭一个域实验环境。
Windows 的权限体系围绕两个核心概念构建:SID(安全标识符)标识"谁",ACL(访问控制列表)规定"谁能做什么"。每次访问资源时,系统会比对访问者的令牌和资源的 ACL,决定是否允许访问。
SID 是 Windows 中每个安全主体(用户、组、计算机)的唯一身份标识,格式为 S-R-I-S-S...。用户名可以改,但 SID 一旦生成就不会变。系统内部全部用 SID 做权限判断,用户名只是给人看的。
| 知名 SID | 对应账户 | 说明 |
|---|---|---|
| S-1-5-18 | SYSTEM / Local System | 本地系统最高权限,服务默认账户 |
| S-1-5-19 | Local Service | 本地服务账户,权限受限 |
| S-1-5-20 | Network Service | 网络服务账户,可访问网络资源 |
| S-1-5-32-544 | Administrators 组 | 本地管理员组 |
| S-1-5-32-545 | Users 组 | 普通用户组 |
| S-1-5-32-555 | Remote Desktop Users | 允许远程桌面登录的组 |
每个文件、注册表键、服务都有一个 ACL(访问控制列表),里面包含多条 ACE(访问控制项)。每条 ACE 定义了"哪个 SID 被允许/拒绝哪种权限"。访问检查时,系统从上往下遍历 ACE,找到匹配项就立即生效(拒绝优先于允许)。
Windows 有很多内置组,每个组有不同的权限和特权。理解这些组的能力,对提权和内网渗透至关重要——很多时候不需要拿到管理员密码,只要利用某个组的特殊权限就能横向移动或提权。
| 组名 | 权限描述 | 渗透利用点 |
|---|---|---|
| Administrators | 完全管理权限,可执行任何操作 | 提权目标 |
| Backup Operators | 可绕过文件 ACL 读取/备份任意文件 | 读取 SAM/NTDS.dit |
| Event Log Readers | 可读取所有事件日志 | 信息收集、找敏感日志 |
| Remote Desktop Users | 允许通过 RDP 登录 | 横向移动入口 |
| Server Operators | 可管理服务、创建共享 | 服务提权 |
| Account Operators | 可创建/修改域用户和组 | 创建后门账户 |
除了 ACL 的文件/注册表权限,Windows 还有"特权"(Privilege)的概念——某些系统级操作(如加载驱动、修改系统时间、调试其他进程)需要特定的特权。常见的危险特权包括:
| 特权名称 | 功能 | 利用方式 |
|---|---|---|
| SeDebugPrivilege | 调试任意进程 | 从 SYSTEM 进程中窃取令牌 |
| SeImpersonatePrivilege | 模拟客户端令牌 | JuicyPotato / RoguePotato 提权 |
| SeBackupPrivilege | 绕过 ACL 读取文件 | 读取 SAM 注册表、NTDS.dit |
| SeRestorePrivilege | 绕过 ACL 写入文件 | 写入 DLL 劫持、覆盖系统文件 |
| SeLoadDriverPrivilege | 加载/卸载驱动 | 加载恶意驱动提权 |
Active Directory(活动目录,简称 AD)是微软的目录服务,是 Windows 域的核心。域(Domain)是一个管理边界,域内所有的用户、计算机、组策略都由域控制器(Domain Controller,DC)统一管理。企业内网 90% 以上都是域环境,内网渗透的核心就是域渗透。
| 组件 | 作用 | 渗透相关性 |
|---|---|---|
| 域控制器 (DC) | 运行 AD DS 服务,存储目录数据 | 最高价值目标,拿下 DC = 拿下整个域 |
| NTDS.dit | AD 数据库文件,存储所有域用户哈希 | 域内 Hash 传递、票据攻击的核心 |
| OU (组织单元) | AD 的逻辑分组,用于委派管理 | 查找高价值目标、ACL 攻击面 |
| 组策略 (GPO) | 批量配置计算机和用户设置 | GPO 下发后门、SYSVOL 密码泄露 |
| DNS | 域内名称解析,定位 DC 和服务 | 信息收集、定位 DC |
| Kerberos | 域认证协议 | Kerberoasting、AS-REP Roasting、黄金票据 |
大型企业通常有多个域(或林),域之间通过"信任关系"互相访问。信任的方向决定了谁能访问谁的资源。常见的信任类型有:
| 信任类型 | 方向 | 传递性 |
|---|---|---|
| 父子域信任 | 双向 | 可传递 |
| 林根信任 | 双向 | 可传递 |
| 外部信任 | 单向或双向 | 不可传递 |
| 林信任 | 单向或双向 | 可传递 |
一个域可以有多台 DC(负载均衡+冗余),但某些操作只能由特定的 DC 执行,这些 DC 被称为 FSMO(灵活单主机操作)角色。共有 5 个 FSMO 角色,其中 2 个林级别、3 个域级别。
| 角色 | 级别 | 职责 |
|---|---|---|
| Schema Master | 林 | 修改 AD 架构 |
| Domain Naming Master | 林 | 添加/删除域 |
| RID Master | 域 | 分配 SID 的 RID 部分 |
| PDC Emulator | 域 | 密码更新、时间同步、组策略 |
| Infrastructure Master | 域 | 跨域引用更新 |
组策略是域管理的利器——管理员可以通过 GPO 批量配置所有域内计算机和用户的设置:从桌面壁纸到密码策略,从软件部署到脚本执行。GPO 的配置存储在 DC 的 SYSVOL 共享中,所有域用户都有权读取。
\\\SYSVOL\ ,所有域用户可读。历史上很多管理员会把密码写在 GPO 的登录脚本里(如映射网络驱动器的脚本),导致整个域的密码泄露。组策略首选项(GPP)的密码虽然加密,但加密密钥是公开的(MS14-025),可以直接解密。
理论说完了,动手搭一个实验环境。我们要搭一个最简单的单域环境:1 台 Windows Server 作为 DC,2 台 Windows 10 作为成员机。后续的域渗透实验都在这个环境里做。
| 主机名 | 角色 | 操作系统 | IP |
|---|---|---|---|
| DC01 | 域控制器 | Windows Server 2019/2022 | 10.0.0.10 |
| WS01 | 成员服务器/工作站 | Windows 10/11 | 10.0.0.20 |
| WS02 | 成员服务器/工作站 | Windows 10/11 | 10.0.0.21 |
| Kali | 攻击机 | Kali Linux | 10.0.0.100 |
域名:corp.local(测试环境推荐使用 .local 后缀,避免和真实域名冲突)
slmgr -rearm 延长试用期
任务:在 Windows 本机上(或虚拟机中)完成以下练习:(1) 用 whoami /user 查看当前用户的 SID;(2) 用 whoami /priv 查看当前用户的特权列表,找出已启用的特权;(3) 用 icacls 命令查看 C:\Windows 目录的 ACL,理解每条 ACE 的含义;(4) 创建一个普通用户,登录后对比和管理员的特权差异;(5) 在 Kali 上用 rpcclient 或 crackmapexec 连接 Windows,验证账户权限。
任务:搭建完整的域实验环境:(1) 安装 1 台 Windows Server 作为 DC,域名设为 hacklab.local;(2) 安装 2 台 Windows 10 并加入域;(3) 创建 5 个域用户(alice、bob、charlie 为普通用户,dave 为域管理员,svc_sql 为服务账户);(4) 创建 3 个安全组(IT组、HR组、Finance组),将用户分别加入不同组;(5) 创建一个 GPO,设置所有域用户的密码策略(最短 8 位、复杂度要求);(6) 用 Kali 的 nmap 扫描整个网段,验证 DC 和客户机都在线。记录搭建过程和遇到的问题。
任务:搭建一个更复杂的域环境(父子域或林信任),为后续高级域渗透做准备:(1) 先搭一个根域(如 root.local)和一台 DC;(2) 再搭一个子域(如 apac.root.local)和一台 DC;(3) 验证父子域信任关系是否自动建立;(4) 在子域中创建用户,验证能否访问根域资源;(5) 用 BloodHound 导入两个域的数据,查看信任关系的攻击路径;(6) 尝试从子域的普通用户出发,找到攻击根域的路径(不需要实际利用,只做路径分析)。
进阶方向:研究 AD CS(Active Directory 证书服务)的搭建和攻击。AD CS 是近年来域渗透的热门方向,很多企业环境中都部署了证书服务,但配置不当会导致严重的权限提升漏洞(如 ESC1-ESC8)。搭一个 AD CS 环境可以为后续学习证书攻击打基础。
域环境搭好了,接下来就是域渗透的第一步——域信息收集。拿到一个域内的普通用户权限后,你需要搞清楚:这个域有多大?有多少用户、多少机器、多少组?哪些人是管理员?哪些机器是高价值目标?下一篇将介绍两款最强大的域信息收集工具:PowerView(PowerShell 脚本,手动收集)和 BloodHound(图形化攻击路径分析,自动找出提权路径)。BloodHound 是域渗透的"导航地图",能把复杂的域关系可视化,让你一眼看出从当前位置到域管理员的最短攻击路径。
关注本公众号,持续获取网络安全 Kali 学习系列更新。如果觉得有帮助,欢迎点赞、在看、分享给同样在学习网络安全的朋友。