Volatility3学习笔记
2. 系统基本信息(windows.info)
根据上图可以看出以下信息:
2.1 内存镜像制作时间为(SystemTime): 2021年5月23日,注意这是UTC时间需要加8才是中国时区。
2.2 NTBuildLab第一个数字7601,根据Windows版本号查询得知该系统为Windows 7, Service Pack 1。
2.3 Is64Bit True 表示这是一个64位系统,结合上述版本号可知其系统为:Win7SP1 64位。
4.2 Wow64是用于在64位系统上运行32位应用程序的子系统。
如果值为False表示该进程是一个原生的64位应用程序,否则为32位应用程序。
4.3 Windows中4号进程固定为System,它是Windows页面内存管理进程。
其创建时间基本等于系统开机时间。
4.4 进程名称,句柄数,线程数这些是很多比赛中会经常考到的值。
动态库列表可以从内存中搜索所有进程加载的动态库列表,有一些关键字段分别是所属进程PID,进程名称,动态库路径。
需要注意可执行文件自身也会当作动态库显示出来。
当需要从内存中导出指定进程的可执行文件时,可以采用--dump参数,比如
pythonvolatility3\vol.py -f Spring-PC_memory.raw windows.dlllist --pid 2176 --dump
Tips:dlllist输出大量信息很难做查找工作,此时可以用重定向将结果输出到文件。
pythonvolatility3\vol.py -f Spring-PC_memory.raw windows.dlllist > dllresult.txt
6. 账户信息(windows.hashdump)
只有很少的几个字段,主要是用户名,rid和nthash
7. 注册表数据(windows.registry.hivelist)
上面结果只能看看,加--dump参数把注册表文件导出来才有实际价值。
将导出的SAM,SYSTEM,SOFTWARE,SECURITY等文件放在Windows/System32/config文件夹下,加载火眼证据分析,就可以获得更为完整的用户数据:
8. 网络连接状态(windows.netscan.NetScan)
9. 服务运行状态(windows.svcscan)
10. 进程环境变量(windows.envars)
11. 进程缓存的文件(windows.dumpfiles)
该命令默认将内存中全部缓存文件dump到本地目录,所以使用改命令时务必添加--pid参数,导出来的大部分都是dll。
常见恶意文件分析思路:
1. 使用windows.pstree找到其pid;
2. 根据pid使用windows.netscan.NetScan查找端口监听情况;
3. 根据pid使用windows.cmdline.CmdLine获得启动参数;
4. 根据pid使用windows.handles获得打开句柄(通常包含注册表和文件);
5. 根据pid使用windows.dlllist 导出exe和相关dll到本地做逆向分析;