真实环境中的渗透思路
字数 1271 2025-08-15 21:33:08

真实环境渗透测试实战教学:从信息收集到权限提升

1. 前期信息收集

1.1 目标系统扫描

使用nmap进行初步扫描:

nmap -O 目标IP
  • 关键发现:445端口开放(SMB服务),3306端口开放(MySQL服务)
  • 操作系统推测:Windows 7或Windows Server 2012

1.2 服务探测

  1. 永恒之蓝漏洞测试
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set rhost 目标IP
exploit
  • 结果:未成功,说明系统可能已打补丁
  1. MySQL服务测试
mysql -h 目标IP
  • 结果:连接被拒绝,但暴露了服务器名

2. Web应用渗透

2.1 Web指纹识别

使用Wappalyzer插件识别:

  • 框架:ThinkPHP
  • 中间件:Apache 2.4.4

2.2 登录页面测试

  1. 弱口令爆破
  • 发现无验证码机制
  • 密码未加密传输
  • 使用公司员工姓名构建字典进行枚举
  1. ThinkPHP漏洞利用
  • 版本识别:ThinkPHP 3.2.3
  • 尝试利用文件包含漏洞,虽未成功但暴露网站绝对路径

2.3 信息泄露漏洞

利用ThinkPHP 3.2.3的日志文件泄露漏洞:

/Application/Runtime/Logs/Home/19_07_022.log
  • 获取大量历史登录凭证和敏感信息
  • 通过泄露凭证成功登录系统

3. 权限提升

3.1 横向移动

  1. 从项目信息中获取公司内部结构
  2. 从日志中获取更高权限用户凭证
  3. 使用高权限账户登录

3.2 文件上传测试

发现"待处理"模块可上传合同文件:

  • 安全措施分析:
    • 白名单限制:仅允许JPG,PNG,docx,xlsx
    • MIME类型检查
    • 文件内容检查
    • 上传后二次渲染并重命名
  • 可能的攻击向量:
    • Office宏病毒(当工作人员下载查看时可能被控制)

3.3 数据库访问

  1. phpMyAdmin发现
  • 推测使用WAMP环境(默认安装phpMyAdmin)
  • 通过IP段枚举(58网段)成功访问phpMyAdmin界面
  1. 凭证爆破
  • 使用泄露信息组合进行密码枚举
  • 成功获取root权限(密码为小写字母+数字+特殊字符组合)

3.4 写入Webshell

  1. 利用已知绝对路径写入文件:
SELECT '内容' INTO OUTFILE '绝对路径'
  • 绝对路径来源:ThinkPHP报错信息和日志文件
  1. 遇到问题:
  • 初始写入失败,推测存在杀毒软件
  • 使用免杀脚本成功写入并连接

4. 后渗透阶段

  1. 使用MSF payload建立持久连接
  2. 进行内网横向移动和信息收集

5. 关键漏洞总结

  1. 信息泄露
  • ThinkPHP日志文件暴露
  • 绝对路径泄露
  • 敏感凭证泄露
  1. 弱防护措施
  • 无验证码的登录页面
  • 可爆破的密码策略
  • 默认服务暴露(phpMyAdmin)
  1. 配置问题
  • WAMP默认配置
  • phpMyAdmin访问控制不严

6. 防御建议

  1. 日志管理
  • 禁止Web访问日志目录
  • 定期清理或归档日志
  1. 认证加固
  • 实施验证码机制
  • 使用强密码策略
  • 多因素认证
  1. 服务配置
  • 限制phpMyAdmin访问IP
  • 禁用不必要的服务
  1. 文件上传
  • 实施严格的文件类型验证
  • 使用随机文件名和独立存储
  • 扫描上传文件中的恶意内容
  1. 框架安全
  • 及时更新框架版本
  • 禁用调试模式和生产环境中的错误显示

本案例展示了从外部渗透到内部权限提升的完整链条,强调了信息泄露在渗透测试中的关键作用,以及如何利用多个小漏洞串联实现最终目标。

真实环境渗透测试实战教学:从信息收集到权限提升 1. 前期信息收集 1.1 目标系统扫描 使用nmap进行初步扫描: 关键发现:445端口开放(SMB服务),3306端口开放(MySQL服务) 操作系统推测:Windows 7或Windows Server 2012 1.2 服务探测 永恒之蓝漏洞测试 : 结果:未成功,说明系统可能已打补丁 MySQL服务测试 : 结果:连接被拒绝,但暴露了服务器名 2. Web应用渗透 2.1 Web指纹识别 使用Wappalyzer插件识别: 框架:ThinkPHP 中间件:Apache 2.4.4 2.2 登录页面测试 弱口令爆破 : 发现无验证码机制 密码未加密传输 使用公司员工姓名构建字典进行枚举 ThinkPHP漏洞利用 : 版本识别:ThinkPHP 3.2.3 尝试利用文件包含漏洞,虽未成功但暴露网站绝对路径 2.3 信息泄露漏洞 利用ThinkPHP 3.2.3的日志文件泄露漏洞: 获取大量历史登录凭证和敏感信息 通过泄露凭证成功登录系统 3. 权限提升 3.1 横向移动 从项目信息中获取公司内部结构 从日志中获取更高权限用户凭证 使用高权限账户登录 3.2 文件上传测试 发现"待处理"模块可上传合同文件: 安全措施分析: 白名单限制:仅允许JPG,PNG,docx,xlsx MIME类型检查 文件内容检查 上传后二次渲染并重命名 可能的攻击向量: Office宏病毒(当工作人员下载查看时可能被控制) 3.3 数据库访问 phpMyAdmin发现 : 推测使用WAMP环境(默认安装phpMyAdmin) 通过IP段枚举(58网段)成功访问phpMyAdmin界面 凭证爆破 : 使用泄露信息组合进行密码枚举 成功获取root权限(密码为小写字母+数字+特殊字符组合) 3.4 写入Webshell 利用已知绝对路径写入文件: 绝对路径来源:ThinkPHP报错信息和日志文件 遇到问题: 初始写入失败,推测存在杀毒软件 使用免杀脚本成功写入并连接 4. 后渗透阶段 使用MSF payload建立持久连接 进行内网横向移动和信息收集 5. 关键漏洞总结 信息泄露 : ThinkPHP日志文件暴露 绝对路径泄露 敏感凭证泄露 弱防护措施 : 无验证码的登录页面 可爆破的密码策略 默认服务暴露(phpMyAdmin) 配置问题 : WAMP默认配置 phpMyAdmin访问控制不严 6. 防御建议 日志管理 : 禁止Web访问日志目录 定期清理或归档日志 认证加固 : 实施验证码机制 使用强密码策略 多因素认证 服务配置 : 限制phpMyAdmin访问IP 禁用不必要的服务 文件上传 : 实施严格的文件类型验证 使用随机文件名和独立存储 扫描上传文件中的恶意内容 框架安全 : 及时更新框架版本 禁用调试模式和生产环境中的错误显示 本案例展示了从外部渗透到内部权限提升的完整链条,强调了信息泄露在渗透测试中的关键作用,以及如何利用多个小漏洞串联实现最终目标。