Loading

LDAP未授权访问学习

LDAP未授权访问学习

一、LDAP

介绍

LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP。

LDAP目录为数据库,通过LDAP服务器(相当于DBMS)处理查询和更新, 以树状的层次结构来存储数据,相对关系型数据库, LDAP主要是优化数据读取的性能,适用于比较少改变、跨平台的信息。

LDAP属性

属性 全名 描述
dn distinguished name 唯一标识名,类似于绝对路径,每个对象都有唯一标识名。 例如:uid=tester,ou=People,dc=example,dc=com
rdn relative 相对标识名,类似于相对路径。 例如:uid=tester
uid user id 通常指用户登录名。 例如:uid=tester
sn sur name 通常指一个人的姓氏。 例如:sn: Su
giveName 通常指一个人的名字。 例如:giveName: Aldwin
I 通常指一个地方的地名。 例如:I: Beijing
objectClass objectClass是特殊属性,包含数据存储的方式以及相关属性信息。
dc domain component 通常指定一个域名。 例如:dc=example,dc=com
ou organization unit 通常指定一个组织单元的名称。 例如:ou=people,dc=example,dc=com
cn common name 通常指一个对象的名称。如果是人,需要使用全名。
c country 一个二位的国家代码。 例如:CN、US、HK、JP等。

二、LDAP&phpldapadmin搭建

Ubuntu系统搭建LDAP服务及web端管理服务phpldapadmin

参考文章:

https://my.oschina.net/u/2496664/blog/801996

上面文章写的很详细,有些步骤由于可能版本更新而有微小的差异。

比如不用选择数据库;注意编辑配置文件的时候不需要改注释内的东西,改注释外的代码即可。下图为完成界面。

image-20201028221900749

三、LDIF文件

关于LDIF文件:

LDIF 完全独立于在所有特定目录中使用的储存格式,LDIF 通常用于从 LDAP 服务器导出目录信息或将数据导入 LDAP 服务器。

demo

dn: dc=Zh1z3ven,dc=com
objectclass: top
dc: Zh1z3ven

dn: ou=People,dc=Zh1z3ven,dc=com
objectclass: organizationalUnit
ou: People

dn: uid=Zh1z3ven,ou=People,dc=Zh1z3ven,dc=com
uid: Zh1z3ven
objectClass: inetOrgPerson
userPassword: 111111
sn: Zh
cn: Zh1z3ven Zh

四、LDAP未授权漏洞

0x01 产生原因

未对LDAP的访问进行密码验证,导致未授权访问。

这一般是大部分LDAP服务出现此漏洞的主要原因,导致可以使用ldapbrowser直接连接,获取目录内容。

0x02 简述

比如我上面搭建好的环境明明是有密码123456的,但是利用ldapbrowser可以直接读取到目录内容而跳过了web端那种密码验证的方式

注意Anonymous bind那里要勾选上,因为默认的LDAP服务都是开启匿名访问的,但是只能进行read和search操作,不可以删除和修改。

image-20201028230120087

image-20201028225928038

如需指定用户则需要在下图红框内指定cn和相应的password

image-20201028230322212

五、修复建议

0)关于如何禁止LDAP匿名访问:

https://www.cnblogs.com/rusking/p/4936341.html

1)修改ldap的acl,不允许匿名访问。

2)根据业务设置ldap访问白名单或黑名单。

posted @ 2020-10-28 23:11  Zh1z3ven  阅读(5332)  评论(0编辑  收藏  举报