Coosef/Windows-Ransomware-Detection-Toolkit
GitHub: Coosef/Windows-Ransomware-Detection-Toolkit
一款跨平台的便携式只读勒索软件检测工具包,通过多层检测引擎和实时诱饵监控帮助用户发现并预警勒索软件威胁。
Stars: 0 | Forks: 0
# Windows 勒索软件检测工具包 🛡️
便携式(通过 USB 运行)、**只读**的勒索软件检测工具
集。只需将 USB 插入计算机并一键即可进行扫描;扫描结果将作为
报告写回 USB。它不会删除、修改或隔离您的任何文件 —
它仅负责**检测和预警**。
## 🚀 快速开始 / Quick Start
1. 将整个文件夹复制到 USB 闪存盘中。
*(将整个文件夹复制到 USB 闪存盘。)*
2. 在目标 Windows 计算机上双击 **`RunScan.bat`** 文件。
*(在目标 Windows 计算机上双击 **`RunScan.bat`**。)*
3. 从菜单中选择一个选项:
```
[1] Quick scan Kullanıcı klasörleri (Masaüstü, Belgeler, İndirilenler...)
[2] Full scan Tüm dahili diskler (yönetici izni ister)
[3] Live monitor Gerçek-zamanlı erken uyarı (canary + ani değişiklik)
[4] Custom path Seçtiğiniz bir klasör/sürücü
[5] Open reports Rapor klasörünü aç
[6] Update Güncel ransomware uzantılarını internetten çeker
[7] Identify ID Ransomware / No More Ransom sitelerini açar
[0] Exit
```
扫描完成后,HTML 报告将自动打开,并保存为 **TXT + JSON + HTML** 格式
存放在 `reports\` 文件夹中(即保留在您的 USB 中)。
### 🐧 Linux / macOS
该工具包同样适用于 Linux 和 macOS — 仅需**一个 Python 3 脚本**
(`ransomware_toolkit.py`)。无需外部包 (pip);几乎所有发行版都自带
`python3`。它使用**相同的 `data/` 文件夹**,这意味着只需更新一次列表,
即可同时更新两个平台。
```
# 连接 USB,进入文件夹,运行:
./run-scan.sh # interaktif menü
# 或直接进行:
python3 ransomware_toolkit.py --mode quick --open-report
python3 ransomware_toolkit.py --mode custom --path /srv/share /mnt/data
python3 ransomware_toolkit.py --mode watch --path /home/me/Documents
python3 ransomware_toolkit.py --mode update
```
首次运行可能需要执行权限:`chmod +x run-scan.sh ransomware_toolkit.py`。
Linux 勒索软件(ESXiArgs、RansomEXX、LockBit-Linux、Royal、Cl0p ESXi 等)
是切实存在的威胁;该工具在 NAS/服务器/ESXi 环境下同样有效。`full` 模式会跳过
`/proc`、`/sys`、`/dev` 等伪文件系统;使用根权限 (`sudo`) 可执行更深入的扫描。
## 🔍 如何检测? / Detection Layers
在一次高效的磁盘遍历中,会对每个文件应用 **5 层**检测:
| # | 检测层 / Layer | 捕获内容 / What it catches |
|---|----------------|-------------------------------|
| 1 | **扩展名匹配** / Extension match | 已知的勒索软件扩展名 (`data/extensions.txt`) — LockBit、Akira、Play、STOP/Djvu、WannaCry 等 |
| 2 | **勒索说明文件名** / Ransom-note name | 诸如 `HOW TO DECRYPT FILES.txt`、`_readme.txt`、`RESTORE-MY-FILES.txt` 的说明文件模式 (`data/ransom-note-names.txt`) |
| 3 | **勒索说明内容** / Note content | 在小型文本文件中检测“your files have been encrypted”、“bitcoin”、“.onion”等短语 (`data/note-keywords.txt`) — 用于**验证**说明文件 |
| 4 | **熵分析** / Entropy | 利用香农熵检测**已加密文件**。排除 `.zip/.jpg/.mp4/.docx` 等天然高熵的文件类型(防止误报) |
| 5 | **批量更改与传播** / Mass-change & spread | 短时间内被批量修改的文件、某个异常扩展名大量出现在同一文件夹中(批量加密/重命名)、相同的勒索说明被散布到多个文件夹中 |
现代勒索软件家族(LockBit 3.0、BlackCat/ALPHV、REvil、Conti 等)经常使用针对受害者的
**随机扩展名**;这些无法通过固定的列表捕获 — 第 4 和第 5 层
(熵 + 行为)正是为了填补这一空白。
### 🐤 实时监控模式
`[3] Live monitor` 会在受监控的文件夹中放置隐藏的**诱饵 文件**,
并使用 `FileSystemWatcher` 对文件夹进行实时监控。在以下三种情况下,它会触发
**即时声音警报**:
- **CANARY TRIPPED** — 如果诱饵文件被修改/删除/重命名
(这几乎肯定是正在发生主动加密的标志),
- **CHANGE BURST** — 如果在几秒钟内发生了大量文件更改,
- **SUSPICIOUS FILE** — 如果出现了带有已知勒索软件扩展名或勒索说明文件名的新
文件。
诱饵文件包含唯一的特征行;当程序退出时(或在下次
启动时),它只会安全地清理**自己**的诱饵 — 绝不会累积残留。
## 🧪 结果 / Verdict
| 结果 | 含义 |
|-------|--------|
| `CLEAN` | 未发现威胁指标 (退出码 0) |
| `SUSPICIOUS - REVIEW NEEDED` | 中等级别发现,需进一步审查 (退出码 1) |
| `RANSOMWARE INDICATORS FOUND` | 高级别威胁指标 (退出码 2) |
退出码使得在自动化/任务计划程序中使用该脚本变得更加容易。
## ⚙️ 高级用法 / Advanced (PowerShell)
`RunScan.bat` 仅为提供双击便利而存在;所有功能都包含在**单个脚本**
`RansomwareToolkit.ps1` 中,并可通过 `-Mode` 直接调用:
```
# 无需菜单直接快速扫描 + 打开报告
.\RansomwareToolkit.ps1 -Mode Quick -OpenReport
# 所有内部磁盘(建议使用管理员 PowerShell)
.\RansomwareToolkit.ps1 -Mode Full
# 扫描特定路径
.\RansomwareToolkit.ps1 -Mode Custom -Path 'D:\Shares','E:\'
# 扫描设置
.\RansomwareToolkit.ps1 -Mode Custom -Path 'D:\' -RecentHours 12 `
-MassChangeThreshold 30 -EntropyThreshold 7.9 -MaxFileSizeMB 100
# 实时监控(自定义文件夹 + 敏感阈值)
.\RansomwareToolkit.ps1 -Mode Watch -Path 'D:\Shares\Finance' -BurstThreshold 15 -BurstWindowSec 5
# 无参数运行时打开交互式菜单(RunScan.bat 就是这么做的)
.\RansomwareToolkit.ps1
```
**主要参数:**
- `-Quick` / `-Full` / `-Path` — 扫描范围
- `-RecentHours` (24) — “过去 X 小时内的批量更改”时间窗口
- `-MassChangeThreshold` (40) — 一个文件夹内多少次新更改会被视为“爆发”
- `-EntropyThreshold` (7.8) — 高于此熵值被视为“极可能已加密”
- `-NoEntropy` — 关闭熵检测层(速度最快)
- `-MaxFileSizeMB` (150) — 超过此大小的文件将跳过熵/内容分析
- `-OutputDir` / `-DataDir` — 报告和 IOC 文件夹位置
## 🔄 更新列表 / Updating the definitions
检测数据未硬编码在程序中,而是作为纯文本文件存放在 `data\` 文件夹中。
### 自动更新 — 菜单 `[6]`
`[6] Update` 选项(或 `-Mode Update`)会从互联网获取**最新的勒索软件
扩展名**。有两种类型的来源(可在 `data/update-sources.txt` 中
定义和编辑):
- **`trusted`** — 您自己的 GitHub 仓库。下载的文件经过验证后替换原文件
(旧版本会备份为 `.bak`)。
- **`community`** — 每周更新的社区列表
([dannyroemhild](https://github.com/dannyroemhild/ransomware-fileext-list),
[thephoton](https://github.com/thephoton/ransomware))。这些文件会经过**严格的过滤**
(仅保留干净的 `.ext` 条目;剔除 `*.crypto*` 等宽泛的匹配模式、与
分卷压缩包冲突的数字扩展名(如 `.007`)以及 `.swp/.lock/.key` 等
正常的文件扩展名),并**合并**到 `data/extensions-auto.txt` 中
(绝不会触碰您人工维护的 `extensions.txt`,也不会删除任何内容)。
### 识别家族与查找解密器 — 菜单 `[7]`
扫描完成后,该工具会将发现的扩展名/说明文件与离线映射表
(`data/families.json`) 进行比对,并在报告中显示**可能的勒索软件家族及免费的解密器
链接**(例如:STOP/Djvu → Emsisoft)。`[7] Identify` 选项
会在浏览器中打开
[ID Ransomware](https://id-ransomware.malwarehunterteam.com/) 和
[No More Ransom – Crypto Sheriff](https://www.nomoreransom.org/crypto-sheriff.php)
页面;您需要**手动**上传文件。
### 手动更新
要手动添加新家族,只需在相应的文件中添加一行:
- `data/extensions.txt` — 勒索软件文件扩展名(`.ext` 或 `*通配符*`)
- `data/ransom-note-names.txt` — 勒索说明文件名模式
- `data/note-keywords.txt` — 勒索说明内容关键词
- `data/families.json` — 扩展名 → 家族 → 解密器映射表
以 `#` 开头的行是注释。
## 🚑 发现高级别威胁时该怎么做? / If indicators are found
1. **立即断开网络/Wi-Fi 连接**(阻止其传播)。
2. **不要**重启计算机,也不要手动删除文件。
3. **不要**支付赎金。
4. 保留 `reports\` 中的报告(作为证据)。
5. 联系您的企业 AV/EDR 或事件响应 (IR) 团队。
6. 从干净的备份中恢复数据。
## 📁 项目结构 / Layout
```
Windows-Ransomware-Detection-Toolkit/
├── RunScan.bat # Windows başlatıcı (çift-tık)
├── RansomwareToolkit.ps1 # Windows motoru: menü + tarama + izleme + güncelleme
├── run-scan.sh # Linux/macOS başlatıcı
├── ransomware_toolkit.py # Linux/macOS motoru (Python 3, aynı özellikler)
├── data/ # Güncellenebilir IOC listeleri (İKİ platform ortak)
│ ├── extensions.txt # küratörlü uzantılar (yüksek güven)
│ ├── extensions-auto.txt # topluluktan çekilen uzantılar (düşük güven)
│ ├── ransom-note-names.txt
│ ├── note-keywords.txt
│ ├── families.json # uzantı → aile → çözücü eşlemesi
│ └── update-sources.txt # güncelleme kaynakları (düzenlenebilir)
├── reports/ # Çıktı raporları (TXT/JSON/HTML) buraya yazılır
├── legacy/ # Eski v1/v2 betikleri (arşiv)
└── README.md
```
**环境要求:**
- **Windows:**内置的 **PowerShell 5.1+**(Windows 7/10/11)或 PowerShell 7。无外部依赖。
- **Linux / macOS:**内置的 **Python 3.6+**。无外部包 (pip),仅使用标准库。
两个版本均使用相同的 `data/` 列表以及相同的多层检测逻辑。
## ⚠️ 免责声明 / Disclaimer
本工具是旨在增强您的网络安全防御态势的**辅助**措施;
不能替代专业的 AV/EDR 解决方案。在任何环境中运行之前,
请确保您已获得适当的授权。该工具是只读的,不会修改您的数据;
但开发者对因使用该工具而产生的任何后果概不负责。
## 📄 许可证 / License
MIT — 详见 [LICENSE](LICENSE)。
标签:AI合规, Libemu, Python, 勒索软件检测, 多模态安全, 威胁情报, 库, 应急响应, 应用安全, 开发者工具, 恶意软件扫描, 无后门