news 2026/10/20 23:25:24

域环境下的信息收集:从活动目录到组策略的实操指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
域环境下的信息收集:从活动目录到组策略的实操指南

1. 域环境里的"信息收集"到底在收集什么:先讲清楚概念

很多刚接触内网安全的朋友第一次听到"域环境下的信息收集"这个说法,第一反应是"拿工具扫一扫"。实际上,在活动目录的环境里做信息摸排,和我们平时在普通工作组里做的事完全不是一回事。

工作组环境下,每台机器各自为政,账号密码都属于本机,你在一台机器上查到什么信息,基本只影响这台机器。域环境则不同,所有成员机器都信任同一个集中认证中心——域控制器,身份体系、组策略、资源访问权限都集中在这里。所以域环境里的信息收集,核心不是"扫端口",而是围绕域控制器和活动目录展开的资产与权限梳理:有哪些用户、有哪些组、谁在特权组里、哪些机器加入了域、组策略管到了哪里、域之间的信任关系是什么。

这个环节的价值在于:它决定了后续所有安全评估或者应急排查的方向。就像看病先做血常规和影像检查一样,不先摸清域里的结构,后面很多事情都是盲人摸象。我这里所说的"信息收集",边界是"在获得授权的前提下,用合法手段梳理域环境资产",可以是渗透测试的起点,也可以是安全运维的日常审计手段。

通常来说,域环境信息梳理分四层:本机与身份层、活动目录对象层、策略与信任层、日志与痕迹层。本文就按这个逻辑,把我在实际项目中梳理域环境信息的完整步骤、命令和踩坑经验写出来。

2. 先迈过那道门槛:授权范围、工具选型与输出规范的确定

2.1 没有授权不谈收集:先书面确认边界

这是所有工作的第一个前提。我自己见过不止一次:某公司的安全测试人员做了大量信息收集,跑到最后一步才发现客户只授权了某个子网段,域控制器根本不在授权范围内,前面收集到的一堆域信息不但无用,还会带来合规风险。

所以拿到任务的第一件事,是确认授权书里写的目标范围、允许的测试手法、禁止触碰的系统和数据范围。尤其是在域环境下,一个查询命令如果写法不当,有可能会触发大规模枚举或影响域控制器性能,这类风险必须在动手之前就约定好。

2.2 内置工具始终优先:为什么别一上来就装软件

域环境下做信息收集,最顺手的永远是微软自带的东西:whoami、net、dsquery、nltest、powershell的Active Directory模块。原因有三个。

第一,兼容性最好。域里的机器五花八门,Windows版本从老到新都有,自带的命令不需要额外装依赖,出问题概率低。第二,不容易被目标环境的安全设备盯上。一个可疑程序的落地和执行,远比一条看起来像是管理员日常操作的内置命令更容易触发告警。第三,命令本身的输出已经足够结构化。比如dsquery导出的用户列表、Get-ADUser的属性返回,直接就能进Excel做分析。

第三方工具当然有它的场景,比如一些自动化程度更高的枚举工具,能一次性把域用户、域管、会话、ACL关系全部可视化。但这些工具更适合在"已经确认环境允许、且需要快速全面出报告"的阶段使用,不适合作为摸底起点。

2.3 固定输出模板:信息收集的成果最终是一份资产清单

开始收集之前,就要想清楚最后要产出什么形式的成果。我习惯用一个统一的资产清单模板,包含以下维度:

维度记录内容备注
主机资产计算机名、IP、所属OU、操作系统版本、是否启用分清加域与未加域机器
用户资产登录名、显示名、是否启用、密码属性、所属组重点关注高权限组成员
组资产组名、类型、嵌套关系、成员数量特权组单独列表
策略资产组策略名称、链接位置、安全筛选、是否启用记录GPO的GUID
信任资产信任类型、方向、信任对象本域与外部域的关系
网络线索DNS后缀、子网划分、域控地址、时间源为后续分析做准备

有了这个模板,每做完一步,就同步更新表格。等所有步骤跑完,你会发现信息收集已经自然形成了一个"可交付物",而不是一堆零散的命令输出。

3. 第一轮摸底:从"我是谁"开始,再顺藤摸瓜找域控

3.1 当前用户的身份与组成员资格:先确认你站在哪个位置

很多人一上去就查域内用户列表,这其实是顺序错了。第一步永远是先确认当前上下文的身份信息。原因很简单:不同的身份能看到的域信息范围是不同的,普通域用户的查询结果和域管理员能看到的内容有很大差距。

常用的命令组合如下:

whoami whoami /groups whoami /priv echo %USERDOMAIN% echo %LOGONSERVER%

