.NET 内网实战:通过 DirectorySearcher 执行域环境下的 LDAP 信息收集

01阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。

02基本介绍

本文内容部分节选自小报童《.NET 通过 DirectorySearcher 执行 LDAP 查询》,我们会长期更新!

03原理分析

在 Windows 域环境中,LDAP是一种常见的目录服务协议,允许客户端通过查询 AD 来获取组织结构、用户信息、计算机对象等。在内网渗透和红队测试中,Active Directory 是一个重要的信息收集目标。通过 LDAP 查询,可以快速枚举域内的用户、主机、组、权限等敏感信息,为后续的横向移动和权限提升打下基础。本文将详细介绍如何使用 System.DirectoryServices 命名空间下的 DirectorySearcher 执行 LDAP 查询,并输出查询结果。

3.1 LDAP基础

轻量目录访问协议(LDAP) 是一种访问目录服务的协议。Active Directory 的目录数据可以通过 LDAP 进行查询和修改。 常见的 LDAP 查询示例如下所示。

(servicePrincipalName=*)

3.2 .NET操作LDAP

DirectoryEntry 表示建立与 Active Directory中节点的连接, 或者和其他 LDAP 服务器建立连接。而 DirectorySearcher 类则是在 DirectoryEntry 基础上执行 LDAP 查询,返回对象的集合。这两个类都属于 System.DirectoryServices 命名空间,是 .NET 框架中与 AD 交互的核心工具。比如,连接指定的域控服务器,具体代码如下所示。

DirectoryEntry entry = new DirectoryEntry("LDAP://dc=exploit,dc=org", "Administrator", "P@ssw0rd");

DirectorySearcher 通过设置 Filter 定义查询条件,通过 PropertiesToLoad 指定需要返回的属性,用于在 DirectoryEntry 基础上执行 LDAP 查询。比如,查询用户对象的代码如下所示。

DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry("LDAP://dc=exploit,dc=org"));
searcher.Filter = "(objectClass=user)";
searcher.PropertiesToLoad.Add("sAMAccountName");
foreach (SearchResult result in searcher.FindAll())
{
    Console.WriteLine(result.Properties["sAMAccountName"][0]);
}

代码中,首先通过 Filter 设置过滤器为 查询所有的用户。接着,再通过 PropertiesToLoad 加载指定的属性值 sAMAccountName。

下面这段代码表示创建了一个指向 当前域控制器 的连接对象, 如果 DirectoryEntry 未设置路径,默认表示当前域。

DirectoryEntry directoryEntry = new DirectoryEntry();
DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry);

随后,处理命令行传入的参数值,第一个参数 args[0] 是 LDAP 查询过滤器,比如 (servicePrincipalName=*),第二个参数 args[1] 是需要加载的属性列表,用逗号分隔。具体代码如下所示。

directorySearcher.Filter = args[0];
    if (args.Length > 1)
    {
        list = args[1].Split(new char[]
        {

            ','
        }).ToList<string>();

调用 FindAll() 方法执行查询,返回 SearchResultCollection 集合,每个 SearchResult 对象表示一个 LDAP 条目,如下图所示。

图片

综上,在 Windows 域环境下,利用 DirectoryEntry 和 DirectorySearcher 可以构建功能强大的内网域环境下红队工具。

04.NET 电子报刊

我们的小报童电子报刊【.NET内网安全攻防】也开始运营,引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。如果您对阅读体验的需求比较高,那么可以订阅这个专栏。

本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

原价899,现在限时只需59元,永久买断!目前已有280+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!

图片

感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dot.Net安全矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值