Ldapsearch

时间:2025-01-17 15:25:21

这里我们学习Ldapsearch的用法,主要是获取域中用户、主机、用户组、指定用户组中的用户信息

测试环境

  • 域控:Windows 2016,域名:
  • 测试主机:未加入域,和域控在一个网段,Kali

Ldapsearch的使用

1、Ldapsearch介绍

  • 由OpenLDAP Project项目组开发维护,一个在Shell环境下进行调用ldap_search_exe库进行LDAP搜素的工具。Kali中默认安装
  • LDAP和Windows AD的关系:Active Directory=LDAP服务器+LDAP应用(Windows域控)。Active Directory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用(域控)

2、验证用户是否有效:

ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址

关于binaddn:binddn表示为“绑定专有名称”,可以理解为和LDAP服务器通信的用户名,对于Windows AD可以有两种形式:

  • 用户名@域名
  • 用户和用户所在LDAP目录树中的位置组合:CN=dc16,CN=Users,DC=lab,DC=local,Windows的用户一般都是以CN=用户名,CN=Users,DC=xx(按照域名的形式组合)

通过验证的话会返回No such object,因为没有指定搜索的入口

3、导出域中全部信息:

ldapsearch -D 用于验证的binddb -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'dc=test,dc=lab'

这里结果信息很大,在默认域中只添加一个主机,1个新建用户的情况,产生了近6K行的文件(207K)。里面的信息应有尽有,可以重点关注的关键字:

关键字 备注
dn 记录所对应的专有名称,可以看出该记录是否在某个OU中
description 管理员在创建记录时添加的描述
objectClass 指示记录类型(主机、用户、用户组)
pwdLastSet 最近一次密码设置的时间
sAMAccountName Windows账户登录名(就是 域名\用户名 这种常见于登录框的)
userPrincipalName Windows登录名,类似电子右键的形式
memberOf 用户记录中,用来记录用户所属用户组
member 用户组记录中,用来记录组中用户
lastLogon 上一次登录时间
lastLogonTimestamp

上次登录时间戳

4、导出域中全部用户信息:导出指定部分的记录,利用过滤规则,过滤就可以,但是由于域内主机在AD中也有一个对应的机器账号,所以这里查询的结果也会包含主机。

过滤规则直接添加到命令后即可:

ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'dc=test,dc=lab' 'objectClass=user'

5、导出主机信息

ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'dc=test,dc=lab' 'objectClass=computer'

6、 导出用户组信息

ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'dc=test,dc=lab' 'objectClass=group'

7、导出指定用户组的信息:

修改搜索入口到指定组即可,这里以导出域管用户和域控主机为例

#域管用户
ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'cn=domain admins,cn=users,dc=test,dc=lab' 

#域控主机
ldapsearch -D 用于验证的binddn -w '对应密码' -p ldap服务器端口 -h ldap服务器地址 -b 'ou=domain controllers,dc=test,dc=lab' 'objectClass=computer'

8、超大规模查询:

默认情况ldapsearch显示1000个节点,如果需要查询更多的话添加- e "pr=500/noprompt"选项

9、虽然命令行的ldapsearch操作较为复杂,但更为灵活、在流量、稳定性上也有较好的表现。同时,作为Linux下开源软件,也可以通过交叉编译直接移植到目标边界设备中,在无法进行端口转发时获取内部信息。


加油

: )