运行完,先看三件事:当前登录的用户名是什么,属于哪个域;当前会话的组成员里有谁,有没有Domain Admins、Enterprise Admins这类高权限组;当前登录服务器是哪台域控,这直接暴露了域控的大致位置。

whoami /groups里有个容易被忽略的项——Everyone、Authenticated Users这类特殊SID,它们代表的是隐含权限。一个用户哪怕不在任何特权组,只要在某个ACL里被显式分配了权限,他就能访问对应资源,这个在后面的ACL分析环节要重点回顾。

3.2 网络轮廓:DNS、路由与域名的关系

域环境下的DNS和普通互联网DNS差别很大,域内DNS记录往往直接反映了整个内网的拓扑。我通常按这个顺序看:

ipconfig /all arp -a route print nslookup %USERDNSDOMAIN% nslookup -type=SRV _ldap._tcp.dc._msdcs.%USERDNSDOMAIN%

ipconfig /all里优先关注DNS后缀和DNS服务器地址。域内机器的主DNS通常就是域控,而DNS后缀五花八门恰恰说明这个网络可能不是纯正的微软体系,后期分析要留个心眼。_ldap._tcp.dc._msdcs.这条SRV记录是定位域控的“官方手段”,一个域内可能有多个域控,这条记录会把它们都列出来。

提示:SRV记录查询不到的时候,不代表没有域控,有可能是网络隔离策略限制。这种情况先别急着下结论,可以试试用nltest /dclist:域名,它走的是另外的RPC通道,很多时候反而能查到结果。

3.3 域控的物理位置:IP、机器名和角色的对应关系

找到域控列表之后,把机器名和IP对应起来。域控命名常有规律,比如域控机器名多以DC开头,或者整域采用类似内部项目的代号。这时候顺手记下:

nltest /dclist:域名 nltest /dsgetdc:域名 ping -a 域控IP

如果当前环境允许,还可以查看域控的时间服务配置,因为域内时间同步默认向域控对齐,通过w32tm /query /source能确认当前机器的时钟源是哪台机器。这些信息串起来,基本就能画出一张初级的内网域结构草图了。

4. 第二轮盘家底:用活动目录查询把域内资产捞出来

4.1 用户和计算机的枚举:dsquery 的正确打开方式

域环境信息收集里信息量最大的一步,就是枚举活动目录中的用户和计算机对象。这里我优先用dsquery和PowerShell的Active Directory模块。

dsquery user -limit 0 dsquery computer -limit 0 dsquery group -limit 0

-limit 0的意思是不限制返回条数,适合整个域的清单导出。在拥有管理权限的机器上,往往会再用AD模块换一种视角:

Get-ADUser -Filter * -Properties SamAccountName,DisplayName,Enabled,PasswordLastSet,LastLogonDate,CanonicalName Get-ADComputer -Filter * -Properties Name,OperatingSystem,Enabled,CanonicalName

这一步分析的重点不是数量,而是质量:

  • 有多少用户是禁用状态,但邮箱或显示名看起来像已离职员工。
  • 有多少计算机系统名和操作系统版本已经不匹配,可能存在常年没有更新补丁的机器。
  • 有多少用户密码最后设置时间很久以前,密码策略却允许弱口令。

这些信息在后面形成报告时都是论据。一个口令最后修改时间在三年以前的域管理员账号,比一百个普通用户账号更能说明域里的安全隐患。

4.2 组成员与嵌套关系:打开高权限组的黑盒

域组的嵌套关系比想象中隐蔽。A组是B组的成员,B组又嵌套在C组里,这种多层嵌套常常让人漏掉真正拥有高权限的路径。

我最常用的展开方式是这样的:

Get-ADGroupMember -Identity "Domain Admins" -Recursive Get-ADGroupMember -Identity "Enterprise Admins" -Recursive Get-ADGroupMember -Identity "Schema Admins" -Recursive Get-ADGroupMember -Identity "Account Operators" -Recursive

还必须关注的是那些"非默认"的特张权限组。比如某个研发部门自己建了一个组,把所有开发人员都拉进去,然后顺手给了这个组对域控的本地管理员权限。这种组从名字上看完全人畜无害,但实际权限高得吓人。所以不能只查内置特权组,还要配合查看每个OU等关键对象的ACL。

4.3 OU结构:域内组织架构的天然地图

OU不仅是组织架构,更是组策略和委派权限的作用边界。用以下命令可以快速拉出OU树:

Get-ADOrganizationalUnit -Filter * -Properties CanonicalName,DistinguishedName

OU命名有时就能透露业务归属(比如"财务部""研发中心""离职员工")。看OU的同时要注意:哪些OU被做了委派管理,哪些OU有特殊的组策略链接。一个OU如果被单独链接了策略,通常意味着该OU下的对象有特殊需求,这些需求往往就是风险聚集的地方。

