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

相关推荐
梁萌16 分钟前
Windows系统Jenkins企业级实战
运维·windows·ci/cd·svn·jenkins
不会飞的鲨鱼2 小时前
Windows系统下【Celery任务队列】python使用celery 详解(二)
开发语言·windows·python
扛枪的书生3 小时前
AD 侦查-LLMNR 毒化
windows·渗透·kali·提权·域渗透
时之彼岸Φ5 小时前
Windows:Powershell的使用
windows
七七小报7 小时前
uniapp-商城-51-后台 商家信息(logo处理)
java·服务器·windows·uni-app
霍志杰8 小时前
stable-diffusion windows本地部署
windows·stable diffusion
zm8 小时前
TCP套接字通信核心要点
网络·windows
古月-一个C++方向的小白8 小时前
C++STl——list
c++·windows·list
jiandongg20 小时前
【已解决】WORD域相关问题;错误 未找到引用源;复制域出错;交叉引用域到底是个啥
windows·microsoft·word·引用·参考文献·office·
白开水就盒饭1 天前
Python代码编程基础
windows·python·microsoft