H

LDAP 协议相关

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%

1 目录服务简介​

日常生活中使用的电话簿记录了亲戚和朋友的名称,电话号码和地址,这是电话目录;计算机中的文件系统记录了文件的文件名,大小,日期和其他数据,这是文件目录。
如果这些目录中的数据可以通过系统对,则用户可以轻松,快速找到所需的数据,并且目录服务(目录服务)提供的服务将实现此目标。
目录服务是一种特殊的非关系数据库,用于存储描述性,基于属性的详细信息并支持过滤。这种数据库与我们的常见关系数据库(MySQL,SQL Server,Oracle等)之间的区别在于,目录服务将数据存储在类似树的层次结构中,就像Linux/Unix Systems中的文件目录一样。此外,目录服务是一个优化用于搜索和浏览的数据库。它具有出色的读取性能,但写入性能差,并且没有复杂的功能,例如交易处理和回滚,因此不适合存储和经常修改的数据。
总而言之,目录服务更适合存储诸如组织结构之类的信息。

2 LDAP 简介​

LDAP(轻目录访问门口)是基于X.500标准的轻型目录访问协议。 LDAP协议曾经具有X.500 DAP协议规范。该协议非常复杂,是一个重量级协议。后来,简化了X.500,LDAP协议诞生了。与X.500相比,它比X.500轻。实际上,LDAP协议仍然很复杂。
LDAP就信息互动格式,所使用的端口号,身份验证方法以及客户端和服务器之间的其他内容达成协议。 LDAP协议的实现有许多版本。例如,微软的Active Directory是Windows上LDAP的实现。 AD实现了LDAP所需的树数据库,如何解析请求数据并查询数据库,然后返回结果。例如,OpenLDAP是可以在Linux上运行的LDAP协议的开源实现。我们通常指的是LDAP服务器通常是指安装和配置Active Directory和OpenLDAP等程序的服务器。

3 LDAP 的基本模型​

每个系统和协议都会有自己的模型,LDAP也不例外。在了解LDAP的基本模型之前,我们需要了解LDAP:的几个目录树的概念
目录树:在目录服务系统中,整个目录信息集可以表示为目录信息树,而树中的每个节点都是条目。
条目:每个条目都是记录,每个条目都有其自己独特且独特的名称(DN)。
对象类:对象类,一组与某个实体类型相对应的属性。可以继承对象类,因此父类必须属于
性将继承。
属性:描述条目方面的信息。属性由属性类型和一个或多个属性值组成。属性具有所需的属性和不必要的属性。
LDAP目录将数据存储在类似树状的层次结构中。顶层(根)称为“基本DN”,就像dc=geekby,dc=xyz或ou=geekby.xyz。前一种方法更灵活,也是Windows AD中使用的一种方法。根目录下方有许多文件和目录。为了在逻辑上将这些大量数据分开,LDAP使用OU(组织单位),例如其他目录服务协议,这些协议可用于代表公司的内部组织,例如部门等,并且还可以代表设备,人员等。同时,OU也可以具有次要的代表来代表更多详细的分类。 LDAP中的每个记录都有一个唯一的名称DN(杰出名称),该名称与其他记录不同。 “叶子”位置的零件称为RDN;例如,在dn:cn=tom,ou=动物,dc=geekby,dc=xyz,汤姆是rdn; RDN必须在OU中是唯一的。
因为LDAP数据是“树”形状的,并且假设您想要在树上的记录,那么该树可以无限地扩展,因此如何找到其位置?当然,首先,我们需要解释哪个树(DC),然后要解释从根到该苹果的所有“叉”(OU),最后是该苹果的名称(CN)。了解树(dc=geekby,dc=xyz),分叉(ou=it,ou=worker,ou=pentester)和苹果(cn=abc),您可以找到我们想要的苹果:
1
dn:cn=abc,ou=it,ou=worker,ou=pentester,dc=geekby,dc=xyz
使用LDAP协议的一系列操作是在LDAP的功能模型中定义的。它包含三个部分:
询问操作:允许查询目录并获取数据。它包含搜索操作和比较操作。
更新操作:允许添加(add),删除(删除),重命名(重命名)和更改目录(修改)
身份验证和控制操作使客户可以在目录中识别自己,并可以控制会话的性质。