5. 第三轮深挖:组策略、信任关系与历史遗留资产

5.1 组策略:隐藏在GPO里的真实"域规则"

域环境下真正影响全域行为的不是某条命令,而是组策略。GPO如果配置不当,可能造成的结果包括:脚本在用户登录时以高权限运行、本地管理员密码被统一设定且长期不换、防火墙规则完全放开等。

查看方式:

Get-GPO -All | Select-Object DisplayName,ID,GpoStatus Get-GPInheritance -Target "OU路径" | Format-List

对安全审计来说,我重点关注三类GPO:

  • 脚本类策略:登录脚本、启动脚本,里面的命令往往能看出域管习惯。
  • 本地用户组策略:例如Restricted Groups,它可能把某个普通账号添加到本地管理员组。
  • 密码策略类:检查域默认密码策略,再检查是否有细粒度密码策略,然后对比实际用户密码最后设置时间。

5.2 域信任关系:看似无害的一跳通道

域信任关系的检查不需要复杂工具,Windows自带命令即可:

nltest /trusted_domains nltest /domain_trusts /all_trusts

信任关系本身不是漏洞,但它决定了"来自另一个域的身份能否访问本域资源"。如果存在林间信任或外部信任,我会把信任方向、信任类型记入资产表,后续排查资源访问时重点关注信任路径上的敏感系统。

5.3 历史遗留资产:过时账号与"幽灵机器"

大型域环境里,历史遗留资产几乎是必然存在的。所谓历史遗留,基本都是三类:

  • 离职或转岗员工的账号未及时禁用或删除。
  • 旧机器从域移除或重装后,机器账号还残留在活动目录里。
  • 某个项目临时建的组,项目结束多年,成员从未清理。
Search-ADAccount -AccountDisabled -UsersOnly | Select-Object Name,DistinguishedName Get-ADComputer -Filter "Enabled -eq $true" -Properties OperatingSystem,LastLogonDate | Where-Object {$_.LastLogonDate -lt (Get-Date).AddMonths(-6)}

这些历史账号之所以要单独梳理,是因为它们既是安全审计时的高风险项,也是事件排查时的重点候选者——很多实际发生的问题,追根溯源都落到了某个忘了清理的旧账号上。

6. 从防御视角看回来:你的域环境正在被人"收集"吗

做完上面几轮信息收集,你其实已经掌握了域管理者日常最应该掌握的信息。这些信息对你自己来说是一份资产清单,对有意入侵的其他人来说,就是一份"攻击路线图"。所以,收集完信息之后,我习惯顺手做一次反向检查:如果这些信息是被别人拿到的,我的日志里会不会留下线索?

6.1 侦察行为的日志痕迹:在域控里面找答案

域环境下的大部分枚举行为最终都要落到域控的LDAP查询上。域控的安全日志里,事件ID 4662专门记录对象访问,对于开启目录服务访问审计的环境来说,异常的LDAP枚举会产生大量4662事件。如果有人在短时间内查询了大量用户和组的属性,日志里会有明显的密集记录。

但我必须说实话:默认的域环境日志配置往往不足以完整记录所有查询。4864、4662这类事件需要主动开启审核策略才能落到日志里。所以如果想知道自己的域环境有没有被陌生人"打量过",关键是先检查审核策略开了没有,而不是直接翻日志。

6.2 便宜的检测手段:从海量日志里挑出异常

对于预算有限、没有大型安全平台的场景,最实际的做法是定期把域控的安全日志导出,重点排查以下特征:

日志特征可能原因
同一来源主机在短时间内查询大量域内所有用户批量枚举用户列表
多次查询特定特权组(Domain Admins等)的成员关系侦察高权限路径
非域控机器大量执行目录服务访问可疑扫描行为
同一账号在多个机器上频繁登录失败后成功凭据尝试与横向移动

如果出现了这些特征,不要先去追攻击者,而是先收紧信息暴露面:关掉不必要的匿名LDAP访问、限制特权组的嵌套、加快清理历史账号。防御永远比侦察难做,但反过来,一旦你亲手做过了域环境的信息收集,就会更清楚对方能看到什么,也就知道该把窗户先堵上哪几扇。

7. 实操总结:我的建议、避坑清单与常用命令速查

7.1 摸爬滚打之后,最想说的几点体会

第一,域环境的权限边界对信息的可见性影响极大。普通域用户查到的内容和域管理员查到的内容可能差一个量级。所以信息收集的结果要标注"信息来源权限",否则容易误导后续决策。

