文章目录

  • 1. 前言
  • 2. LDAP为什么会存在?
    • 2.1 目录服务
    • 2.2 LDAP解决了什么问题
  • 3. LDAP到底是什么
  • 4. LDAP部分细节
  • 5. AD与LDAP的关系
  • 6.思考
  • 7. 基于LDAP的攻击
    • ldapsearch使用方法:
  • 7.参考文章

1. 前言

LDAP是我经常听到的词汇,但一直没有对其进行系统但学习,现在专门写一篇文章记录对其对理解。

2. LDAP为什么会存在?

我们首先得理解LDAP这个东西为什么会存在,这时候就有一个概念出现了,它就是目录服务。

2.1 目录服务

在局域网中为了方便主机管理,一般使用DHCP分配IP地址给局域网内的各个资产来方便定位,也有可能会配合DNS与域名进行使用。

对于局域网内的一个用户来讲,我们经常需要登陆内部邮箱进行发送邮件等,所以整个局域网内会有很多用户账户,如果每个应用我们都有一个不同的账户的话,那么局域网内的账户总数会是倍增的,很难管理。

对于局域网管理员来说维护这么多账号是个很麻烦的事情,例如出现人员的离职的时候,可能查找很久才能找到其对应的账号与其他信息并进行删除,如果应用很多的话那么工作量也会翻倍,因为每一个应用都有不同的账号。

那么如果有一个产品,能将所有用户的账户进行分类保存,方便管理员查找与管理,那么就可以很大程度简化管理员这方面的工作,目录服务就出现了。可是目录服务的写入性能就非常差了,而且不支持事务处理等容错功能,因此不适合频繁修改数据。但是其读取性能十分的好,所以将不常修改但经常会读取的数据存储在目录服务中,整体效率会有较大提升,像企业员工信息、企业设备信息、证书公钥等具有层次性、且不需要频繁改写的数据都适合使用目录服务来存储。X.500 是 ISO 制定的一套目录服务的标准,它是一个协议族,定义了一个机构如何在全局范围内共享名称和与名称相关联的对象。通过它,可以将局部的目录服务连接起来,构建基于 Internet 的分布在全球的目录服务系统……而目录访问协议(DAP)是 X.500 的核心组成之一。

LDAP只是目录服务的一种派生而已,LDAP是一种协议。LDAP对已有的X.500进行了优化,使得只要一个账户通过了LDAP服务器的认证,则可以一个账户访问局域网内的所有授权资源,极大的减少了管理员的工作量。

基于 LDAP 协议的产品有很多,最有名两个的是开源的 OpenDirectory 以及微软开发的 ActiveDirectory。

2.2 LDAP解决了什么问题

解决了SSO也就是单点登陆,简单的来说,只要符合通过LDAP认证,则可以用同一个账号密码来登陆组织内所有的服务,避免了多次登陆的问题。例如登陆上qq号后,点击空间等各种应用,不用进行二次登陆,这就利用了LDAP实现了SSO。
简单来说就类似于一卡通,一个账号走天下。当公司来了新人的时候,只需要在LDAP里面加入他的账号,这样他就可以访问他账号权限下所有的系统,不需要每个系统分配一个账号,方便进行管理,当其离职的时候,只需要在LDAP服务器中删除账号记录即可。

3. LDAP到底是什么

我理解的LDAP应用是为了管理一个网络内的所有用户的账户而出现的,类似于一个号码簿,对不同的用户进行分类方便管理号码簿的人对其进行查找,可以理解其是一个数据库或者树。这里摘抄我看到的一篇文章里的话:

LDAP是Lightweight Directory Access Protocol的缩写,顾名思义,它是指轻量级目录访问协议(这个主要是相对另一目录访问协议X.500而言的;LDAP略去了x.500中许多不太常用的功能,且以TCP/IP协议为基础)。目录服务和数据库很类似,但又有着很大的不同之处。数据库设计为方便读写,但目录服务专门进行了读优化的设计,因此不太适合于经常有写操作的数据存储。同时,LDAP只是一个协议,它没有涉及到如何存储这些信息,因此还需要一个后端数据库组件来实现。这些后端可以 是bdb(BerkeleyDB)、ldbm、shell和passwd等。

相信大家对LDAP已经有了自己的理解。总的来说LDAP的概念是:

  1. LDAP中文名是轻量级目录访问协议,还有一个目录访问协议是x.500,LDAP是对其对一个优化,去掉了其不常用的功能,因此叫做轻量级目录访问协议。

  2. LDAP像数据库,但是有很大的区别,数据库的存在是为了方便数据的增删改查,数据库可以存储数据。而LDAP是一个协议,它没有存储数据的功能,它提供了一种方式来优化数据的读取。
    只有域控能查看与修改整个域的LDAP属性,使用adsiedit.msc

  3. LDAP的后端是有一个数据库对数据进行存储的,LDAP只是只是一个协议,并不是数据库本身,它代表一种数据存储与读取的方式。

  4. 一条LDAP记录代表了一个资产在局域网中的位置,如dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=waibo,dc=com 。

4. LDAP部分细节

