使用Windows工具进行内存取证(不进行完全内存转储)

内存取证是分析易失性内存以发现恶意活动、恶意软件行为或系统异常的强大技术。一般情况下调查员会转储全部物理内存,并使用Volatility等工具对其进行分析。然而在许多实际场景中,由于系统限制、安全策略或紧迫性等原因,完全转储可能并不可行。

本文将探讨如何在不创建完整内存转储的情况下,使用内置或免费提供的 Windows 工具执行内存取证。

为什么要避免完全内存转储?

  • 时间限制: 转存数GB的内存可能需要些时间。
  • 权限: 您可能没有使用转储工具的管理员权限或许可。
  • 影响: 完全转储可能会降低系统速度或引发警报。
  • 存储: 完整的内存转储可能会占用数GB的空间,传输它们可能会有风险。

轻量级内存取证的目标

  • 识别正在运行的恶意进程
  • 调查可疑的网络连接
  • 分析加载的模块(DLL)
  • 检查注册表是否存在恶意软件
  • 查看命令历史或痕迹

1. 识别可疑进程

工具:tasklist、WMIC、PowerShell

复制代码
tasklist /v
wmic process get ProcessId,Caption,Commandline
Get-Process | Select-Object Name, Id, Path

需要注意:

  • 未知进程名称
  • 从临时文件夹或用户配置文件文件夹运行的可执行文件
  • 被混淆的冗长命令行

2.调查网络连接

工具:Netstat, PowerShell

复制代码
netstat -ano

将可疑 PID 与任务列表输出相匹配。

复制代码
Get-NetTCPConnection | Select-Object LocalAddress, RemoteAddress, State, OwningProcess

检查与未知 IP 或国外 IP 的连接。

3.动态链接库和模块检查

工具: ListDLLs (Sysinternals)

从 Sysinternals 下载:https://learn.microsoft.com/en-us/sysinternals/downloads/listdlls

复制代码
listdlls.exe <PID>

查找从可疑路径加载的动态链接库(如 %APPDATA%、临时文件夹)

4.持久化注册表痕迹

工具:Reg Query, PowerShell

检查 run 和 runonce 键

复制代码
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run

使用 PowerShell 进行更详细的搜索:

复制代码
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"

查找启动异常的可执行文件或脚本的值。

5.回顾历史命令和prefetch文件

历史命令(cmd):

复制代码
doskey /history

Get-History

Prefetch文件:

Prefetch文件存储可执行文件的历史记录和加载时间。

位置:C:\Windows\Prefetch

使用PECmd( Eric Zimmerman )等工具来解析它们。

6.用于单个进程的迷你内存转储

如果无法进行完整的内存转储,则对单个进程进行迷你转储:

工具: ProcDump (Sysinternals)

复制代码
procdump -ma <PID> <output.dmp>

在 WinDbg 或 Visual Studio 等工具中打开该 .dmp

使用 !strings 和 !peb 分析字符串和加载的模块。

7.分析可疑的计划任务

复制代码
schtasks /query /fo LIST /v

查找触发隐藏或脚本有效载荷的任务。

8.使用事件日志追踪进程和脚本

复制代码
Get-WinEvent -LogName "Security" | Where-Object { $_.Id -eq 4688 } | Select TimeCreated, Message

事件 ID 4688 跟踪进程创建(如果在审计策略中启用)

9.检查 WMI 持久性

复制代码
Get-WmiObject -Namespace root\subscription -Class __EventFilter
Get-WmiObject -Namespace root\subscription -Class __EventConsumer

查找通过 WMI 事件触发的恶意脚本或二进制文件。

10.不需要完全内存转储的工具

|--------------------------------------------|------------|
| 工具 | 目的 |
| Sysinternals (Procmon, ListDLLs, Autoruns) | 进程和动态链接库分析 |
| Procdump | 定向进程转储 |
| Netstat | 网络连接 |
| PowerShell | 脚本和深层系统查询 |
| 事件查看器 | 日志分析 |

使用恰当的本地工具,无需完整内存转储也可进行内存取证,而且功能相当强大。结合使用命令行实用程序、PowerShell 和 Sysinternals,调查员也能提取可操作的情报,并对威胁做出快速反应。

作者:paritosh 翻译:Doris 转载请注明。

相关推荐
Abigail_chow19 分钟前
EXCEL如何快速批量给两字姓名中间加空格
windows·microsoft·excel·学习方法·政务
love530love2 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
代码搬运媛3 小时前
“packageManager“: “[email protected]“ 配置如何正确启动项目?
windows·webpack
小道士写程序4 小时前
Qt 5.12 上读取 .xlsx 文件(Windows 平台)
开发语言·windows·qt
异常君9 小时前
Windows 与 Linux 虚拟内存机制对比:设计理念与实现差异
java·linux·windows
搏博11 小时前
将图形可视化工具的 Python 脚本打包为 Windows 应用程序
开发语言·windows·python·matplotlib·数据可视化
电手12 小时前
Win10停更,Win11不好用?现在Mac电脑比Win11电脑更便宜
windows·macos·电脑·mac
拾回程序猿的圈圈∞12 小时前
PyCharm项目和文件运行时使用conda环境的教程
windows·pycharm·conda
波点兔13 小时前
【亲测有效 | Cursor Pro每月500次快速请求扩5倍】(Windows版)Cursor中集成interactive-feedback-mcp
windows·mcp·cursor pro
饮长安千年月15 小时前
JavaSec-SSTI - 模板引擎注入
java·windows·安全·web安全·网络安全·系统安全·安全架构