标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-2949]   作者: ecawen 发表于: [2021-10-25]

本文共 [260] 位读者顶过

0x00 volatility介绍
Volatility是一款非常强大的内存取证工具,它是由来自全世界的数百位知名安全专家合作开发的一套工具, 可以用于windows,linux,mac osx,android等系统内存取证。Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。[出自:jiwo.org]

在不同系统下都有不同的软件版本,官网地址:https://www.volatilityfoundation.org/26。

目前已经有一段时间没有更新了,最新一次更新也是在2016年。

支持的内存格式还是很丰富的。

另外不同的版本下,也存在着一定命令上的差异,使用时需注意。

生成内存dump文件的方式
这里只介绍方式,具体的dump抓取操作方式自行研究。

1.VMware虚拟机软件
VM暂停虚拟后就可以看到vmem文件,是可以直接被volatility分析的。


2.使用第三方软件
针对于物理机,可以使用如下工具来抓取内存dump

KnTTools
F-Response
Mandiant Memoryze
HBGary FastDump
MoonSols Windows Memory Toolkit
AccessData FTK Imager
EnCase/WinEn
Belkasoft Live RAM Capturer
ATC-NY Windows Memory Reader
Winpmem
Win32dd/Win64dd
DumpIt
1
2
3
4
5
6
7
8
9
10
11
12
windows下可以使用AccessData FTK Imager来完成。

3.CuckooSandbox
Cuckoo沙箱在分析恶意样本后生成dump文件。

官方地址:https://cuckoo.sh/docs/introduction/index.html

0x01 volatility工具的基本使用
命令格式

volatility -f [image] --profile=[profile] [plugin]
1
在分析之前,需要先判断当前的镜像信息,分析出是哪个操作系统

volatility -f xxx.vmem imageinfo
1
如果操作系统错误,是无法正确读取内存信息的,知道镜像后,就可以在--profile=中带上对应的操作系统

常用插件

下列命令以windows内存文件举例

查看用户名密码信息

volatility -f 1.vmem --profile=Win7SP1x64 hashdump
1
查看进程

volatility -f 1.vmem --profile=Win7SP1x64 pslist
1
查看服务

volatility -f 1.vmem --profile=Win7SP1x64 svcscan
1
查看浏览器历史记录

volatility -f 1.vmem --profile=Win7SP1x64 iehistory
1
查看网络连接

volatility -f 1.vmem --profile=Win7SP1x64 netscan
1
查看命令行操作

volatility -f 1.vmem --profile=Win7SP1x64 cmdscan
1
查看文件

volatility -f 1.vmem --profile=Win7SP1x64 filescan
1
查看文件内容

volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./
1
查看当前展示的notepad内容

volatility -f 1.vmem --profile=Win7SP1x64 notepad
1
提取进程

volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./
1
屏幕截图

volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
1
查看注册表配置单元

volatility -f 1.vmem --profile=Win7SP1x64 hivelist
1
查看注册表键名

volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410
1
查看注册表键值

volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "xxxxxxx"
1
查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等。

volatility -f 1.vmem --profile=Win7SP1x64 userassist
1
最大程序提取信息

volatility -f 1.vmem --profile=Win7SP1x64 timeliner
1
0x02 volatility实例
46届世界技能大赛湖北省选拔赛-数字取证

提供文件如下:worldskills3.vmem,提取码: czjb
任务描述:某日你获取了一个内存文件,请分析文件完成以下任务。
任务(一) 获取admin用户密码是多少 ?
先通过imageinfo获取系统信息

使用hashdump获取sam

可以通过john工具来进行爆破,但是好像跑不出来结果。应该是设定了强密码。于是只能使用了lasdump命令来查看


任务(二) 获ip和主机名是什么?
通过netscan可以查询到地址

主机名需要通过查询注册表,先用hivelist

通过hivedump查询对应键名volatility -f worldskills3.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a000024010 > system.txt;cat system.txt|grep name,这个速度比较慢。

如果知道键名的话,可以直接查询键值


任务(三) 获取桌面上的 flag.txt中的文件内容是什么
先用filescan扫描文件

接着使用dumpfiles爆破文件内容

然后文件内容即可看到结果


任务(四) 服务器中存在一个挖矿病毒 矿池地址是?
查看netscan的内容,惟一一个建立了连接的就是矿池地址


任务(五)恶意代码在系统中注册了服务 服务名是什么?
上一题中已经知道了进程号为2588

查询进程的父进程为3036,通过svcscan可以查询服务名称,找到对应服务名


任务(六) 获取恶意代码的进程名pid。
由上两题可知,2588和3036都是恶意进程的ID,即为svcst.exe和load.exe


任务(七) 病毒在自我删除时执行的命令是什么?(病毒进入系统后会删除原始文件,请获取文件删除时执行的命令)
通过memdump爆出loader.exe的进程对应的内存信息

在内存文件中查寻del关键字

但是感觉差了一点什么,/c前面应该是少了一个cmd.exe,而且del后面应该也少点什么,先这样了,回头有空再弄。

评论

暂无
发表评论
 返回顶部 
热度(260)
 关注微信