LDAP目录以树状结构来显示数据,最顶层的根部称作基准DN,下图中基准DN为DC=test,DC=com。

LDAP中的每一条记录都是唯一的,并且称之为DN(Distinguished Name),与基准DN是不一样的,而处于LDAP的上叶子位置的部分被称作为RDN相对辨识名;例如:
dn:cn=tom,ou=animals,dc=mydomain,dc=org中tom即为 RDN;RDN在一个OU中必须是唯一的。
LDAP是倒着看的,从右向左依次:

  1. dc=mydomain,dc=org为基准DN。
  2. ou=animals为OU。
  3. cn=tom为RDN。

基准DN就像是树根,OU就像树枝,RDN就像是树叶。如果我们要找某一片特征树叶,就要先确定在哪棵树上,然后确定在指定树的哪个树枝上,最后确定对应哪片树叶。

借用他人的一个例子:

因为LDAP数据是“树”状的,而且这棵树是可以无限延伸的,假设你要树上的一个苹果(一条记录),你怎么告诉园丁它的位置呢?当然首先要说明是哪一棵树(dc,相当于MYSQL的DB),然后是从树根到那个苹果所经过的所有“分叉”(ou,呵呵MYSQL里面好象没有这 DD),最后就是这个苹果的名字(uid,记得我们设计MYSQL或其它数据库表时,通常为了方便管理而加上一个‘id’字段吗?)。好了!这时我们可以清晰的指明这个苹果的位置了,就是那棵“歪脖树”的东边那个分叉上的靠西边那个分叉的再靠北边的分叉上的半红半绿的……,晕了!你直接爬上去吧!我还是说说LDAP里要怎么定义一个字段的位置吧,树(dc=waibo,dc=com),分叉(ou=bei,ou=xi,ou= dong),苹果(cn=honglv),好了!位置出来了:
  dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=waibo,dc=com

5. AD与LDAP的关系

Active Directory应该是LDAP的一个应用实例,而不应该是LDAP本身,AD是基于LDAP协议的一个成熟的应用而已。
我理解的是AD可以对域内的所有资产进行增删改查,但是这一切的操作都是基于LDAP协议实现的,AD 域服务利用 LDAP 命名路径(LDAP naming path)来表示对象在 AD 内的位置,以便用它来访问 AD 内的对象。

6.思考

  1. LDAP不是数据库而是一种协议,市面上有很多基于LDAP协议而做出来的应用。我们使用的大多都是这种应用,类似于邮箱应用就基于SMTP协议一样。

  2. LDAP协议的产生目的是为了方便资产管理,这个资产可能是人,可能是物。

  3. 一般应用场景是:一个域内有一个LDAP服务器,上面存储了很多账号,当我们需要给域内增加一个应用的时候,只要这个应用至此LDAP验证,则此时域内所有LDAP服务器上的账号,都可以使用自己的账户来登陆并使用刚刚添加的应用。如果没有LDAP服务器,则需要给域内每个人准备一个应用的账号。

  4. LDAP主要在应用之间做身份认证,而kerberos是域内的基于主机的身份认证。

7. 基于LDAP的攻击

DC中一般会开放如下几个端口:

  • 389-LDAP
  • 636-LDAPS
  • LDAP全局目录

LDAP数据的组织方式:


可使用ldapsearch工具与通过其他方式得到的凭据进行LDAP查询进行信息收集:

ldapsearch -LLL -x -H ldap://192.168.124.142:389 -D "administrator@test.com" -w "123"   -b dc=test,dc=com "(objectClass=computer)"

  1. 查询所有的用户

    ldapsearch -LLL -x -H ldap://192.168.124.142:389 -D "administrator@test.com" -w "123"   -b dc=test,dc=com "(objectClass=user)"       sAMAccountName userPrincipalName memberOf
    

  1. 查询域内计算机
ldapsearch -LLL -x -H ldap://192.168.124.142:389 -D "administrator@test.com" -w "123"   -b dc=test,dc=com "(objectClass=computer)"       sAMAccountName

ldapsearch使用方法:

ldapsearch -LLL -x -H ldap://192.168.124.142:389 -D "administrator@test.com" -w "123"   -b cn=Computers,dc=test,dc=com "(objectClass=*)"

-x 代表普通方式认证
-LLL代表一种显示结果的格式
-H 代表目标目标服务器上的ldap服务,一般是域控的ip或者ldap服务器的ip
-D 代表用户名,域内任意一个账户就可以,不必是域控的账户
-w 代表密码
-b 代表要查询的基础dn,如上述例子中 -b cn=Computers,dc=test,dc=com代表以cn=Computers,dc=test,dc=com为基础的dn,对其Computers下的数据进行查询,如下图:

如果在其的dn前加上cn=zhangsan,那么就只能查询zhangsan这个分支下所有的数据,如下图:

ldapsearch相关用法
LDAP学习与查询
LDAP命令用法

7.参考文章

LDAP服务原理详解
统一身份认证
kerberos security
ldapsearch相关用法
LDAP学习与查询
LDAP命令用法

