从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 利用方法

  1. 构造请求删除class参数
  2. 通过args参数注入system()函数调用
  3. 执行任意系统命令

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标签进行门禁控制
  • 攻击方法:
    1. 购买空白RFID标签
    2. 编程写入LDAP服务器中的有效信息
    3. 获得非法物理访问权限

6. 短信警报系统滥用

6.1 发现过程

  • 通过配置文件发现SMS发送服务API密钥
  • 功能:向全体员工发送安全警报短信

6.2 利用方法

  • 构造简单HTTP请求
  • 可向全公司人员发送任意短信内容

7. 漏洞影响总结

7.1 数据泄露

  • 40,000名现任/前任员工个人信息
  • 约20个数据库的完整访问权限

7.2 安全威胁

  1. 身份信息滥用风险
  2. 密码重用攻击可能性
  3. 物理安全系统绕过
  4. 内部通讯系统滥用

8. 防御建议

8.1 防止RCE

  • 禁用危险函数(如system, exec等)
  • 实施严格的输入验证
  • 使用白名单控制可调用类/方法

8.2 LDAP安全

  • 避免存储明文密码
  • 实施最小权限原则
  • 定期审计LDAP访问日志

8.3 物理安全

  • RFID系统实施二次验证
  • 定期轮换RFID凭证
  • 监控异常门禁活动

8.4 敏感配置

  • 配置文件与代码分离
  • 实施配置加密
  • 严格限制配置文件访问权限

9. 漏洞报告与修复

  • 向企业提交详细安全报告
  • 企业响应:快速修复漏洞
  • 建议:建立持续的安全审计机制

附录:关键命令参考

  1. PHP代码执行测试:
请求:ajax.php?args=system('id')
  1. 文件系统枚举:
args=system('ls -la /var/www/')
  1. 配置文件读取:
args=system('cat /path/to/config.php')
  1. LDAP信息收集(通过已获取凭证):
args=system('ldapsearch -x -H ldap://server -D "cn=admin,dc=example,dc=com" -w password -b "dc=example,dc=com"')
从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代码执行测试: 文件系统枚举: 配置文件读取: LDAP信息收集(通过已获取凭证):