使用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 转载请注明。

相关推荐
北京_宏哥1 小时前
🔥PC端自动化测试实战教程-7-pywinauto等待方法大集合 (详细教程)
前端·windows·python
Kakaxiii1 小时前
【2025最新】windows本地部署LightRAG,完成neo4j知识图谱保存
windows
北京_宏哥2 小时前
🔥PC端自动化测试实战教程-6-pywinauto 打印和保存控件菜单树结构之ElementNotFoundError(详细教程)
前端·windows·python
北京_宏哥2 小时前
🔥PC端自动化测试实战教程-5-pywinauto 操作PC端应用程序窗口 - 下篇(详细教程)
前端·windows·python
z日火2 小时前
Windows Server 2019 安装 Docker 完整指南
windows·docker·容器
Ven%4 小时前
如何让老电脑运行快些(极限榨干老电脑硬件)
windows·电脑·cmd
ZHOU_WUYI4 小时前
Windows 系统中安装 Git 并配置 GitHub 账户
windows·git·github
猫头虎4 小时前
最新如何在服务器中解决FFmpeg下载、安装和配置问题教程(Linux|Windows|Mac|Ubuntu)
linux·服务器·windows·ffmpeg·音视频·pip·视频编解码
做测试的小薄11 小时前
Nginx 命令大全:Linux 与 Windows 系统的全面解析
linux·自动化测试·windows·nginx·环境部署
听到微笑15 小时前
使用ZSH美化Windows系统Git Bash
windows·git·bash