什么是ldap

一、LDAP基础概念

LDAP(轻量目录访问协议) 是一种用于访问和管理分布式目录服务的协议,广泛应用于企业用户认证、资源管理等领域。其核心特点包括:

  • 树形数据结构:数据以条目(Entry)形式组织,每个条目由属性和唯一标识符(DN,Distinguished Name)构成,例如 uid=user1,ou=users,dc=example,dc=com
  • 高效查询:针对读取操作优化,适合静态数据的快速检索,但写入性能较低
  • 协议版本:主流版本为LDAPv3,支持扩展操作和安全性增强

与LDAPS的区别
LDAPS(LDAP over SSL/TLS)是LDAP的加密版本,默认使用端口636,通过SSL/TLS加密传输数据,防止中间人攻击

二、OpenLDAP安装与配置
1. 环境部署(以Ubuntu为例)
# 安装OpenLDAP服务端和客户端工具
sudo apt-get update
sudo apt-get install slapd ldap-utils

# 配置管理员密码和基础DN
sudo dpkg-reconfigure slapd
# 输入管理员密码,设置Base DN如 dc=example,dc=com
2. 编辑配置文件
# 修改slapd.conf(部分系统为olc配置)
vim /etc/ldap/slapd.conf
# 添加以下内容
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
3.生成默认SSHA加密密码 
# 生成默认SSHA加密密码
slappasswd -s "your_password"

# 指定其他加密方式(如SHA、MD5)
slappasswd -h {SHA} -s "admin"  # 输出{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=
4. 添加测试用户
# 创建用户条目文件user.ldif
dn: uid=user1,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
uid: user1
cn: Test User
sn: User
userPassword: {SSHA}加密字符串

# 导入数据
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif

三、LDAP漏洞利用实战

1. 未授权访问漏洞

漏洞原理:未配置访问控制列表(ACL),允许匿名用户读取敏感数据

复现步骤

  1. 使用ldapsearch匿名查询:
ldapsearch -x -H ldap://<target_ip>:389 -b "dc=example,dc=com"

2.通过工具(如LdapAdmin)连接,获取用户列表及密码哈希 

2. LDAP注入攻击

场景:应用程序未对用户输入过滤,构造恶意查询绕过认证。
示例
假设登录过滤条件为 (&(uid=<input>)(userPassword=<password>)),攻击者可注入:

uid=*)(uid=*))%00

绕过密码验证,获取所有用户信息

3. LDAPNightmare漏洞(CVE-2024-49113)

影响:通过恶意CLDAP请求导致域控LSASS服务崩溃,触发系统重启
利用工具
使用公开的PoC脚本发送特制数据包:

# 伪代码示例
send_ldap_request(target_ip, payload="恶意lm_referral值")
四、安全加固方案
1. 启用加密传输
  • 配置LDAPS:生成SSL证书并修改配置:
# 修改slapd.conf启用TLS
TLSCertificateFile /etc/ssl/certs/server.pem
TLSCertificateKeyFile /etc/ssl/private/server.key

强制加密:禁用LDAP明文端口389,仅开放636

2. 访问控制
  • 限制匿名访问
# 在slapd.conf中添加
access to * by anonymous none

基于角色的ACL:仅允许特定用户组修改数据

3. 证书与密钥管理
  • 使用可信CA签发证书,定期轮换密钥。
  • 配置客户端验证服务器证书
4. 漏洞修复与监控
  • 补丁更新:及时修复如CVE-2024-49113等漏洞
  • 日志审计:监控异常查询和连接尝试,例如:
# 使用tcpdump抓取异常流量
tcpdump -i any port 636 -w ldaps_traffic.pcap

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值