尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Windows域环境详解:域控、域用户、域权限体系

Windows域环境详解:域控、域用户、域权限体系 10-Windows域环境详解域控、域用户、域权限体系合规声明本系列文章所有技术仅在本地靶场VulnHub / Metasploitable / 自建域环境或书面授权渗透测试中进行。未经授权的渗透测试属违法行为请勿对任何未经你书面授权的系统使用本文所述技术。本文是白帽教程核心目标是让防御者理解攻击链路、加固自身系统。一、为什么会有域先讲一个管理员的噩梦一家公司有 200 台电脑、300 个员工。没有域管理员要在每台电脑上单独建账号——新员工入职200 台机器挨个加员工离职200 台机器挨个删改密码200 台机器挨个改。更要命的是每个人密码都不一样谁也不知道哪台机器开着什么后门。这种各自为政的模式叫工作组Workgroup。它只适合十台以内的家用和微型环境一旦规模上来三个问题立刻暴露账号爆炸每个员工在每个系统都有一个账号密码五花八门管理员根本记不住也管不住。策略失控密码复杂度、登录限制、安全策略要逐台设置永远有人漏配永远有人绕过。安全黑洞员工离职了账号却留在十几台机器上没人清理谁在哪台机器有权限管理员自己都说不清。于是微软设计了域Domain把账号集中存到一台服务器上所有电脑都认这台服务器。账号在服务器上建一次全公司通用改密码改一次全公司生效权限在服务器上设一次所有机器按同一套规则执行。一句话总结域 集中化的账号管理与权限体系。它解决的核心问题就是一台机器管一个账号的低效与失控。二、工作组 vs 域一张表看懂对比项工作组域账号存储每台机器本地SAM集中存储在域控AD 数据库认证方式各自为政本地认证统一认证凭域凭证登录所有机器账号管理逐台机器操作一次操作全局生效安全边界机器之间互不信任信任由域策略统一管理适用规模家庭、小作坊10 台以内企业几十台到几万台身份标识机器名\用户名如WIN10\zhangsan域名\用户名如CORP\zhangsan注意一个渗透者视角的关键差异工作组里Administrator是每台机器各自的 Administrator机器 A 的管理员密码和机器 B 毫无关系。而在域里CORP\administrator是全公司所有机器上的超级账号——拿到它等于拿到了全网的门禁卡。这就是内网渗透为什么把域控当作终点的根本原因。再补充一个判断实用技巧拿到一台机器的whoami输出如果用户名是机器名\用户名格式说明用的是本地账号工作组或域内机器的本地用户如果是域名\用户名格式就是域账号。本地账号只对当前机器有效域账号全网通用——判断凭证价值第一眼看格式。三、域核心组件DC、NTDS.dit、全局编录3.1 域控制器DC域控制器Domain ControllerDC是域的核心服务器负责三件事账号数据库保存所有域用户的账号、密码 Hash、组关系。认证中心处理全网的登录认证请求通过 Kerberos 或 NTLM。策略中心下发组策略GPO统一管理全网机器配置。一个域可以有多台 DC互为副本实现高可用。但不管几台“谁掌握了 DC谁就掌握了全网的账号密码”——这就是内网渗透把它当作最终目标的原因。3.2 AD 数据库NTDS.ditDC 上的账号数据存在一个文件里C:\Windows\NTDS\ntds.dit。它是 Active DirectoryAD的数据库文件里面装着所有域用户账号 NTLM Hash和 SAM 类似但这是全公司版域内所有机器账号组、策略、信任关系等一切 AD 数据为什么渗透者盯着它因为ntds.dit和 SAM 一样运行中被锁定需要注册表导出 在线复制或卷影复制VSS才能拿到。拿到后离线解析就能得到整个域所有账号的 Hash——这就是著名的 DCSync 攻击的目标详见后文。3.3 全局编录Global Catalog一个域可能包含多个域树如asia.corp.com、europe.corp.com组成一个森林。用户在全局搜资源时DC 不一定认识其他域的账号这时候就靠全局编录GC了。GC 是一份精简版的全域账号目录默认由森林中第一台 DC 承担帮助跨域查询用户和组。它本身不直接是攻击目标但理解它有助于理解域结构。3.4 组策略 GPO——域的策略中枢域不只是管账号还负责管策略。管理员通过组策略对象GPO统一下发配置密码策略、账户锁定策略、软件分发、开机脚本、IE 安全设置……所有域内机器定期从 DC 同步 GPO 并执行。为什么 GPO 和渗透有关两点GPO 是域管权限的直接体现——能修改 GPO 的账号等于能控制全网机器。渗透者拿到域管权限后常通过 GPO 分发恶意脚本计划任务、开机脚本实现全网后门这比逐台操作高效得多。GPO 本身是敏感的存储对象在 SYSVOL 共享里如果配置不当比如可写权限被放开普通用户也能篡改策略实现提权——这是域内提权的一条经典路径。防御视角GPO 的修改权限必须严格收敛到少数管理账号且 GPO 的变更要有审计——gpedit之外任何来源的 GPO 文件改动都值得告警。四、域账号体系谁是谁4.1 内置超级账号Domain Administrator创建域时自动生成两个关键账号Administrator域管理员整个域的至高权限默认能登录任何域内机器、操作域控。krbtgtKerberos 票据授权服务账号它的 Hash 是整个 Kerberos 体系的根密钥——拿到了 krbtgt 的 Hash就能伪造任意用户的金票据Golden Ticket这是内网渗透的核武器。4.2 关键组Domain AdminsDomain Admins域管理员组是域内权限最高的组。它的成员可以登录所有域内机器默认有本地管理员权限管理域控修改任意组策略渗透者视角一个账号如果属于Domain Admins它就是万能钥匙。所以内网渗透的目标永远是拿到一个属于 Domain Admins 的凭证或者直接拿下域控。其他重要组组权限Domain Users普通域用户所有域账号默认在此组Domain Admins域管理员最高权限Enterprise Admins森林级管理员森林里所有域都管Schema AdminsAD 架构管理修改数据库结构的权限Domain Controllers域控机器账号所在组4.3 机器账号以 $ 结尾注意一个容易忽略的细节每一台入域机器都有一个账号名字格式是机器名$比如WEB01$。这个账号的密码由系统自动管理每 30 天自动轮换人类不用管。渗透者视角机器账号虽然自动管理但它的 Hash 依然可以被提取通过前面的 DCSync 等手段。利用机器账号可以冒充该机器身份发起认证在某些攻击如 silver ticket、资源委派滥用里是重要武器。4.4 域账号的两个身份名每个域账号其实有两个标识搞混了后面用工具时会踩坑sAMAccountName登录名格式域名\用户名如CORP\zhangsan也是net user /domain里看到的那个名字。旧式工具net 命令、NTLM 认证用它。userPrincipalNameUPN邮箱风格的名字格式用户名域如zhangsancorp.local。新式工具Kerberos、现代应用用它。渗透者视角工具在指定账号时两种写法都要试。比如 impacket 系列CORP/administrator和administratorcorp.local都代表同一账号某些工具只认其中一种格式。登录报找不到账号时先试试换一种写法。五、DNS域的神经中枢域环境里DNS 的地位怎么强调都不过分。域控在 AD 安装时默认兼任 DNS 服务器原因在于5.1 域定位依赖 DNS当一台域内机器要联系域控时它不是记住 IP而是通过DNS 查询_ldap._tcp.dc._msdcs.CORP.LOCAL这样的 SRV 记录来找到域控。过程是机器询问 DNSCORP.LOCAL 域的域控在哪 DNS 返回DC01.corp.local 192.168.1.10 机器连接192.168.1.10 的 389 端口LDAP开始认证如果 DNS 挂了整个域瘫痪——机器找不到域控登录都成问题。这就是为什么 DC 和 DNS 永远绑在一起。5.2 对渗透者的意义内网机器把DNS 指向域控所以看一台机器的 DNS 配置就能判断域控的大致位置。DNS 的SRV 记录暴露了域内的 DC 列表、站点信息——用nslookup就能拉出整个域控清单:: 列出域控SRV 记录 nslookup -typeSRV _ldap._tcp.dc._msdcs.corp.local :: 反向枚举域内主机的 DNS 名 nslookup -typeANY corp.local逐行解释第一条查询域名系统里的域控 SRV 记录返回所有 DC 的地址第二条用 ANY 类型拉取该域名的各种记录能发现一批主机名。内网侦察的第一步往往是打 DNS因为域里几乎所有机器都要向它登记名字。DNS 在域攻击里的第二个角色定位所有域内主机。域内机器的 DNS 记录A 记录会自动注册到 DC 的 DNS 服务上所以只要拿下了一台能查询该 DNS 的机器就能通过它拉出整个域的主机清单——主机名、IP、网段分布一目了然比端口扫描高效得多而且全程零发包、零告警。常用工具是dnsrecon、BloodHound的 DNS 收集模块或者直接用nslookup -typeany挨个枚举。给防御者的提醒DNS 是域里只进不出的信息金矿DNS 服务器的查询日志谁查了什么记录就是横向侦察的晴雨表——非管理员账号批量查询_ldap、_kerberos、_gc等 SRV 记录基本可以断定有人在摸域结构。六、自建域实验环境搭建指南纸上谈兵不如动手本地搭一个域环境非常值得。VMware/VirtualBox 两台虚拟机即可方案清单机器系统角色DC01Windows Server 2019评估版 180 天域控 DNSWIN10Windows 10 专业版域内工作站可选WEB一台弱配置 Linux/Windows边界机模拟搭建步骤Windows Server 装 AD DS改主机名服务器改成DC01干净的机器名能少踩很多坑。配固定 IP 首选 DNS 指向自己比如192.168.56.10DNS 填192.168.56.10AD 装好后自己就是 DNS。添加角色服务器管理器 → 添加角色和功能 → 勾选Active Directory 域服务。提升为域控部署后配置向导 → 选择添加新林 → 根域名填corp.local→ 勾选同时安装 DNS 服务器 → 设置 DSRM 还原密码。等重启完成DC01 就是corp.local域的第一台域控了。加入工作站Win10 改 DNS 指向192.168.56.10→ 系统属性 → 更改 → 隶属于域 → 填corp.local→ 输入域管理员账号完成加域。验证在 Win10 上用whoami看是不是CORP\xxx登录界面能选域账号即成功。整个过程 40 分钟就能跑通但它是理解后续所有域攻击的基础设施——没有自己的域就别去碰真实环境。搭建完建议立刻做的三件事都是后续练习的素材建一批测试账号用net user建几个普通用户如bob、alice再建一个测试域管方便练枚举域管组成员。给域控加个第二台工作站多一台 Win7 或 Win10 工作站练习一台失守 → 横向到另一台的完整链路。抓一次基线日志在域控上开启审核策略auditpol /set /category:Logon/Logoff:success然后手动做几次正常登录——先认识正常长什么样后面才看得懂异常长什么样。七、域内常用查询命令拿到域内主机权限后用系统自带命令即可完成大量枚举不需要任何工具:: 查看当前登录的域用户和域 whoami net config workstation :: 查看域用户列表 net user /domain :: 查看域管理员组的所有成员重点 net group domain admins /domain :: 查看域内所有组 net group /domain :: 查看域内所有 DC 列表 nltest /dclist:corp.local :: 查看当前域信任关系 nltest /domain_trusts :: 查看域策略中的密码策略 net accounts /domain逐行解释net user /domain列出域里所有账号net group domain admins /domain直接枚举域管组成员——这是内网渗透必跑的命令因为它告诉你哪个账号值钱nltest /dclist拉出所有域控地址net accounts /domain能看密码策略如果复杂度要求很低爆破成功的概率就很高。把这几条命令的输出拿全你对这个域的兵力部署就心里有数了。再强调一次这些全部是 Windows 自带命令不落地任何工具属于纯系统原生的信息收集适合作为拿到域内主机权限后的第一步动作。八、域信任关系域之间的外交大企业可能有多个域比如总部一个域、子公司一个域域和域之间建立的认证关系叫域信任Domain Trust。信任的核心逻辑A 域信任 B 域B 域的用户就能在 A 域的机器上认证。双向信任两个域互相放行。单向信任只允许一方访问另一方。森林信任两个 AD 森林Forest之间的信任。渗透者视角信任关系是横向移动的跳板。拿下一个域的 Domain Admins 后如果它信任了另一个域就可以尝试跨域横向——用信任链一路打进子公司、兄弟单位的域。查询命令nltest /domain_trusts netdom trust corp.local /d:sub.corp.local /enumeratetrusts逐行解释nltest /domain_trusts列出当前域的所有信任关系及方向netdom是域管理专用工具能看信任详情。拿到信任列表后内网渗透的地图就拓展到跨域范围了。信任关系的两个判断维度一是方向——单向信任里谁信任谁决定攻击方向通常是低安全域信任高安全域子公司信任总部从被信任方往信任方打更顺二是类型——父子域信任、森林信任、外部信任不同类型的信任在不同攻击手法里利用方式不同。给渗透者的提醒跨域攻击依赖信任的细节配置实战中先nltest拿到完整信任列表再决定要不要深入别盲目往下一层域冲。九、为什么要拿下域控——一控全控把所有线索收拢到这个问题上内网渗透为什么以域控为终点因为拿下域控 拿下整个域而且有两条经典路径路径一直接打域控的漏洞。域控往往补丁更新相对及时但历史上仍有不少高危漏洞如 2021 年的 PrintNightmare、2022 年的 Zerologon 系列。路径二DCSync离线/在线偷 Hash。这是目前内网渗透最主流的方式——利用域管权限直接向域控发起目录复制请求模仿另一台 DC 在同步数据把ntds.dit里的所有账号 Hash 拉回来。它不需要在域控上落地任何文件也不触碰ntds.dit文件本身走的是合法的目录复制协议——这也是它难以防御的原因域控分不清这是真的另一台 DC还是一个拿着域管令牌的攻击者。# 需要域管权限impacket 全家桶之一python3 secretsdump.py -just-dc CORP/administrator:Admin2024!192.168.1.10[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash) Administrator:500:...:32ed87bdb5fdc5e9cba88547376818d4::: CORP\bob:1001:...:aad3b435b51404eeaad3b435b51404ee::: CORP\alice:1002:...:1234567890abcdef1234567890abcdef::: ...整个域所有账号逐行解释secretsdump.py -just-dc走 DCSync 流程向域控请求目录复制数据。返回的是全域账号的 NTLM Hash 清单。拿到这张表配合哈希传递你就能以任意账号登录任意机器——一控全控名不虚传。甚至更进一步拿到krbtgt的 Hash 后可以伪造金票据Golden Ticket在 Kerberos 体系内自封任意身份并且永不过期——因为它绕过了正常的 TGT 签发流程直接伪造出由域控签发的票据。# 用 impacket 的 ticketer 伪造金票据需要 krbtgt 的 Hashpython3 ticketer.py-nthashkrbtgt_NT_HASH-domain-sid域的SID\-domaincorp.local fakeadmin# 导入票据即可获得任意身份exportKRB5CCNAMEfakeadmin.ccache逐行解释-nthash填 krbtgt 账号的 NT Hash-domain-sid填域的 SIDwhoami /user或域枚举可获取生成的票据以fakeadmin.ccache保存KRB5CCNAME环境变量指向它后后续所有 Kerberos 认证都使用这张伪造票据。注意金票据攻击的完整流程较复杂本篇只做原理级了解实操细节属于更进阶的域渗透专题。这就是为什么域控沦陷往往意味着整个域都废了——防御的重点就是把域控的钥匙域管凭证和 krbtgt锁进保险柜。十、检测与防御域控保卫战10.1 Tier 模型权限分层微软官方推荐的分层防护Tier Model把资产按敏感度分三层Tier 0域控、AD 管理、CA证书服务器——最高机密。Tier 1业务服务器、应用服务器。Tier 2普通工作站、员工 PC。核心规则高层级的账号绝不允许登录低层级设备。域管账号只能在 Tier 0 设备上使用绝不能在员工 PC 上登录。这样即使员工机被攻破攻击者也拿不到 Tier 0 凭证。分层不是口号落地靠两条账号归属哪层资产用哪层账号GPO 限制登录见 10.2两者缺一Tier 模型就名存实亡。10.2 域管登录管控域管账号**只配仅允许在域控/管理机登录**的策略本地策略限制从系统层面禁止域管在员工机登录。域管操作使用跳板机 会话审计所有域管动作必须经过堡垒机全程录屏留痕。域管账号启用SmartCard / MFA单靠密码无法登入管理机。禁用域管在普通机器的本地登录通过 GPO 的允许本地登录策略把域管组从普通工作站的本地登录名单里剔除只保留在 DC 和管理机上。这是 Tier 模型的具体落地手段一条策略生效域管凭证即使泄露也无法在员工机上直接使用。专用高权限账号不要用CORP\administrator做日常管理按角色拆分DNS 管理员、密码管理员等最小化权限。10.3 DCSync / 金票据专项防御监测 4662 事件目录服务复制请求非计划内的复制请求 DCSync 攻击直接告警。监测 4769 事件Kerberos 服务票据票据请求异常增多疑似金票据/银票据活动。定期轮换 krbtgt 密码Reset-ADAccountPassword这个操作要极其谨慎需要重启域控或等复制完成但能作废已签发的金票据。实战中应纳入年度安全操作。LAPS Credential Guard同样适用于域内机器防止本机凭证被横向抓取。10.4 域内行为基线事件正常异常域管账号短时间大量登录罕见疑似横向/权限滥用普通用户执行net group domain admins /domain几乎没有疑似域枚举目录复制请求4662非计划触发极少疑似 DCSync员工 PC 出现 Kerberos 票据请求激增无疑似票据攻击域管账号出现在员工机的登录日志不应出现疑似横向/凭证滥用重点排查结合Windows 安全日志 域控专用监控如微软 ATA / 现代 EDR 的 AD 检测模块域攻击的检测覆盖率可以做到很高——关键是域控上的日志别被清掉日志集中存储是底线。小结这一篇把域环境的全貌讲清了域解决的是集中账号管理这个痛点DC 管着账号数据库ntds.dit域管组是全网最高权限机器账号以$结尾DNS 是域定位的中枢信任关系打通了跨域横向的路径拿下域控或 DCSync 偷 Hash就实现了一控全控。防御端Tier 分层、域管登录隔离、DCSync/金票据监控是三条核心防线。至此本系列的内网渗透实战部分告一段落——从提权辅助、内网探测、凭证抓取、横向移动到域控攻防一条完整的攻击链路已经全部展开剩下的就是你在本地靶场里一遍遍把它走通。
返回列表