第二,工具越简单越稳。在域控上执行第三方枚举工具,很容易触发EDR告警,甚至被当成事件直接处置。而Windows内置命令、PowerShell模块和合法管理接口,反而最难被误伤。

第三,导出数据一定要分权保存。包含域内所有用户、组、OU信息和GPO列表的清单,本身已经属于高度敏感数据。它的泄露风险等同于域内账号信息的泄露风险。我见过一些项目,做完信息收集之后,把报告扔在企业网盘里任意共享,这等于把攻击者最需要的东西直接递了出去。

7.2 避坑清单:这些坑我建议你别踩

  • 不要在大域环境里不加过滤地跑全量查询,某些命令可能会给域控带来额外负载。
  • 不要只记录命令输出而不记录时间点和来源机器,后续审计报告需要可溯源。
  • 不要忽略PowerShell执行的日志痕迹,本地PowerShell历史记录和脚本块日志都要在许可范围内妥善处理。
  • 不要只看"是否在特权组",ACL委派才是很多实际风险所在。
  • 不要在还没有确认授权范围时,就把查询范围扩大到所有域和信任域。

7.3 常用命令速查表

目标命令说明
查询当前身份与组whoami /all看完整令牌信息
查看当前登录域控echo %LOGONSERVER%快速定位域控
定位域控列表nltest /dclist:域名走RPC通道查询
查询域信任关系nltest /domain_trusts /all_trusts查看全部信任
枚举域用户dsquery user -limit 0全量用户清单
枚举域计算机dsquery computer -limit 0全量机器清单
查看特权组成员Get-ADGroupMember "Domain Admins" -Recursive递归展开嵌套
查看组策略Get-GPO -All列举所有GPO
查看OU结构Get-ADOrganizationalUnit -Filter *全量OU清单
查看用户登录时间Get-ADUser -Filter * -Properties LastLogonDate分析活跃/不活跃用户

这轮信息收集做完,你应该能回答这几个问题:域内有哪些关键资产,高权限账号集中在谁手上,组策略管了什么没管什么,机器和账号的生命周期状态是否健康。在域环境的后续安全建设里,这一份清单就是一切判断的地基。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 23:25:14

LangGraph实战:从链式到图编排,构建可控的大模型工作流

1. 从“链”到“图”:为什么工作流编排是大模型应用的分水岭1.1 线性链的局限:当业务逻辑开始分叉在LangGraph出现之前,多数基于大模型的应用都是“链式”结构:先把用户问题拼成提示词,丢给模型,拿回结果&a…

作者头像 李华
网站建设 2026/10/20 23:25:14

配电网改进灵敏度分析:从IEEE33节点到无功补偿选点实践

1. IEEE33测试系统为什么是灵敏度分析的标配平台 做配电网研究的人,几乎绕不开IEEE 33节点系统。这个拓扑结构最早源于某地区的标准配电网络,经过行业多年整理后,成为电力系统领域最常用的测试算例之一:33个节点、32条支路&#x…

作者头像 李华
网站建设 2026/10/20 23:24:00

华为OLT版本拆包工具v1r19c12:从版本包结构到固件提取实战

简介:华为OLT版本拆包工具v1r19c12_packet_tool是一款面向电信网络运维人员的专用程序,用于解决OLT设备软件版本解压、校验与升级规划中的复杂操作。该工具可拆解大型版本文件,辅助备份恢复、安全补丁更新和批量升级,适合具备一定…

作者头像 李华
网站建设 2026/10/20 23:23:12

AI记忆劫持与防护:构建可打开、可修改的透明记忆层

一句 “update” 就劫持了 AI 的记忆,所以记忆必须能打开改如果你正在用任何带记忆功能的大模型助手,我建议你亲自做一个实验:先告诉它“记住我晚上11点睡”,等它确认写入后,再补一句“update:改成凌晨3点睡…

作者头像 李华
网站建设 2026/10/20 23:22:21

PPT-Master:组织协同中的信息翻译者与决策加速器

1. “PPT-Master”不是软件名,而是一类人的隐性职业标签最近在几个技术协作群和设计交流社区里,频繁看到有人被称作“PPT-Master”。这个词从不作为正式头衔出现在简历或工牌上,却在项目复盘、跨部门对齐、向上汇报等真实场景中高频出现——比…

作者头像 李华
网站建设 2026/10/20 23:20:50

Cesium fromGltfAsync加载模型动画不播放的排查指南

最近在做一个基于 Cesium 的仿真展示项目,需要把一批带骨骼动画的机械设备模型加载到三维场景里。模型在 Blender 和本地预览工具里播放都很正常,结果一用 fromGltfAsync 加载到 Cesium 里,模型能显示,但动画怎么都不动。查了大…

作者头像 李华