4 LDAP 和 AD 的关系​

Active Directory是基于LDAP协议的一组解决方案(LDAP服务器+应用程序),LDAP是与AD交互的协议之一。
Active Directory求解了“访问“什么”许可”的细粒度权限控制。 AD还具有LDAP V3规范上方的自定义扩展名,例如帐户锁定,密码到期等。

5 利用 LDAP 收集域信息​

通常,任何身份验证的用户都可以通过LDAP获得大量有趣的域信息。因此,在信息收集阶段,LDAP可用于查询和组织有关域环境的相关信息。

5.1 相关工具​

AdFind您可以在命令下获取该域的详细信息。使用参考:http://www.joeware.net/freetools/tools/adfind/usage.htm
Adexplorer是一种独立的可执行软件,不需要安装。除了查询域信息外,Adexplorer还可以拍摄快照,可以在本地保存,并且可以使用Adexplorer打开。
ldapsearch
ldapdomaindump是为Python开发的,可以通过LDAP收集和解析数据,并将其输出到人类可读的HTML格式以及机器可读的JSON和CSV/TSV格式中。
1
2
3
4
5
domain_groups:组3360目标域列表
domain_users:目标域的用户列表
domain_computers:目标域的计算机帐户列表
domain_policy:域策略,例如是否需要密码,等等。
domain_trusts:接入和传出域属性以及它们是否受到信任

5.2 获取域信息实例​

环境:
1
2
3
域控制:192.168.66.26(dc.company.com)
域用户凭据:pentest \ win7user:123456ab
使用工具adfind.exe
以下列出了AdFind的一些用法示例,主要是引入工具参数。我们可以根据我们的需求修改命令,并查询我们关注的任何信息。例如,查询受控凭据所属的组,查询特定组的成员,推断用户可能会根据计算机名称等方面的计算机等等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#试验域中所有用户的详细信息
adfind -H 10.1.26.128 -U公司\ test -up Geekby -sc U:*
#域中的特定用户详细信息
adfind -H 10.1.26.128 -U公司\ test -up geekby -sc U:Test
#域中的特定特定用户特定信息(邮件)
adfind -H 10.1.26.128 -U公司\ test -up geekby -sc u: -test邮件
#试验域中的所有用户DN信息
adfind -H 10.1.26.128 -U Company \ Test -up Geekby -sc U:* -dn
#Query域中的用户数量
adfind -H 10.1.26.128 -U Company \ Test -up Geekby -sc U:* -c
#Query域中所有组的详细信息
AdFind -H 10.1.26.128 -U Company \ Test -up Geekby -sc G:*
#query在域中的组名称中包含“ admin”的所有组详细信息
adfind -H 10.1.26.128 -U公司\ Test -up Geekby -sc G:管理员
adfind -H 10.1.26.128 -U公司\ test -up Geekby -sc o:* #query域中所有计算机的详细信息
adfind -H 10.1.26.128 -U Company \ Test -up Geekby -sc C:*##域中所有网站的快速详细信息
adfind -H 10.1.26.128 -U公司\ test -up Geekby -sc site:* #query域中所有子网的详细信息
adfind -H 10.1.26.128 -U Company \ Test -up Geekby -sc subnet:* #query域的信任关系
adfind -H 10.1.26.128 -U Company \ test -up Geekby -sc trustdmp #query spn的详细信息
AdFind -H 10.1.26.128 -U Company \ Test -Up Geekby -SC SPN:*
#Search for dn dn
adfind -H 10.1.26.128 -U Company \ test -up Geekby -b dc=Company,dc=com -f userAccountControl:and:=514 -DN
 
后退
顶部