尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ADCollector域信任枚举揭秘:直调DsEnumerateDomainTrusts API定位SID过滤风险

ADCollector域信任枚举揭秘:直调DsEnumerateDomainTrusts API定位SID过滤风险 ADCollector域信任枚举揭秘直调DsEnumerateDomainTrusts API定位SID过滤风险【免费下载链接】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 Directory 枚举工具通过直调 Windows 原生 APIDsEnumerateDomainTrusts快速提取域信任关系帮助攻防人员精准识别SID 过滤SID Filtering风险点。无需 PowerShell 依赖一次调用即可获取全部信任域信息是域安全侦察阶段的利器 为什么选择直调 API 而非 LDAP 查询在大规模企业环境中使用 LDAP 逐条查询信任对象不仅流量大、耗时长而且容易触发审计告警。ADCollector 选择直接调用Netapi32.dll中的DsEnumerateDomainTrusts一次系统调用即可拿回所有信任域的完整结构体数组效率提升显著。 核心思路绕过 LDAP 协议直接让操作系统帮你枚举信任关系。API 声明位于 Natives.cs使用标准 P/Invoke 方式引入[DllImport(Netapi32.dll, CallingConvention CallingConvention.Winapi)] internal static extern uint DsEnumerateDomainTrusts( string ServerName, uint Flags, out IntPtr Domains, out uint DomainCount);调用时传入Flags 63即DS_ENUM_DOMAIN_ALL表示枚举所有类型的信任关系包括森林内信任、树根信任和外部信任。从原始内存到结构化信任数据API 返回的是一整块非托管内存缓冲区ADCollector 通过Marshal.PtrToStructure将每个DS_DOMAIN_TRUSTS结构体逐一提取出来。整个过程在 NativeMethod.cs 中实现调用 API→ 获得内存指针和域计数循环解析→ 按结构体大小逐条偏移读取释放内存→ 调用NetApiBufferFree防止内存泄漏DS_DOMAIN_TRUSTS结构体定义在 Struct.cs包含以下关键字段字段含义NetbiosDomainNameNetBIOS 短名DnsDomainNameDNS 全名Flags信任方向标志位TrustAttributes信任属性含 SID 过滤DomainSid目标域 SIDDomainGuid目标域 GUID信任类型判定逻辑五种信任关系一图看懂拿到原始数据后Trust.cs 中的AnalyzeTrust方法根据标志位组合判定每条信任的类型和方向信任类型TrustType类型判定条件安全含义ParentChildTreeRoot InForest 父域包含目标域树内父子信任风险较低TreeRootTreeRoot InForest同森林树根信任ShortCutInForest非树根同森林快捷信任ForestForestTransitive 属性置位⚠️ 跨森林传递信任攻击面大External以上均不满足⚠️ 外部域信任最需关注信任方向TrustDirection通过TrustFlags中的DirectInBound0x20和DirectOutBound0x02组合判定两者同时置位 →双向信任仅 InBound →入站对方信任我仅 OutBound →出站我信任对方完整的标志位定义见 Enums.cs。 核心SID 过滤风险识别SID 过滤Filtering SID是域信任安全中最关键的防御机制之一。当信任关系启用了 SID 过滤时被信任域中的本地账户 SID不会在信任域中生成权限有效阻止了经典的SID History 攻击。ADCollector 通过检查TrustAttributes中的FilterSids0x4标志位来识别这一状态bool sidFiltering trustAttributes.HasFlag(TrustAttributes.FilterSids);✅FilteringSID True→ 该信任关系已启用 SID 过滤SID History 攻击被阻止⚠️FilteringSID False→ 该信任关系未启用 SID 过滤攻击者可利用 SID History 提权FilterSids标志定义在 Enums.cs 的TrustAttributes枚举中。实际场景在企业并购或域合并后新建的外部信任关系如果未正确配置 SID 过滤攻击者只需将受害者账户的 SID 添加到攻击者账户即可在信任域中获取权限。ADCollector 能在数秒内帮你发现这类配置疏漏。运行效果与调用链路ADCollector 的信任枚举通过以下调用链完成Program.cs → ADCollector.GetTypeObject(typeof(Trust)) → NativeMethod.GetDsEnumerateDomainTrusts() → DsEnumerateDomainTrusts (Netapi32.dll) → Trust.AnalyzeTrust() → DisplayType.DisplayTrust()主入口在 ADCollector.cs执行后终端输出每条信任关系的完整属性源域、目标域、NetBIOS 名、信任方向、类型、是否传递、SID 过滤状态一目了然。快速上手三条命令完成信任侦察:: 默认枚举当前域信任 ADCollector.exe :: 指定域 指定域控适用于跨域场景 ADCollector.exe --Domain corp.example.com --DC 10.0.0.5 :: 使用替代凭据 ADCollector.exe --Domain corp.example.com --UserName admin --Password Pss完整参数说明见 README.md。适用场景速查场景ADCollector 能做什么红队初始侦察快速摸清森林信任拓扑找到横向移动路径蓝队安全审计批量检查所有信任关系的 SID 过滤配置渗透测试识别 Forest/External 类型的高风险信任域迁移后验证确认新旧域间信任属性是否正确配置ADCollector 的设计理念是轻量、快速、无依赖——不依赖 PowerShell 模块不产生大量 LDAP 流量特别适合在大型企业中作为第一道侦察工具使用。直调DsEnumerateDomainTrusts的实现方式让它成为域信任枚举领域值得参考的轻量级方案。【免费下载链接】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),仅供参考
返回列表