本技能聚焦内存取证,即从内存转储中采集、分析并提取痕迹,用于事件响应与恶意软件分析。
一、用途
- 在事件响应或入侵调查中进行内存分析
- 从内存镜像中提取恶意软件痕迹,例如进程、注入代码、网络连接
- 在关机前从在线 Windows/Linux/macOS 系统采集易失性内存
- 使用 Volatility 3 / Rekall 对内存转储进行快速分类(triage)
- 从进程内存中恢复凭据、浏览器会话或已打开文件
二、内存采集 技能列出了各类采集工具与命令:
- Windows:WinPmem(推荐,winpmem_mini_x64.exe memory.raw)、DumpIt(DumpIt.exe)、Belkasoft RAM Capturer(图形界面,原始格式输出)、Magnet RAM Capture(图形界面,原始格式输出)
- Linux:LiME(sudo insmod lime.ko "path=/tmp/memory.lime format=lime")、/dev/mem(受限,需权限:sudo dd if=/dev/mem of=memory.raw bs=1M)、/proc/kcore(ELF 格式:sudo cp /proc/kcore memory.elf)
- macOS:osxpmem(sudo ./osxpmem -o memory.raw)、MacQuisition(商业工具)
- 虚拟机内存:VMware 的 .vmem 文件即原始内存(cp vm.vmem memory.raw);VirtualBox 使用调试控制台(vboxmanage debugvm "VMName" dumpvmcore --filename memory.elf);QEMU(virsh dump <domain> memory.raw --memory-only);Hyper-V 检查点包含内存状态
三、Volatility 3 框架 安装与设置:pip install volatility3;Windows 符号表从指定地址下载;基本用法 vol -f memory.raw <plugin>;指定符号路径 vol -f memory.raw -s /path/to/symbols windows.pslist。
常用插件按类别包括:
- 进程分析:windows.pslist、windows.pstree、windows.psscan(隐藏进程检测)、windows.memmap(进程内存转储)、windows.envars(环境变量)、windows.cmdline(命令行参数)
- 网络分析:windows.netscan、windows.netstat
- DLL 与模块分析:windows.dlllist、windows.ldrmodules(隐藏/注入 DLL)、windows.modules、windows.moddump
- 内存注入检测:windows.malfind、windows.vadinfo、windows.vadyarascan
- 注册表分析:windows.registry.hivelist、windows.registry.printkey、windows.registry.hivescan
- 文件系统痕迹:windows.filescan、windows.dumpfiles、windows.mftscan
- Linux 分析:linux.pslist、linux.pstree、linux.bash、linux.sockstat、linux.lsmod、linux.mount、linux.envars
- macOS 分析:mac.pslist、mac.pstree、mac.netstat、mac.lsmod
四、分析工作流 技能提供两套流程:
- 恶意软件分析工作流:初始进程普查 → 网络连接 → 注入检测(malfind)→ 分析可疑进程(dlllist、handles)→ 转储可疑可执行文件 → 对转储提取字符串 → YARA 扫描
- 事件响应工作流:事件时间线(windows.timeliner)→ 用户活动(cmdline、consoles)→ 持久化机制(注册表 Run 键)→ 服务(svcscan)→ 计划任务(scheduled_tasks)→ 最近文件(filescan 过滤)
五、关键数据结构 给出了 Windows 的 EPROCESS、PEB、VAD(MMVAD)结构定义片段及内存保护标志(PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE、PAGE_EXECUTE_WRITECOPY)。
六、检测模式
- 进程注入迹象:PAGE_EXECUTE_READWRITE 保护、非镜像 VAD 区域出现 MZ 头、分配起始处存在 shellcode 模式
- 常见注入技术:经典 DLL 注入、进程镂空(Process Hollowing)、APC 注入、线程执行劫持
- Rootkit 检测:对比 pslist 与 psscan 发现隐藏进程、windows.callbacks 检查 DKOM、windows.ssdt 检测钩子函数、windows.driverscan 与 windows.driverirp 驱动分析
- 凭据提取:windows.hashdump、windows.lsadump、windows.cachedump、Mimikatz 风格提取
七、YARA 集成 技能给出内存 YARA 规则示例(如检测常见注入 shellcode、检测 Cobalt Strike beacon),并说明扫描全部进程内存、指定进程或内核内存的用法。
八、字符串分析 包括基础字符串提取、Unicode 字符串、从进程转储定向提取、正则模式匹配(URL 与 IP),以及使用 FLOSS 提取混淆字符串。
九、最佳实践与常见问题
- 采集最佳实践:最小化足迹、记录一切(时间、工具、捕获哈希)、立即校验完整性、维护证据链
- 分析最佳实践:先广后深、交叉引用、时间线关联、记录发现、多方法验证
- 常见陷阱:数据易失需及时分析、转储不完整、符号文件不匹配、采集过程中的内存偏移(smear)、部分数据在内存中已加密
该技能面向安全分析人员,覆盖从采集到分析的完整内存取证流程;其中涉及的商业工具(MacQuisition、Belkasoft、Magnet)与具体授权、价格信息暂未提供。