记一次通过供应链拿到目标后台权限的过程
字数 1614 2025-08-25 22:59:09

供应链渗透实战:通过供应商系统获取医院后台权限

授权声明

本文涉及的所有渗透测试操作均获得了客户单位的正式授权,并在漏洞修复后公开。请勿在未授权状态下进行任何形式的渗透测试

目标概况

目标为某医院信息系统,该医院没有独立官网,仅通过微信公众号提供预约挂号、缴费等功能。

信息收集阶段

  1. 初步发现

    • 抓包分析微信公众号请求,发现所有请求指向 a.test.com 域名
    • 调查发现 test.com 属于一家医疗信息系统供应商公司
  2. 子域名枚举

    • 发现多个子域名解析到不同云服务器IP
    • 重点关注子域名:
      • a.test.com:医院系统实际运行地址
      • git.test.com:GitLab代码仓库
      • x.test.com:Oracle数据库服务

初始攻击面分析

  1. 对a.test.com的测试

    • 确认系统基于Spring Boot开发
    • 发现Swagger UI页面但无可利用漏洞
    • 尝试SQL注入、越权测试均未成功
    • 无文件上传接口可利用
  2. 转向供应商主域test.com

    • 官网本身无明显漏洞
    • 重点转向子域名和关联系统

GitLab系统突破

  1. 初始尝试

    • 检查GitLab历史漏洞(版本较高已修复)
    • 常规弱口令爆破失败
  2. 社会工程学利用

    • 加入公司QQ群获取员工信息表格
    • 使用员工姓名+工号组合尝试定向爆破(仍失败)
  3. Google Hacking

    • 发现GitLab上几个公开可访问的仓库
    • 在RabbitMQ安装文档中发现Oracle数据库凭据:
      • 用户名/密码明文存储

数据库层突破

  1. Oracle数据库利用

    • 连接 x.test.com 的Oracle服务(使用泄露凭据)
    • 数据库版本较低且为sysdba权限
    • 直接以system权限执行命令添加用户
    • 获取服务器控制权
  2. MySQL数据库发现

    • 在Oracle服务器上发现MySQL配置文件
    • 获取MySQL凭据后成功登录
    • 获取供应商官网后台账号(但后台功能已废弃)

