从RCE到LDAP信息泄漏
字数 1369 2025-08-18 11:38:23
从RCE到LDAP信息泄漏:完整渗透测试教学文档
1. 漏洞发现与初步探测
1.1 目标识别
- 目标:法国企业网站,包含新闻、联系页面和文档下载功能
- 关键发现:AJAX端点存在安全隐患
1.2 AJAX端点分析
- 端点接收2个参数
- 功能:返回HTML格式的最新新闻动态
- 关键漏洞:端点允许使用任何类的任何方法
2. 远程代码执行(RCE)漏洞利用
2.1 初步测试
- 尝试使用
stdClass类和方法:无功能响应 - 关键突破:删除
class参数尝试显示phpinfo()
2.2 利用system函数
- PHP的
system()函数:system(string $command [, int &$return_var]) : string - 参数利用:通过
args参数注入命令 - 效果:获得完整的UNIX命令执行能力
2.3 利用方法
- 构造请求删除
class参数 - 通过
args参数注入system()函数调用 - 执行任意系统命令
3. 系统信息收集
3.1 文件系统访问
- 列举目录内容
- 读取配置文件
- 关键发现:包含20个数据库的登录凭证和LDAP服务器信息
4. LDAP服务器攻击
4.1 LDAP基础知识
- 定义:轻量级目录访问协议(Lightweight Directory Access Protocol)
- 用途:用户目录服务,用于集中认证和授权
- 特点:
- 针对读取、浏览和搜索优化
- 存储描述性、基于属性的信息
- 支持复杂过滤
- 更新操作简单
4.2 LDAP连接工具
- MacOS推荐工具:LDAPSoft(付费)
- 开源替代方案需求(文中未提及具体工具)
- 终端连接问题:当用户字段多时(约40个)操作繁琐
4.3 获取的信息类型
- 姓名(名和姓)
- 个人电子邮件地址
- 出生日期
- 电话号码
- 明文密码(随机数)
- RFID标签(MiFare)信息
- Windows会话启动目录信息
5. 物理安全绕过
5.1 RFID标签利用
- 公司使用RFID标签进行门禁控制
- 攻击方法:
- 购买空白RFID标签
- 编程写入LDAP服务器中的有效信息
- 获得非法物理访问权限
6. 短信警报系统滥用
6.1 发现过程
- 通过配置文件发现SMS发送服务API密钥
- 功能:向全体员工发送安全警报短信
6.2 利用方法
- 构造简单HTTP请求
- 可向全公司人员发送任意短信内容
7. 漏洞影响总结
7.1 数据泄露
- 40,000名现任/前任员工个人信息
- 约20个数据库的完整访问权限
7.2 安全威胁
- 身份信息滥用风险
- 密码重用攻击可能性
- 物理安全系统绕过
- 内部通讯系统滥用
8. 防御建议
8.1 防止RCE
- 禁用危险函数(如system, exec等)
- 实施严格的输入验证
- 使用白名单控制可调用类/方法
8.2 LDAP安全
- 避免存储明文密码
- 实施最小权限原则
- 定期审计LDAP访问日志
8.3 物理安全
- RFID系统实施二次验证
- 定期轮换RFID凭证
- 监控异常门禁活动
8.4 敏感配置
- 配置文件与代码分离
- 实施配置加密
- 严格限制配置文件访问权限
9. 漏洞报告与修复
- 向企业提交详细安全报告
- 企业响应:快速修复漏洞
- 建议:建立持续的安全审计机制
附录:关键命令参考
- PHP代码执行测试:
请求:ajax.php?args=system('id')
- 文件系统枚举:
args=system('ls -la /var/www/')
- 配置文件读取:
args=system('cat /path/to/config.php')
- LDAP信息收集(通过已获取凭证):
args=system('ldapsearch -x -H ldap://server -D "cn=admin,dc=example,dc=com" -w password -b "dc=example,dc=com"')