概述

目录服务解释:

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

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

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

那么如果有一个产品,能将所有用户的账户进行分类保存,方便管理员查找与管理,那么就可以很大程度简化管理员这方面的工作,目录服务就出现了。

可是目录服务的写入性能就非常差了,而且不支持事务处理等容错功能,因此不适合频繁修改数据。

但是其读取性能十分的好,所以将不常修改但经常会读取的数据存储在目录服务中,整体效率会有较大提升,像企业员工信息、企业设备信息、证书公钥等具有层次性、且不需要频繁改写的数据都适合使用目录服务来存储。

X.500 是 ISO 制定的一套目录服务的标准,它是一个协议族,定义了一个机构如何在全局范围内共享名称和与名称相关联的对象。

通过它,可以将局部的目录服务连接起来,构建基于 Internet 的分布在全球的目录服务系统……而目录访问协议(DAP)是 X.500 的核心组成之一。

DHCP(动态主机配置协议):是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

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

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

LDAP解决了什么问题

解决了SSO也就是单点登陆,简单的来说,只要符合通过LDAP认证,则可以用同一个账号密码来登陆组织内所有的服务,避免了多次登陆的问题。

例如登陆上qq号后,点击空间等各种应用,不用进行二次登陆,这就利用了LDAP实现了SSO。

简单来说就类似于一卡通,一个账号走天下。

当公司来了新人的时候,只需要在LDAP里面加入他的账号,这样他就可以访问他账号权限下所有的系统,不需要每个系统分配一个账号,方便进行管理,当其离职的时候,只需要在LDAP服务器中删除账号记录即可。

LDAP 理解

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

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

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

LDAP像数据库,但是有很大的区别,数据库的存在是为了方便数据的增删改查,数据库可以存储数据。

而LDAP是一个协议,它没有存储数据的功能,它提供了一种方式来优化数据的读取。
只有域控能查看与修改整个域的LDAP属性,使用adsiedit.msc。

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

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

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是倒着看的,从右向左依次:

dc=mydomain,dc=org为基准DN。
ou=animals为OU。
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

AD与LDAP的关系

Active Directory应该是LDAP的一个应用实例,
而不应该是LDAP本身,AD是基于LDAP协议的一个成熟的应用而已。

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

思考

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

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

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

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

基于LDAP的攻击

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

389-LDAP
636-LDAPS
LDAP全局目录

LDAP数据的组织方式

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

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下的数据进行查询,如下图:

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


查询所有的用户

 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


查询域内计算机

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


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

渗透测试-LDAP目录服务攻击相关推荐

  1. Kali渗透测试:拒绝服务攻击

    Kali渗透测试:拒绝服务攻击 故意占用某一系统对外服务的有限资源,从而导致其无法正常工作的行为就是拒绝服务攻击.拒绝服务攻击是指攻击者想办法让目标停止提供服务,是黑客常用的攻击手段之一.其实对网络带 ...

  2. http referer 验证防御方法_渗透测试 跨站攻击防御与安全检测手法剖析

    上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性更加坚固,对此提 ...

  3. 渗透测试 跨站攻击手法剖析

    上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们Sinesafe想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性 ...

  4. Kali渗透测试——利用metasploit攻击靶机WinXP SP1

    搭建渗透测试环境 Kali攻击机 WinXP SP1 靶机 启动metasploit 跟windows RPC相关的漏洞 内部提供的漏洞攻击 靶机winxp sp1网络配置 查看虚拟机的NAT网段 配 ...

  5. termux使用教程python手机_渗透测试|利用手机攻击电脑(Termux终端初体验)

    至少我们曾经在一起过. 来自:一言 介绍 Termux是一个Android下一个高级的终端模拟器,开源且不需要root,支持apt管理软件包,十分方便安装软件包,完美支持Python,PHP,Ruby ...

  6. 【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程

    目录 渗透测试方法论 渗透测试(penetration testing,pentest) 渗透测试种类 * 黑盒测试 * 白盒测试 * 脆弱性评估与渗透测试 安全测试方法论 * 开放式web 应用程序 ...

  7. 网络安全学习(渗透测试方法论,web架构安全分析,信息收集)

    目录 一.渗透测试方法论 渗透测试种类 *黑盒测试 *白盒测试 *脆弱性评估与渗透测试 二.安全测试方法论 *开放式 Web 应用程序安全项目(Open Web Aplication Security ...

  8. 软件测试:web渗透测试怎样入门!讲透了...

    一.简介 1.web渗透测试概述 渗透测试:模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法. web渗透测试:只针对web应用的渗透测试 2.常见web安全漏洞 1.输入输出验证不充分 ...

  9. 0003 渗透测试标准

    0003 渗透测试标准 渗透测试标准(PTES:Penetration Testing Executjion Standard)是对渗透测试的重新定义,通过定义一次完整的渗透测试过程的标准,来实现一次 ...

最新文章

  1. SpringSecurity 权限控制之异常处理流程图
  2. 机器学习进阶-优化的近邻算法
  3. c++ string 拼接_C++日志(二十五)字符数组、字符数组指针和string类
  4. 免费直播 | 宏基因组云讲堂第二期由刘永鑫博士主持,特邀王金锋副研究员分享“用时序微生物组数据重现生物膜装配的动态过程”...
  5. 高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍
  6. swift语言 编写 ios开发 第一个程序hello world!
  7. 深度学习之江湖~那些大神们
  8. linux TP 阿帕奇 数据库 php的安装
  9. 【中学】寻找阿姆斯特朗数
  10. 我的个人知识管理工具软件
  11. 技术团队管理:技术分享
  12. 第二期:关于大数据相关的问答汇总,关注持续更新中哦~
  13. 模拟卷Leetcode【普通】729. 我的日程安排表 I
  14. 运筹优化(十三)--大规模优化方法
  15. Blender 制作刀光特效所用模型
  16. SASS实现颜色卡动画
  17. 工装夹具检具治具机械设计机构solidworks模型3d课程图纸sw
  18. PMP证书容易考吗?
  19. matlab滤波器滤除低频直流信号,对低频信号的滤波的方法
  20. 如何用好MindMapper中的便签

热门文章

  1. windows蓝屏代码含意全集
  2. 第 1 章 程序设计基本方法
  3. 单词串联记忆 - 故事 - Party上浪漫的事后传
  4. 【k8s】重启kubelet、查看所有服务
  5. cad画圆如何确定圆心_cad画圆如何确定圆心_CAD如何利用对象捕捉追踪功能来确定小圆圆心以及矩形的角点位置......
  6. html的css雪花动效,《前端每日实战》第171号作品:用纯 CSS 绘制一朵美丽的雪花...
  7. android语音记账,爱彼语记语音计算器记账记事本
  8. ETL开发过程中遇到的问题
  9. Python使用pyecharts库制作桑基图
  10. 深度CTR之AFM:基于Attention网络的FM模型