LDAP简述与相关攻击手法相关推荐

  1. 区块链相关安全名词及常见攻击手法

    钱包 Wallet 钱包(Wallet)是一个管理私钥的工具,数字货币钱包形式多样,但它通常包含一个软件客户端,允许使用者通过钱包检查.存储.交易其持有的数字货币.它是进入区块链世界的基础设施和重要入 ...

  2. 操纵神经元构造后门,腾讯朱雀实验室披露AI模型新型攻击手法

    近日,在第19届XCon安全焦点信息安全技术峰会上,腾讯朱雀实验室首度公开亮相.这个颇有神秘色彩的安全实验室专注于实战攻击技术研究和AI安全技术研究,以攻促防,守护腾讯业务及用户安全. 会上,腾讯朱雀 ...

  3. “黑”掉神经网络:腾讯披露新型AI攻击手法,主流机器学习框架受影响

    来源:AI前线 本文约3000字,建议阅读6分钟. 本文为你介绍一种新兴的针对机器学习模型的攻击方式"后门攻击". "后门攻击"是一种新兴的针对机器学习模型的攻 ...

  4. LDAP简述及统一认证说明

    LDAP简述 LDAP相关概念 1)轻型目录访问协议(Lightweight Directory Access Protocol),LDAP是一种通信协议,LDAP能够支持TCP/IP.协议就是标准, ...

  5. 无线电遥控器传安全漏洞 当中潜藏5大攻击手法

    随着企业操作科技(OT)自动化的程度越来越高,原先封闭的环境可能为此与IT环境和因特网连接,再加上黑客攻击的门坎逐年降低,已非高不可攀.在这样的态势下,原先大家普遍认为,长年持续运作的操作科技,理应不 ...

  6. “黑”掉神经网络:腾讯披露新型AI攻击手法

    本文约3000字,建议阅读6分钟.本文为你介绍一种新兴的针对机器学习模型的攻击方式"后门攻击". "后门攻击"是一种新兴的针对机器学习模型的攻击方式. 8月19 ...

  7. 透过安全事件剖析黑客组织攻击技术(2FA/MA的攻击手法)

    笔者给大家介绍一些常用的绕过2FA或MFA的攻击技术. (1)MFA疲劳攻击技术 (2)黑客使用Evilginx等黑客工具,进行中间人截持攻击 (3)通过暴力枚举破解2FA或MFA身份验证信息 (4) ...

  8. AD域渗透 | PTHPTK哈希传递攻击手法

    AD域渗透的第二篇,托更一下Kerberos协议的分析文章,等到攻击手法研究明白了,再把协议分析放上来,防止像那些理解不明不白的人写的东西一样祸害人. 发生情况 在高版本的windows server ...

  9. 开普敦大学快速相关攻击项目的简单使用

    项目地址 可以到上面的地址中,从Download下载到该项目以及项目相关的介绍 安装 环境:Ubuntu18.04 步骤一:安装GSL 首先需要安装依赖包GSL(GNU Scientific Libr ...

最新文章

  1. 2021-07-30 自己垃圾场景数据集训练Bisenet网络
  2. ASP.NET中数据库数据导入Excel并打印
  3. python具有可扩展的特性吗_1. 以下()不是python的特征 A 、 收费使用 B 、 跨平台 C 、 可拓展 D 、 可嵌入...
  4. ClickHouse之集群搭建以及数据复制
  5. 启动之后自己关闭_电脑一开都是广告,请问怎么永久关闭?
  6. UVA10561 Treblecross
  7. mf253s移动版变全网通_中国电信发布5G全网通终端需求白皮书v2.0
  8. android hud sdk,Android HUD SDK | 百度地图API SDK
  9. JavaScript之数组去重
  10. java collection_【基础篇】java-Collection集合-List和Set
  11. 实战项目——小王优品铺
  12. 数字电视的格式(BT.601 BT.709 BT.2020)和接口(BT.656 BT.1120 BT.2077)
  13. SIFT四部曲之——方向角度确定
  14. 华为充电协议_华为推出超级快充多协议充电器,支持65W USB PD快充输出
  15. SystemUI 布局
  16. Python 面试题
  17. vue - vue使用腾讯api进行定位获取,绘制地图、标点、搜索、路线规划
  18. 【杂文随笔】2018年总结 送自己一个字
  19. android安卓导航栏高度是多少,Android--状态栏高度,导航栏高度,Window高度,DecorView高度,heightPixels...
  20. DataCamp的intermediate python学习笔记(001)

热门文章

  1. 大连实习之报告总结——————我的感悟与收获
  2. rTotalCMD | TC替换资源管理器 For Win7
  3. 什么是Unicode编码
  4. linux串口配置驱动程序,Linux下安装PCI转串口卡及USB转串口器的驱动方法
  5. 14Cr1MoR容器、14Cr1MoR对应材质SA387Gr11CL2
  6. python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表,中国大学MOOC(慕课)答案公众号搜题...
  7. 随机产生a-z一个字母
  8. 小技能:监控器查看视频录像回放
  9. 最新消息:@live.com@live.cn邮箱正式开放注册了!
  10. mysql 慢查询毫秒_Mysql 慢查询优化实践