笔者最近打算系统的学习以下内网渗透以及域渗透的一些知识,一方面对之前学习过的知识进行梳理,另一方面则对未曾进行深入了解的知识进行学习,本系列大概率会首先对计算机域内的一些基础概念,知识进行总结,然后对内网渗透、域渗透技术进行总结,若有侵权请联系删除。
LDAP 全程为Lightweight Directory Access Protocol,轻量目录访问协议。顾名思义,LDAP这个协议是设计出来访问目录这个东西的。不过这种说法并不准确,应当说是设计出来访问目录数据库的。
在计算机域中,目录服务数据库存储着整个域内所有的计算机,用户等的所有信息。 目录服务由 目录服务数据库 + 访问协议组成。
目录服务数据库本质上就是一个数据库,用来存储数据的,只不过组织数据的方式与普通关系型数据库(如MySQL、Oracle数据库)不同,主要有以下两个特点
为了能够访问目录数据库,必须存在一种能够访问目录服务数据库的协议,LDAP是其中一种实现协议。
如上图所示是目录服务数据库,它成树状结构组织数据。下面介绍一些基本概念
下图为各个厂商对目录服务数据库实现的产品
可以看出 AD即Active Directory 是微软对目录服务数据库的实现方式,而LDAP 则是为访问Active Directory 而设计的访问协议。
想要链接 Active Directory有两种方法
一个林中有若干个域,每个域内有若干台域控,每台域控有一个独立的Active Directory。这个时候就有必要将数据隔离到多个分区中,如果不隔离的话,则每个域控制器都必须复制林中的所有数据。若隔离为若干个分区之后,就可以有选择性的复制某几个分区。微软将Active Directory划分为若干个分区(这个分区我们称为Naming Context,简称NC),每个Naming Context都有其自己的安全边界。
微软自定义了的三个预定义的 Naming Context
Configuration NC内存储的主要是配置信息,关站点,服务,分区和Active DirectorySchema 的信息,处于根域之下,并复制到林中的每个域控中。
Schema NC 存储的Active Directory中存储的对象的定义,个人感觉类似Mysql中的元数据库的概念,包含Schema 信息,定义了Active Directory中使用的类和属性。
Domain NC 每个域都有一个域Naming Context,不同的域内有不同的域Naming Context,其中包含特定于域的数据。之前我们说过,域内的所有计算机,所有用户的具体信息都存在Active Directory底下。
通过查询目录,可以直接收集到要求的数据。查询目录需要指定两个要素
比如指定BaseDN为DC=test.DC=local就是以DC=test.DC=local为根往下搜索
LDAP 搜索过滤器语法有以下子集:
下面举几个例子
一个需要注意的点就是运算符是放在前面的,跟我们之前常规思维的放在中间不一样
访问AD的工具
https://daiker.gitbook.io/windows-protocol/ldap-pian/8