从任意文件读取到GetShell
字数 1034 2025-08-25 22:58:20

从任意文件读取到GetShell - 渗透测试教学文档

背景概述

目标系统是一个身份证上传应用,用户通过钓鱼短信引导访问。初步分析发现主要功能是将身份证上传至OSS(对象存储服务),功能较为单一。

信息收集阶段

子域名枚举

使用subDomainsBrute工具进行子域名爆破,发现关键子域名:

  • admin1.example.com - 管理后台入口

管理后台发现

  • 存在测试环境登录页面
  • 成功使用弱密码admin/admin1234登录

漏洞发现与利用

任意文件读取漏洞

在后台图片编辑功能中发现存在任意文件读取漏洞的接口。

关键读取文件路径:

  1. /root/.bash_history - 获取系统操作历史记录
  2. /etc/shadow - 获取系统用户密码哈希(备用方案)
  3. /www/server/panel/data/admin_path.pl - 获取宝塔面板的安全入口路径
  4. /www/server/panel/data/default.db - 宝塔面板的SQLite数据库文件

宝塔面板利用

  1. 通过读取admin_path.pl获取宝塔面板的安全入口
  2. 下载宝塔面板源代码分析
  3. 发现密码以MD5形式存储在SQLite数据库中
  4. 使用Navicat读取数据库文件获取账号密码
  5. 通过cmd5.com等在线服务破解MD5哈希

扩展攻击面建议

SSRF测试

评论中提到的扩展攻击方法:

  • 尝试通过任意文件读取漏洞构造SSRF(服务器端请求伪造)
  • 目标:访问阿里云元数据接口http://169.254.169.254/latest/meta-data/
  • 可能获取AK/SK(Access Key/Secret Key)从而控制OSS服务

技术要点总结

  1. 子域名爆破:使用工具如subDomainsBrute发现隐藏管理界面
  2. 弱密码测试:常见管理后台弱密码组合尝试
  3. 任意文件读取
    • 优先读取历史记录文件了解系统架构
    • 读取关键配置文件获取更多入口点
    • 读取数据库文件获取凭证
  4. 凭证破解
    • 识别哈希类型(本例为MD5)
    • 使用在线破解服务或本地破解工具
  5. 横向扩展
    • 通过SSRF尝试访问云服务元数据
    • 获取云服务凭证扩大控制范围

防御建议

  1. 禁用或限制管理后台的外部访问
  2. 使用强密码策略,避免默认或弱密码
  3. 修复任意文件读取漏洞,限制文件访问路径
  4. 对敏感文件(如数据库、配置文件)设置严格权限
  5. 禁用或限制云服务元数据接口的外部访问
  6. 定期审计系统日志和用户行为
从任意文件读取到GetShell - 渗透测试教学文档 背景概述 目标系统是一个身份证上传应用,用户通过钓鱼短信引导访问。初步分析发现主要功能是将身份证上传至OSS(对象存储服务),功能较为单一。 信息收集阶段 子域名枚举 使用 subDomainsBrute 工具进行子域名爆破,发现关键子域名: admin1.example.com - 管理后台入口 管理后台发现 存在测试环境登录页面 成功使用弱密码 admin/admin1234 登录 漏洞发现与利用 任意文件读取漏洞 在后台图片编辑功能中发现存在任意文件读取漏洞的接口。 关键读取文件路径: /root/.bash_history - 获取系统操作历史记录 /etc/shadow - 获取系统用户密码哈希(备用方案) /www/server/panel/data/admin_path.pl - 获取宝塔面板的安全入口路径 /www/server/panel/data/default.db - 宝塔面板的SQLite数据库文件 宝塔面板利用 通过读取 admin_path.pl 获取宝塔面板的安全入口 下载宝塔面板源代码分析 发现密码以MD5形式存储在SQLite数据库中 使用Navicat读取数据库文件获取账号密码 通过cmd5.com等在线服务破解MD5哈希 扩展攻击面建议 SSRF测试 评论中提到的扩展攻击方法: 尝试通过任意文件读取漏洞构造SSRF(服务器端请求伪造) 目标:访问阿里云元数据接口 http://169.254.169.254/latest/meta-data/ 可能获取AK/SK(Access Key/Secret Key)从而控制OSS服务 技术要点总结 子域名爆破 :使用工具如subDomainsBrute发现隐藏管理界面 弱密码测试 :常见管理后台弱密码组合尝试 任意文件读取 : 优先读取历史记录文件了解系统架构 读取关键配置文件获取更多入口点 读取数据库文件获取凭证 凭证破解 : 识别哈希类型(本例为MD5) 使用在线破解服务或本地破解工具 横向扩展 : 通过SSRF尝试访问云服务元数据 获取云服务凭证扩大控制范围 防御建议 禁用或限制管理后台的外部访问 使用强密码策略,避免默认或弱密码 修复任意文件读取漏洞,限制文件访问路径 对敏感文件(如数据库、配置文件)设置严格权限 禁用或限制云服务元数据接口的外部访问 定期审计系统日志和用户行为