Ldapsearch

article/2025/11/6 0:19:06

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

测试环境

  • 域控:Windows 2016,域名:test.lab
  • 测试主机:未加入域,和域控在一个网段,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最近一次密码设置的时间
sAMAccountNameWindows账户登录名(就是 域名\用户名 这种常见于登录框的)
userPrincipalNameWindows登录名,类似电子右键的形式
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下开源软件,也可以通过交叉编译直接移植到目标边界设备中,在无法进行端口转发时获取内部信息。


加油

: )


http://chatgpt.dhexx.cn/article/xpdsXLg1.shtml

相关文章

SQL标准中的四种隔离级别

事务并发引起的问题排序: 脏读 > 不可重复读 > 幻读 我们上边所说的舍弃一部分隔离性来换取一部分性能在这里就体现在:设立一些隔离级别,隔离级别越低,越严重的问题就越可能发生。有一帮人(并不是设计MySQL的大叔…

标准化查询语言—SQL

标准化查询语言—SQL 1. SQL语言简介 SQL即结构化查询语言,是Structured Query Language的缩写, 是介于关系代数和关系演算之间的语言。其主要功能是同各种数据库建立联系,进行沟通。 SQL是关系数据库的标准语言。 2. SQL基本特点 SQL语言…

SQL Server 2019企业版和标准版的区别?

来源公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__bizMzI1NTQyNzg3MQ&mid2247485400&idx1&sn432b580ed77224bf883db109cb7767b4&chksmea3753a8dd40dabed0763a002e1477a9688481337757869a32b3ccd90d5bc470be305bb48417&…

关系数据库标准语言SQL

概述 SQL是一个综合的、功能极强、又简单易学,既是独立语言又是嵌式性语言。语言风格统一,其集数据查询、数据操纵、数据定义和数据控制等功能于一体,可以独立完成数据库生命周期的全部活动。 1、其主要特点如下: 综合统一 高度非过程化 …

关系数据库标准语言SQL详解

关系数据库标准语言SQL SQL之所以能够为用户和业界所接受并成为国际标准,是因为它是一个综合的、功能极强又简洁易学的语言。SQL集数据查询、数据操作、数据定义和数据控制 功能于一体,其主要特点包括以下几个部分: 综合统一 SQL集数据定义语…

sql语句规范

修改表名称:rename table 原始表名称 to 新的表名称; SQL注释 一般在编写sql脚本文件时需要添加合理的注释信息。 单行注释:select 1; #说明信息 或者 select 1; – 说明信息。 多行注释: /*开头 */收尾 数据类型 数值型 5种整型 tinyin…

SQL语言的规则与规范

SQL语言的规则与规范 前言一、SQL概述1、SQL背景知识2、SQL语言排行榜3、SQL 分类 二、SQL语言的规则与规范1、基本规则2、SQL大小写规范 (建议遵守)3、注 释4、命名规则(暂时了解)5、数据导入指令 前言 本博主将用CSDN记录软件开…

标准SQL

SQL是Structured Query Language的缩写,它的前身是著名的关系数据库原型系统System R所采用的SEQUEL语言。作为一种访问关系型数据库的标准语言,SQL自问世以来得到了广泛的应用,不仅是著名的大型商用数据库产品Oracle、DB2、Sybase、SQL Serv…

SQL标准的历史

SQL标准已经存在30多年了,它改变了吗?绝对的!了解从SQL-86到现代SQL(当今的标准数据语言)的过程。 SQL是IBM在20世纪70年代由IBM公司创建的。1974年,Donald Chamberlin和Raymond Boyce发表了SEQUEL:《A Structured English Query Language》&#xff0…

SQL语法基础篇 —— 常用的SQL标准

常用的SQL标准 SQL有两个主要的标准,分别是SQL92和SQL99。92和99代表了标准提出的时间,SQL92就是92年提出的标准规范。除了SQL92和SQL99以外,还有其他的标准。 最重要的SQL标准就是SQL92和SQL99。一般来说SQL92的形式更简单,但是…

mysql多表查询(一口气解决掉:自连接 左右连接 满连接等)

多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,…

【第一章】SQL基础知识

目录 ​编辑 1. 认识SQL 1.1 SQL的标准 1.2 SQL的种类 1.3 SQL的功能 2. 常量 2.1 数字常量 2.2 字符串常量 2.3 日期和时间常量 2.4 符号常量 3. 变量 3.1 局部变量 3.2 全局变量 4. 运算符 4.1 算术运算符 4.2 比较运算符 4.3 逻辑运算符 4.4 按位运算符 …

C# WinForm中NotifyICon控件的用法【1】

任务栏中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制。 平时我们在使用QQ的时候,QQ主界面隐藏到系统托盘里,需要调用的时候在点击出来,很好很强大。 那么我们在C#中如何实现呢。本…

notify() notifyAll() 区别

notify 参考:https://blog.csdn.net/weixin_44121696/article/details/109306019 public class ObjectTest {public static void main(String[] args) {Object objectLock new Object();new Thread(() -> {synchronized (objectLock) {System.out.println(Thre…

NotifyIcon的属性、事件、方法

参考文章: NotifyIcon控件的使用. 属性 属性名操作博主翻译ContextMenuStrip可绑定ContextMenuStrip控件当用户右击该图标,显示的快捷菜单Icon必须选择一个ico格式的图片,否则右下角任务栏不会出现对象的可见性级别。所有属性都适用 事件 1.鼠标双击…

notify和notifyAll

notify: notify只会唤醒众多等待线程中的其中一个线程 用包子铺案例来演示一下 package com.thread;/*** author 邓亚非*/ public class TestNotify {private static Object objectnew Object();public static void main(String[] args) {// 顾客1线程new Thread(new …

notify和notifyall的区别

文章目录 场景分析例子经典java线程状态流转图 场景 调用wait的线程的唤醒,一般通过notify和notifyAll,但是两者之间有什么区别呢? 分析 线程调用synchronized方法或者synchronized代码块需要获取对象锁,如果没有获取则进入锁池线程调用wa…

Winform从入门到精通(14)——NotifyIcon(史上最全)

文章目录 前言:一、属性1、BalloonTipIcon1.1 ToolTipIcon.Error1.2 ToolTipIcon.Info1.3 ToolTipIcon.Warning1.4 ToolTipIcon.None2、BalloonTipText3、BalloonTipTitle4、Icon4.1 界面设置icon属性4.2 代码设置Icon属性5、Tag6、Text7、Visible

WPF利用NotifyIcon创建任务栏图标(菜鸟教程)

学习目标: 记录从WPF应用创建开始,一步步到任务栏图标创建的全过程。 流程: 1、环境:Win10 VS2017 打开VS2017,选择文件 -> 新建 -> 项目 -> Visual C# -> Windows桌面 ->WPF应用 -> 更改项目名为…

Notify

1 有什么用 作用 : 解耦,异步,并行 举个栗子 假设我们有这么一个应用场景,为了完成一个用户注册淘宝的操作,可能需要将用户信息写入到用户库中,然后通知给红包中心给用户发新手红包,然后还需…