免WMI主机侦察:ADCollector远程枚举(NetSessionEnum等Windows API)实战指南

发布时间:2026/8/24 11:35:53
免WMI主机侦察:ADCollector远程枚举(NetSessionEnum等Windows API)实战指南 免WMI主机侦察ADCollector远程枚举(NetSessionEnum等Windows API)实战指南【免费下载链接】ADCollectorA lightweight tool to quickly extract valuable information from the Active Directory environment for both attacking and defending.项目地址: https://gitcode.com/gh_mirrors/ad/ADCollectorADCollector 是一款轻量级 Active DirectoryAD环境枚举工具既能用于攻击面分析也能帮助防守者快速摸清域环境。本文聚焦它常被忽视的一项能力免WMI远程主机侦察——通过直接调用NetSessionEnum、NetWkstaUserEnum、NetLocalGroupGetMembers等 Windows API对目标主机做远程会话、用户与本地组枚举不依赖 WMI流量小、速度快非常适合企业内网早期侦察阶段。为什么选择免WMI的远程枚举在传统渗透测试或红队行动中对目标主机做用户与会话枚举通常靠 WMI 远程查询或 PowerShell Remoting。但存在几个现实痛点WMI 查询慢Win32_LogonSession、Win32_UserProfile等类查询响应时间长容易触发告警WMI 事件4688 等在多数企业环境会被 EDR/日志审计盯上依赖目标端 AgentPowerShell Remoting、WinRM 常被禁用而NetSessionEnum 等 Windows API 属于 SMB 原生网络调用行为接近普通网络访问无需目标端开启任何额外服务是实现安静远程主机信息收集的实用手段。ADCollector 的三个核心 API 能力ADCollector 在 v2.0.0 起加入了这三个远程枚举函数见项目说明 README.md 的 Changelog对应命令行参数如下参数调用的 Windows API获取的信息--SessionEnumNetSessionEnum目标主机上谁登录了会话用户、来源 IP、打开的共享资源--UserEnumNetWkstaUserEnum目标主机上当前登录的用户及其访问过的域--LocalGMEnumNetLocalGroupGetMembers目标主机本地组成员默认 Administrators1. NetSessionEnum谁在远程登录目标NetSessionEnum返回目标机器上的所有服务会话每条记录包含发起连接的客户端 IP登录的用户名打开的共享目录/设备会话打开时间这对判断哪些业务机器上有高价值用户活跃登录极有价值——例如发现某开发机有大量来自不同 IP 的会话往往意味着共享跳板机值得进一步关注。2. NetWkstaUserEnum本机当前登录了谁NetWkstaUserEnum使用 Level 1 级别查询返回当前登录到该主机的用户列表以及这些用户访问过的域信息。相比 Session 信息它更贴近桌面正在使用这台机器的人是判断目标活跃度的直接依据。3. NetLocalGroupGetMembers本地管理员都有谁NetLocalGroupGetMembers指定主机和组名默认Administrators列出本地组成员。快速确认目标机器是否被加入了新账户、是否存在可横向利用的本地管理员是权限维持与横向移动侦察的关键一步。实战步骤一条命令完成远程枚举以下操作请仅在你有权测试/审计的环境中执行。环境准备确保你已获得目标域内一台已加入域的 Windows 主机执行权限并能访问目标主机SMB 可达。从仓库获取项目git clone https://gitcode.com/gh_mirrors/ad/ADCollector编译或下载现成的ADCollector.exe项目为 .NET C# 工程主工程文件位于ADCollector3/ADCollector3.csproj。第一步枚举目标主机会话信息.\ADCollector.exe --SessionEnum --Host targetHost--Host指定目标主机名或 IP默认值为Localhost枚举本机。结果按字段逐条输出包括客户端地址、用户名、打开的共享资源等。第二步枚举当前登录用户.\ADCollector.exe --UserEnum --Host targetHost输出每个已登录用户的名称、登录时间等信息可快速判断目标是否为活跃业务机。第三步枚举本地组如 Remote Desktop Users.\ADCollector.exe --LocalGMEnum --Host targetHost --Group Remote Desktop Users不传--Group时默认枚举Administrators组。把参数换成Remote Desktop Users、Users等组名可以摸清可远程登录的目标账户范围。结合域凭据指定目标域如果当前机器不在目标域中可组合使用域参数.\ADCollector.exe --Domain domain.local --Username user --Password pass --SessionEnum --Host targetHost它是怎么实现的源码结构速览ADCollector 的主机枚举功能实现非常干净整体分为三层适合想学习 Win32 API 调用的读者阅读API 声明层——ADCollector3/Utilities/Natives.cs通过DllImport从netapi32.dll引入NetSessionEnum、NetLocalGroupGetMembers、NetWkstaUserEnum等函数原型并配合ADCollector3/Utilities/Struct.cs中定义的SESSION_INFO_10、WKSTA_USER_INFO_1、LOCALGROUP_MEMBERS_INFO_2结构体接收数据。封装层——ADCollector3/NativeMethod.csGetNetSessionEnum、GetNetWkstaUserEnum、GetNetLocalGroupGetMembers三个方法负责调用 API、用Marshal.PtrToStructure把返回的 IntPtr 缓冲区解析为 .NET 结构体数组并用NetApiBufferFree释放内存逻辑完整可复用。展示层——ADCollector3/Display/DisplayNativeMethod.cs通过反射遍历结构体字段把每条记录格式化打印ADCollector3/ADCollector.cs中的GetHostSession、GetHostUser、GetHostGroupMember方法把三层串起来命令行参数则由ADCollector3/Options.cs解析。整个链路从参数到结果输出没有一处依赖 WMI 或远程执行这也是它安静的根源。防守视角如何利用它做横向侦察蓝队与安全分析师同样可以用 ADCollector 回答几个关键问题️ 哪些主机存在异常数量的远程会话--SessionEnum️ 域内哪些机器的本地管理员组被塞入了可疑账户--LocalGMEnum 结合域级枚举功能特权用户、非约束委派、AS-REP Roast 账户等完整能力清单见 README.md 的 Enumeration 章节可快速绘制横向移动路径图对防守者而言ADCollector 的价值在于用一条命令生成攻击者视角的情报基线攻击者能看到的防守者也应该能看到。常见问题排查❓结果为空或报错确认目标主机 SMB445可达、当前凭据具备远程枚举权限SMB 会话枚举通常需要对目标机器有相应网络权限。❓非域加入机器运行报错 SYSVOL 访问若启用了硬化的 UNC 策略需按 README.md 中的说明调整注册表策略后重试。❓想只枚举 LDAP 不访问 SYSVOL使用--LDAPONLY参数即可限定在 LDAP 范围内。❓想看调试信息加--Debug参数输出 NLog 调试日志定位 API 调用失败原因。总结ADCollector 的免 WMI 主机侦察能力本质是把NetSessionEnum、NetWkstaUserEnum、NetLocalGroupGetMembers三个经典 Windows API 做成了一条命令式的工具✅ 无需 WMI/WinRM流量特征接近普通 SMB 访问✅ 会话、登录用户、本地组三类信息覆盖主机侦察 80% 的早期需求✅ 代码结构清晰声明/封装/展示三层是学习 Win32 网络 API 的良好范例配合它本身的 LDAP 域枚举、ACL 扫描、ADCS 检查等能力ADCollector 可以作为一个独立的轻量级侦察平台在大中型域环境早期阶段快速产出高价值情报。【免费下载链接】ADCollectorA lightweight tool to quickly extract valuable information from the Active Directory environment for both attacking and defending.项目地址: https://gitcode.com/gh_mirrors/ad/ADCollector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考