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