【LDAP】LDAP 未授权访问漏洞修复方案

前言

最近生产环境中,被安全团队扫描到了 LDAP服务存在未授权访问漏洞。这里记录下如何解决。

问题原因

未对LDAP的访问进行密码验证,导致未授权访问。因为默认的LDAP服务都是开启匿名访问的,

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

例如:

ldapsearch -x -b "dc=hadoop,dc=com" -H ldap://10.4.3.3:389| grep test

在这里插入图片描述
这里我们直接就能访问到ldap的资源。

解决方案

  1. 修改 cn=config.ldif 文件
vim /etc/openldap/slapd.d/cn=config.ldif

#插入如下内容:
olcDisallows: bind_anon
olcRequires: authc

【LDAP】LDAP 未授权访问漏洞修复方案_第1张图片

  1. 修改 olcDatabase={-1}frontend.ldif 文件
vim /etc/openldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif

#插入如下内容:
olcRequires: authc

【LDAP】LDAP 未授权访问漏洞修复方案_第2张图片
3. .重启服务

systemctl restart slapd
#查看任务状态
systemctl restart slapd
  1. 验证是否成功
ldapsearch -x -b "dc=hadoop,dc=com" -H ldap://10.4.3.3:389| grep test

此时会报错,additional info: anonymous bind disallowed
在这里插入图片描述

修复成功!

扩展

那么我们该如何访问禁止匿名用户访问的ldap 呢?

答案是使用:-D + -W 参数来进行访问

例如:

ldapsearch -x -D "your_username" -W -b "search_base" "(search_filter)"
  • -D :指定绑定的分发名称(你的用户名)
  • -W:提示输入密码
  • -b :指定搜索基础,“(search_filter)” 指定搜索条件

那么我该怎么正确填写 -D 参数:

举例来说,如果你有一个LDAP用户"John",它的DN可能是类似于 "cn=John,ou=users,dc=example,dc=com"的形式。你需要将这个DN或者类似的用户标识填入到"-D"参数中。

例如:

ldapsearch -x -D "cn=John,ou=users,dc=example,dc=com" -W -b "search_base" "(search_filter)"

你可能感兴趣的:(ldap+kerberos,网络)