在应急响应过程中,除了上述几个通用的排查项,有时也需要对应响应服务器进行内存的提权,从而分析其中的隐藏进程。
内存的获取
内存的获取方法有如下几种:
- 基于用户模式程序的内存获取;
- 基于内核模式程序的内存获取;
- 基于系统崩溃转储的内存获取;
- 基于操作系统注入的内存获取;
- 基于系统休眠文件的内存获取;
- 基于虚拟化快照的内存获取;
- 基于系统冷启动的内存获取;
- 基于硬件的内存获取。
常用的内存获取
基于内核模式程序的内存获取
- 这种获取方法一般需要借助相关的工具来完成。常用的提权工具有Dumpit、Redline、RAM Capturer、FTK Imager等。图分别为RAM Capture及FTK Imager获取内存的操作界面。
基于系统崩溃转储的内存获取
- 打开【系统属性】对话框,选择【高级选项卡】,单击【启动和故障恢复】中的【设置】按钮,打开【启动和故障恢复】对话框,选择【核心内存转储】并找到转储文件进行获取。如图所示。
基于虚拟化快照的内存获取
- 这种获取方法是通过VMware Workstation、ESXI等虚拟化软件实现。VMware Workstation 在生成快照时会自动生成虚拟化内存文件,使用VMware Workstation生成的虚拟化内存文件如图所示。
内存的分析
对应内存的分析,一般需要借助相应的工具进行,一下简单介绍几个常用工具。
Redline
- 在获取内存文件后,可以使用Redline进行导入分析,其主要收集在主机上运行的有关进程信息、内存中的驱动程序,以及其他数据,如元数据、注册表数据、任务、服务、网络信息和Internet历史记录等,最终生成报告。使用Redline进行内存分析的界面如图所示。
Volatility
- Volatility是一个开源的内存取证工具,可以分析入侵工具痕迹,包括网络连接、进程、服务、驱动模块、DLL、handles、进程注入、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等。这里以一个获取内存镜像为例,介绍Volatility的一般用法。
- 对内存镜像中的网络连接情况进行排查,使用命令【netscan】可以列出内存镜像中的网络连接的情况,如图所示。
查看内存镜像隐藏进程
- 使用【psxview】命令,可查看内存镜像中带有隐藏进程的所以进程列表。使用【psxview】命令排查隐藏进程,发现存在隐藏进程dllhost.exe。
查找隐藏或注入的代码
- 使用【malfind】命令,可查找隐藏或注入的代码、DLL,如图所示。
提取执行的相关命令
- 使用【cmdscan】命令,可提取相关的命令记录,如图所示。
提取进程命令
- 使用【procdump】命令,可提取进程文件。可通过制定进程的PID的值来对特定的进程进行提取,如使用【procdump -p 2476 -D】命令提取进程文件,如图所示。
virustotal平台分析文件
- 可以将文件上传到平台,以此判断是否存在恶意行为。