shaan3000/medihunt
GitHub: shaan3000/medihunt
专为医疗行业设计的被动式网络流量安全评估工具,可自动识别医疗设备、解析医疗协议并检测患者隐私数据泄露风险。
Stars: 0 | Forks: 0
# MediHunt 🏥🔍
**用于安全评估的医疗设备网络流量分析器**




⚠️ **仅限授权的安全评估。请勿在您不拥有或未获得明确书面测试许可的系统上使用。**
## 为什么选择 MediHunt?
像 Wireshark、Zeek 和 Scapy 这样的工具是协议无关的 —— 它们向您展示数据包,但对医疗协议、PHI 泄露或另一端的医疗设备类型**零感知**。
MediHunt 填补了这一空白。它理解:
- **DICOM** — 医学影像协议 (C-FIND, C-STORE, Association 请求)
- **HL7 v2 / MLLP** — 患者消息传递 (ADT, ORU, ORM, MDM)
- **FHIR REST APIs** — 基于 HTTP 的现代临床 API
- **医疗设备指纹识别** — 从流量模式识别设备类型
目前没有现有的开源工具能在单个、专为渗透测试准备的 CLI 中结合所有这些功能。
## 功能特性
| 模块 | 检测内容 |
|--------|----------------|
| **DICOM Parser** | 未加密的图像传输、未经认证的 C-FIND/C-STORE、PACS 暴露 |
| **HL7 Parser** | 无 TLS 的 MLLP、PID 段中的 PHI、ADT/ORU/ORM/MDM 暴露 |
| **FHIR Parser** | 基于 HTTP 的 FHIR、明文 Bearer token、批量 Bundle 暴露 |
| **Device Fingerprinter** | 通过端口/TTL/UA 识别 PACS、HL7 引擎、DICOM 模态、ICS 设备 |
| **PHI Detector** | 在任何 TCP 流中使用正则扫描 SSN、MRN、DOB、患者姓名、ICD-10 代码 |
| **Network Anomaly** | 接入互联网的医疗设备、临床系统上的 Telnet/FTP、HTTP Basic Auth |
## 安装说明
**要求:** Python 3.8+, pip, root/sudo 权限 (用于实时捕获)
```
git clone https://github.com/shaan3000/medihunt.git
cd medihunt
pip install -r requirements.txt
```
## 快速开始
```
# 分析 PCAP file
python medihunt.py --pcap hospital_network.pcap
# 在 interface 上实时捕获 60 秒(需要 sudo)
sudo python medihunt.py --iface eth0 --duration 60
# 导出 JSON report
python medihunt.py --pcap capture.pcap --output json --out report.json
# Verbose 模式 — 显示所有发现,包括 INFO
python medihunt.py --pcap capture.pcap --verbose
```
## 输出示例
```
__ __ _ _ _ _ _
| \/ | ___ __| (_) | | | |_ _ _ __ | |_
| |\/| |/ _ \/ _` | | | |_| | | | | '_ \| __|
| | | | __/ (_| | | | _ | |_| | | | | |_
|_| |_|\___|\__,_|_| |_| |_|\__,_|_| |_|\__|
Medical Device Network Recon Tool
──────────────────────────────────────────────────────────────────────
MediHunt Scan Report | 2024-11-01 14:23:11
──────────────────────────────────────────────────────────────────────
Summary:
CRITICAL 4
HIGH 3
MEDIUM 2
Discovered Devices (3):
──────────────────────────────────────────────────────────────────────
192.168.10.42 DICOM AE (PACS/Modality) [High]
Ports: 104, 11112
Protocols: TCP, DICOM
192.168.10.55 HL7 Integration Engine [High]
Ports: 2575
Protocols: TCP, HL7
Findings:
──────────────────────────────────────────────────────────────────────
[!!!] [CRITICAL] PHI LEAKAGE
DICOM C-FIND: patient record query in cleartext
A DICOM C-FIND query was detected. PHI directly exposed in query responses.
Peers: 192.168.10.22 -> 192.168.10.42:104
Fix: Restrict C-FIND access. Enable TLS. Log all C-FIND queries.
```
查看 [examples/example_output.json](examples/example_output.json) 获取完整的 JSON 输出。
## 严重性级别
| 级别 | 含义 |
|-------|---------|
| `CRITICAL` | 活跃的 PHI 泄露或直接的患者安全风险 |
| `HIGH` | 未加密的医疗协议流量 |
| `MEDIUM` | 配置错误或策略违规 |
| `LOW` | 信息性问题 |
| `INFO` | 无直接风险的观察 |
## 退出代码
| 代码 | 含义 |
|------|---------|
| `0` | 无 HIGH 或 CRITICAL 发现 |
| `1` | 存在 HIGH 发现 |
| `2` | 存在 CRITICAL 发现 |
适用于 CI/CD 集成或自动化评估流水线。
## 文档
- [使用指南](docs/usage.md) — 详细的 CLI 使用和评估工作流
- [协议参考](docs/protocols.md) — DICOM, HL7, FHIR 技术细节
- [贡献指南](CONTRIBUTING.md) — 如何添加解析器或报告 Bug
- [安全策略](SECURITY.md) — 负责任披露
## 运行测试
```
pip install pytest pytest-cov
pytest tests/ -v --cov=medihunt
```
## 路线图
- [ ] MDAP (医疗设备获取协议) 支持
- [ ] BACnet / Modbus 医疗 ICS 检测
- [ ] DICOM TLS 版本指纹识别
- [ ] HL7 v3 / CDA 文档支持
- [ ] 来自 NVD 的设备 CVE 关联
- [ ] 每项发现的 HIPAA 风险评分
- [ ] Wireshark 解析器插件导出
## 作者
**Shantanu Shastri**
网络安全专业人士 | GE Healthcare
专业领域:医疗设备与物联网安全、硬件安全、渗透测试
## 法律免责声明
MediHunt 是一款**被动**网络分析工具 —— 它不传输任何数据包。它专为授权的渗透测试项目、受控实验室环境中的安全研究,以及具有客户书面授权的医疗安全评估而设计。
在未获得明确书面授权的情况下对系统使用此工具可能违反 HIPAA、《计算机欺诈与滥用法》(CFAA) 以及您所在司法管辖区的同等法律。作者不对滥用行为承担任何责任。
## 许可证
MIT License — 详见 [LICENSE](LICENSE)。
标签:CTF安全工具, DICOM协议分析, FHIR安全, HL7协议分析, ICS安全, PHI泄露检测, Python安全工具, 代码生成, 医疗网络安全, 医疗设备安全, 敏感数据发现, 数据泄露, 文档结构分析, 渗透测试工具, 网络安全, 网络安全审计, 网络安全评估, 被动式扫描, 设备指纹识别, 足迹分析, 逆向工具, 防御绕过, 隐私保护