oxsyoe/mem-walker

GitHub: oxsyoe/mem-walker

一款零依赖的单文件 Windows 数字取证与事件响应工具,集成进程、磁盘、注册表分析和熵检测,用于快速发现系统中的可疑痕迹。

Stars: 0 | Forks: 0

# 🔪 mem-walker **Windows 数字取证工具** — 将内存、磁盘、注册表和实时响应整合在一个文件中。 [![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://python.org) [![平台](https://img.shields.io/badge/Platform-Windows%2010%20%7C%2011-lightgrey)](https://microsoft.com/windows) [![许可证](https://img.shields.io/badge/License-Educational%20Use%20Only-red)](LICENSE) ## 📌 什么是 mem-walker? **mem-walker** 是一个**单文件 Python 工具**,用于对 Windows 系统执行取证分析。无需安装。无需依赖。可在事件发生时直接从 USB 闪存盘运行。 ### 它能发现什么: | 痕迹 | 它能检测的内容 | |----------|-----------------| | **进程** | 隐藏进程、可疑的父子关系、被重命名的系统进程 | | **文件** | 位于 Temp/Downloads/AppData 中的可执行文件、小型 dropper(<100KB) | | **注册表** | 持久化机制(Run 键)、DLL 注入点(AppInit_DLLs) | | **字符串** | 任何文件中的密码、API 密钥、URL、IP 地址、电子邮件 | | **熵值** | 加壳/加密/混淆文件(熵值 >7.5) | | **网络** | 活动连接、监听端口 | ### 适用人群: - 🔴 **事件响应人员** — 快速收集证据 - 🦠 **恶意软件分析师** — 检查可疑二进制文件 - 🕵️ **安全研究员** — 调查数字痕迹 - 🛡️ **蓝队** — 主动进行威胁狩猎 ## ⚙️ 工作原理 ### 架构概述 ``` ┌─────────────────────────────────────────────────────────────┐ │ mem-walker.py │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ --full │ │ --scan │ │ --scan-files│ │ │ │ Everything │ │ Processes │ │ Disk │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Windows API / Commands │ │ │ │ • tasklist (process enumeration) │ │ │ │ • wmic (process paths) │ │ │ │ • winreg (registry access) │ │ │ │ • os.walk (file scanning) │ │ │ │ • netstat (network connections) │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Output Generation │ │ │ │ • Console (color-coded) │ │ │ │ • JSON report (machine-readable) │ │ │ │ • CSV timeline (Excel-friendly) │ │ │ │ • HTML visualization (management-ready) │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ### 模块分解 | 模块 | Windows 实现 | 检测逻辑 | |--------|------------------------|-----------------| | **内存取证** | `tasklist` + `wmic` | 标记从 `\Temp\`、`\Downloads\`、`\AppData\` 运行的进程 | | **磁盘取证** | `os.walk()` | 扫描 `C:\Users`、`C:\Windows\Temp`、`C:\ProgramData` 中的 `.exe`、`.dll`、`.ps1` | | **注册表取证** | `winreg` API | 枚举 `HKLM\Run`、`HKCU\Run`,对照系统目录检查路径 | | **字符串提取** | 二进制正则扫描 | 提取 ASCII/Unicode 字符串,匹配密码/URL/电子邮件的模式 | | **熵值分析** | 香农熵 | 计算 `-Σ p(x) × log₂ p(x)` — 标记 >7.5(加壳)或 >7.8(加密) | | **实时响应** | `netstat`、`platform` | 收集系统信息、网络状态,保存为结构化的 JSON | ### 检测规则(哪些内容会被标记) | 可疑指标 | 标记原因 | |----------------------|------------------| | `powershell.exe` 来自 `C:\Users\*\Temp\` | 脚本引擎从临时文件夹运行 | | `svchost.exe` 不在 `System32` 中 | 系统进程被重命名/移动 | | `winword.exe` 生成 `cmd.exe` | 宏执行(网络钓鱼) | | `Downloads\` 中任何 <100KB 的 `.exe` | 小型 dropper/downloader | | 注册表 Run 键指向 `AppData\Local\Temp\` | 从临时文件夹进行持久化 | | 熵值 >7.5 | 已加壳/加密(可能是恶意软件) | | 字符串包含 `password=` 或 `apikey=` | 硬编码的凭证 | ## 📋 使用方法 ### 1️⃣ **以管理员身份运行**(必需) ``` # 右键点击 PowerShell → “以管理员身份运行” cd C:\path\to\mem-walker python mem-walker.py --help ``` ### 2️⃣ **命令** | 命令 | 功能 | 使用时机 | |---------|--------------|-------------| | `--full` | **全面调查** — 运行全部 8 个模块 | 首次响应、完整的系统分析 | | `--scan` | **仅进程扫描** — 列出进程,标记可疑进程 | 快速检查、威胁狩猎 | | `--scan-files` | **仅磁盘扫描** — 查找可疑可执行文件 | 猎取恶意软件 dropper | | `--strings ` | **字符串提取** — 从任何文件中提取可读文本 | 提取配置、密码、标志 | | `--entropy ` | **熵值分析** — 检测加壳/加密内容 | 识别混淆的恶意软件 | | `--output ` | **自定义输出文件夹** | 组织多个案件 | ### 3️⃣ **示例** ``` # 在可疑机器上进行全面调查 python mem-walker.py --full # 将结果保存到外部驱动器以供日后分析 python mem-walker.py --full --output D:\forensics\case_20260115 # 快速进程检查(最快的扫描) python mem-walker.py --scan # 从未知 binary 中提取 strings python mem-walker.py --strings C:\Users\user\Desktop\suspicious.exe # 检查文件是否已加壳/加密 python mem-walker.py --entropy C:\Windows\Temp\installer.exe # 仅扫描磁盘(无进程,无注册表) python mem-walker.py --scan-files ``` ### 4️⃣ **您将看到的内容** **控制台输出:** ``` [*] Forensic Knife v3.0 - Running on Windows 11 ====================================================================== MEMORY FORENSICS - Process Analysis ====================================================================== PID PPID Name -------------------------------------------------- 2136 0 TouchpointAnalyticsClientService.exe 4567 1234 powershell.exe [WARNING] Suspicious file: C:\Users\HP\AppData\Local\Temp\setup.exe ====================================================================== REPORT SUMMARY ====================================================================== Total Findings: 106 Critical: 0 Suspicious: 3 Warning: 103 ====================================================================== [✓] Investigation complete. Output: forensic_export_20260115_143022/ ``` **输出文件:** ``` forensic_export_20260115_143022/ ├── artifacts/ │ ├── system_info.json # OS, hostname, architecture │ ├── processes.json # All running processes │ └── network.txt # netstat -an output ├── forensic_report.json # Complete findings with severity ├── timeline.csv # Event timeline (Excel-friendly) └── timeline.html # Interactive HTML visualization ``` ### 5️⃣ **理解颜色含义** | 颜色 | 含义 | 操作 | |-------|---------|--------| | 🔵 蓝色 | 信息性 — 正常 | 无需操作 | | 🟡 黄色 | 警告 — 需调查 | 检查文件/进程详情 | | 🟣 紫色 | 可疑 — 高置信度 | 立即调查 | | 🔴 红色 | 严重 — 检测到威胁 | 遏制并响应 | ### 6️⃣ **常见工作流** **事件响应(10 分钟分类评估):** ``` python mem-walker.py --full --output C:\cases\incident_$(Get-Date -Format yyyyMMdd) start forensic_export_*/timeline.html ``` **恶意软件分析:** ``` python mem-walker.py --strings malware.exe python mem-walker.py --entropy malware.exe ``` **每周威胁狩猎:** ``` python mem-walker.py --scan python mem-walker.py --scan-files ``` ## ⚠️ 要求 | 要求 | 详情 | |-------------|--------| | **操作系统** | Windows 10 或 11 | | **Python** | 3.8+([python.org](https://python.org)) | | **权限** | **管理员**(右键点击 PowerShell → 以管理员身份运行) | | **磁盘空间** | 工具和报告约需 10 MB | **为什么需要管理员权限:** - 读取所有正在运行的进程(包括系统进程) - 访问 Windows 注册表持久化键 - 扫描受保护的用户目录 - 捕获完整的网络连接数据 ### 无需依赖项 — 纯 Python 标准库。
标签:DAST, JARM, 内存分析, 库, 应急响应, 恶意软件分析, 数字取证, 注册表分析, 端点可见性, 自动化脚本, 逆向工具