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

相关推荐
cpsvps_net2 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋3 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cpsvps5 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
网硕互联的小客服8 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
etcix8 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
许泽宇的技术分享9 小时前
Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
windows·自动化·.net
非凡ghost10 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求
mortimer11 小时前
一次与“顽固”外部程序的艰难交锋:subprocess 调用exe踩坑实录
windows·python·ai编程
gameatp13 小时前
从 Windows 到 Linux 服务器的全自动部署教程(免密登录 + 压缩 + 上传 + 启动)
linux·服务器·windows
穷人小水滴13 小时前
在 windows 运行 flatpak 应用 (WSL)
linux·windows·ubuntu