Anoop-Kumar-Sharma/WinTriage
GitHub: Anoop-Kumar-Sharma/WinTriage
这是一个实时 Windows 取证分类工具,通过快速收集并交叉比对多种系统线索,以检测反取证、可疑执行及入侵后活动。
Stars: 0 | Forks: 0
# WinTriage
WinTriage 从在线 Windows 系统中收集并交叉比对取证线索,以揭示反取证、可疑执行和入侵后活动的迹象——仅需数秒,无需人工深挖。
## 功能
WinTriage 对 Windows 取证线索进行协调扫描,并自动标记异常情况:
| 线索 | 检查内容 |
|---|---|
| **BAM 注册表** | 启动后运行的未签名或已删除的可执行文件 |
| **Prefetch** | 重复哈希、只读 `.pf` 文件、无文件存在 |
| **USN 日志** | 通过 `fsutil` 的删除事件、NTFS 事件 ID 501 以及文件时间 |
| **MFT (`$MFT`)** | 未签名的 EXE/DLL、Python/batch/JAR 执行、已删除文件痕迹 |
| **事件日志** | 安全日志已清除(事件 1102) |
| **PCA (Program Compatibility Assistant)** | 来自 `PcaAppLaunchDic.txt` / `PcaGeneralDb` 的未签名或已删除的可执行文件 |
| **DPS 内存转储** | 通过 strings 提取的未签名可执行文件路径 |
| **服务与进程** | 启动后的重启(BAM、DPS、EventLog、DiagTrack 等) |
| **回收站** | 过去 24 小时内的修改 |
| **最近使用的文件** | 未签名的 LNK 目标、最近访问的 Python 脚本 |
| **Unicode 线索** | Prefetch 中的 Unicode 文件名、执行注册表键中的 Unicode 值名称 |
| **USB 设备** | 通过 devicehunt.com 进行 VID/PID 查询 |
| **PC 重置** | 48 小时内的操作系统安装日期 |
## 要求
- Windows 10 / 11(64 位)
- Python 3.10+
- **管理员权限**(访问 BAM、MFT、内存转储和事件日志所必需)
### Python 依赖项
```
pip install requests beautifulsoup4 colorama pywin32 pandas psutil
```
### 自动下载的工具(首次运行时)
WinTriage 会自动将以下工具下载到 `%TEMP%\Sysinternals`:
- [PECmd](https://ericzimmerman.github.io/) — Prefetch 解析器
- [MFTECmd](https://ericzimmerman.github.io/) — MFT 解析器
- [ProcDump](https://learn.microsoft.com/en-us/sysinternals/downloads/procdump) — 内存转储工具
- [Strings](https://learn.microsoft.com/en-us/sysinternals/downloads/strings) — 字符串提取工具
- `bd.exe` — BAM 删除检查器
## 使用方法
从提升的(管理员)命令提示符运行:
```
python wintriage.py
```
输出直接打印到控制台。红色文本表示高置信度异常。黄色表示值得调查的警告。如果某项检查没有输出,则表示未发现可疑情况。
## 输出示例
```
Sysmain restarted 14 minutes ago (10:32:11 14-03-2025)
USN Journal Deleted 2 hours, 4 minutes ago (08:43:02 14-03-2025)
⚠️ No .pf files found.
Executed Unsigned (After Boot Time):
Last Execution Time Path
2025-03-14 10:41:02 C:\Users\User\AppData\Local\Temp\loader.exe
Deleted BAM Entries:
C:\Users\User\Downloads\tool.exe
Unsigned Executables (MFT):
C:\ProgramData\Microsoft\temp\svc.exe
Recycle Bin Modified 3 hours, 12 minutes ago (07:34:55 14-03-2025)
```
## 架构
```
wintriage.py
├── setup_sysinternals_tools() # Download/extract tools on first run
├── System baseline
│ ├── get_system_uptime()
│ ├── get_install_date()
│ └── get_file_time_from_fsutil()
├── Anti-forensics detection
│ ├── check_usn_journal_deletions()
│ └── event_logs_cleared()
├── Execution artifacts
│ ├── bam_detection() # BAM registry (PowerShell)
│ ├── deleted_bam_check() # bd.exe cross-reference
│ ├── parse_prefetch_files() # PECmd + duplicate hash detection
│ ├── parse_pca() # PCA AppLaunch + GeneralDb
│ └── mft() # MFTECmd async signature sweep
├── Memory analysis
│ └── dump_services_and_processes_and_extract_strings()
├── Filesystem & UI artifacts
│ ├── check_prefetch_files_for_read_only()
│ ├── unicode_search()
│ ├── check_recent_files()
│ └── get_latest_modification_time() → Recycle Bin
├── Service/process health
│ ├── check_service_status()
│ └── check_process_status()
└── External
├── get_usb_devices() # devicehunt.com VID/PID lookup
└── regex_dps() # Unsigned paths from DPS dump
```
## 限制
- **仅限在线系统** — WinTriage 不支持离线镜像分析
- **仅限 Windows** — 不支持 macOS 或 Linux
- MFT 解析需要未锁定的 `C:\$MFT`;在活动频繁的系统上结果可能会有所不同
- USB 查询需要互联网访问
- 内存转储可能会被端点安全产品阻止
## 免责声明
WinTriage 旨在供事件响应人员、取证分析师和系统管理员在其获得授权检查的系统上使用。未经明确许可,请勿在系统上使用此工具。作者对误用不承担任何责任。
## 许可证
MIT 许可证。详情请参阅 [LICENSE](LICENSE)。
标签:AI合规, BAM注册表, DAST, HTTPS请求, MFTECmd, MFT分析, PECmd, Prefetch解析, ProcDump, Python安全工具, SecList, SQL, USN日志, Windows 10, Windows 11, Windows取证, 事件日志分析, 入侵后活动, 内存取证, 反取证检测, 取证自动化, 可疑执行检测, 实时取证, 库, 应急响应, 恶意软件分析, 数字取证, 注册表取证, 痕迹分析, 系统审计, 自动化脚本, 逆向工具