标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-2949] 作者: ecawen 发表于: [2021-10-25]
本文共 [351] 位读者顶过
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后面应该也少点什么,先这样了,回头有空再弄。 |