Web服务器突破

  1. 写入Webshell

    • 尝试获取网站绝对路径(通过错误信息未果)
    • 通过MySQL表名猜测路径(成功猜测 c:\hs_web
    • 写入Webshell并通过蚁剑连接
  2. 权限提升

    • 当前用户权限较低
    • 使用Potato提权工具成功提升权限
    • 添加用户并登录远程桌面

基础设施发现

  1. Nginx配置分析

    • 发现代理规则涉及数十家医院系统
    • 医院微信公众号请求先到供应商服务器,再转发到各医院真实服务器
  2. 源码审计

    • 发现微信公众号后台源码
    • 审计发现后台登录绕过漏洞
    • 可直接登录后台任意修改信息

攻击路径总结

  1. 微信公众号 → 发现供应商域名
  2. GitLab公开仓库 → 获取数据库凭据
  3. Oracle数据库 → 系统权限获取
  4. MySQL数据库 → 官网后台凭据(虽不可用)
  5. 写入Webshell → 服务器控制权
  6. 提权 → 完全控制供应商服务器
  7. 发现Nginx配置 → 了解医院真实架构
  8. 源码审计 → 发现后台漏洞

安全建议

  1. 供应商管理

    • 加强第三方系统访问控制
    • 实施最小权限原则
    • 定期审计供应商系统安全性
  2. 代码管理

    • 禁止在公开仓库存储敏感信息
    • 实施严格的代码审查流程
    • 定期扫描仓库中的敏感信息
  3. 数据库安全

    • 避免使用默认或弱凭据
    • 限制数据库远程访问
    • 定期更新数据库软件
  4. 服务器安全

    • 实施适当的文件系统权限
    • 定期更新操作系统和软件
    • 禁用不必要的服务和端口
  5. 架构设计

    • 避免单点故障设计
    • 实施适当的网络隔离
    • 关键业务系统应有独立基础设施

工具清单

  • 抓包工具:Burp Suite等
  • 信息收集:Google Hacking技巧
  • 数据库连接:Oracle客户端、MySQL客户端
  • Webshell管理:蚁剑
  • 提权工具:Potato
  • 远程访问:RDP客户端

关键知识点

  1. 供应链攻击的威力
  2. 信息泄露在渗透中的重要性
  3. 权限提升技术应用
  4. 架构设计缺陷带来的风险
  5. 从外围系统突破核心系统的思路
供应链渗透实战:通过供应商系统获取医院后台权限 授权声明 本文涉及的所有渗透测试操作均获得了客户单位的正式授权,并在漏洞修复后公开。 请勿在未授权状态下进行任何形式的渗透测试 。 目标概况 目标为某医院信息系统,该医院没有独立官网,仅通过微信公众号提供预约挂号、缴费等功能。 信息收集阶段 初步发现 : 抓包分析微信公众号请求,发现所有请求指向 a.test.com 域名 调查发现 test.com 属于一家医疗信息系统供应商公司 子域名枚举 : 发现多个子域名解析到不同云服务器IP 重点关注子域名: a.test.com :医院系统实际运行地址 git.test.com :GitLab代码仓库 x.test.com :Oracle数据库服务 初始攻击面分析 对a.test.com的测试 : 确认系统基于Spring Boot开发 发现Swagger UI页面但无可利用漏洞 尝试SQL注入、越权测试均未成功 无文件上传接口可利用 转向供应商主域test.com : 官网本身无明显漏洞 重点转向子域名和关联系统 GitLab系统突破 初始尝试 : 检查GitLab历史漏洞(版本较高已修复) 常规弱口令爆破失败 社会工程学利用 : 加入公司QQ群获取员工信息表格 使用员工姓名+工号组合尝试定向爆破(仍失败) Google Hacking : 发现GitLab上几个公开可访问的仓库 在RabbitMQ安装文档中发现Oracle数据库凭据: 用户名/密码明文存储 数据库层突破 Oracle数据库利用 : 连接 x.test.com 的Oracle服务(使用泄露凭据) 数据库版本较低且为sysdba权限 直接以system权限执行命令添加用户 获取服务器控制权 MySQL数据库发现 : 在Oracle服务器上发现MySQL配置文件 获取MySQL凭据后成功登录 获取供应商官网后台账号(但后台功能已废弃) Web服务器突破 写入Webshell : 尝试获取网站绝对路径(通过错误信息未果) 通过MySQL表名猜测路径(成功猜测 c:\hs_web ) 写入Webshell并通过蚁剑连接 权限提升 : 当前用户权限较低 使用Potato提权工具成功提升权限 添加用户并登录远程桌面 基础设施发现 Nginx配置分析 : 发现代理规则涉及数十家医院系统 医院微信公众号请求先到供应商服务器,再转发到各医院真实服务器 源码审计 : 发现微信公众号后台源码 审计发现后台登录绕过漏洞 可直接登录后台任意修改信息 攻击路径总结 微信公众号 → 发现供应商域名 GitLab公开仓库 → 获取数据库凭据 Oracle数据库 → 系统权限获取 MySQL数据库 → 官网后台凭据(虽不可用) 写入Webshell → 服务器控制权 提权 → 完全控制供应商服务器 发现Nginx配置 → 了解医院真实架构 源码审计 → 发现后台漏洞 安全建议 供应商管理 : 加强第三方系统访问控制 实施最小权限原则 定期审计供应商系统安全性 代码管理 : 禁止在公开仓库存储敏感信息 实施严格的代码审查流程 定期扫描仓库中的敏感信息 数据库安全 : 避免使用默认或弱凭据 限制数据库远程访问 定期更新数据库软件 服务器安全 : 实施适当的文件系统权限 定期更新操作系统和软件 禁用不必要的服务和端口 架构设计 : 避免单点故障设计 实施适当的网络隔离 关键业务系统应有独立基础设施 工具清单 抓包工具:Burp Suite等 信息收集:Google Hacking技巧 数据库连接:Oracle客户端、MySQL客户端 Webshell管理:蚁剑 提权工具:Potato 远程访问:RDP客户端 关键知识点 供应链攻击的威力 信息泄露在渗透中的重要性 权限提升技术应用 架构设计缺陷带来的风险 从外围系统突破核心系统的思路