一、简介

Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

工具以及附件下载,安装文章:

----
https://blog.csdn.net/qq_38603541/article/details/129244112链接:https://pan.baidu.com/s/1r0t5k4gFmiu12KHbZolKnA?pwd=6666 
提取码:6666 
---------------------
https://blog.csdn.net/weixin_44895005/article/details/123917324
----
https://blog.csdn.net/qq_38603541/article/details/129244112

二、基础操作

系统基本信息(寻找profile)
vol -f mem.vmem imageinfo 
查看进程
vol -f mem.vmem --profile=XXX pslist
进程转储
vol -f mem.vmem --profile=XXX memdump -p 2012 -D ./
-p是PID -D是转储路径
查看用户密码(hash值)
vol -f mem.vmem --profile=XXX hashdump
查看cmd进程
vol -f mem.vmem --profile=XXX cmdscan
查找flag关键词
vol -f mem.vem --profile=XXX filescan | grep flag
查找flag关键词&将文件传储
vol -f mem.vem --profile=XXX dumplfiles -Q 0X00000123456 -D ./
查看windows窗口程序
vol -f mem,img --profile=XXX windows | grep flag -A 10 (-A 10显示十行内容)
从注册表中提取LSA密钥信息
vol -f mem.vmem --profile=XXX lsadump
列出注册表信息
vol -f mem.vmem --profile=XXX hivelist
解析路径,看到主机名(system)
vol -f mem.vmem --profile=xxx -o 0xfaffafafafa printkey
vol -f mem.vmem --profile=xxx -o 0xfaffafafafa printkey -K "ControlSet001\xxx\xxx\SystemName"
查看进程树
vol -f mem.vmem --profile=xxx pstree
查看某个进程的DLL
vol -f mem.vmem --profile=xxx dlllist -p 1234 
查看notepad文本
vol -f test.vmem --profile=xxx notepad
查看有关编辑控件
vol -f test.vmem --profile=xxx editbox
保存基于GDI窗口的伪截屏
vol -f test.vmem --profile=xxx screenshot
查看剪贴板
vol -f test.image --profile=xxx clipboard
查看IE浏览器历史记录
vol -f test.image --profile=xxx iehistory
查看linux_bash命令
python2 vol.py -f dump.mem --profile=LinuxCentos7_3_10_1062x64 linux_bash
分析Linux系统中的进程和进程环境
python2 vol.py -f dump.mem --profile=LinuxCentos7_3_10_1062x64 linux_psaux
查看linux系统的dmesg缓冲区中日志消息
python2 vol.py -f dump.mem --profile=LinuxCentos7_3_10_1062x64 linux_dmesg
检查Linux系统调用表是否被修改过
python2 vol.py -f dump.mem --profile=LinuxCentos7_3_10_1062x64 linux_check_syscall | grep HOOKED
检测和分析内存中的恶意软件特征
python2 vol.py -f MemoryDump.mem --profile=Win10x64_19041 malfind

三、做题

Suspicion

1.系统基本信息(windows版)
vol -f mem.vmem imageinfo

在这里插入图片描述

发现profile为WinXPSP2X86

2.查看进程
vol -f mem.vmem --profile=WinXPSP2x86 pslist

在这里插入图片描述
发现存在TrueCrypt.exe进程,TrueCrypt.exe是一款加密程序,所以猜测Suspicion是加密后的结果

3.进程传储
vol -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D ./ (-p是PID -D是传储路径)

在这里插入图片描述

4.使用**Elcomsoft(Elcomsoft Forensic Disk Decryptor,EFDD)**进行破解。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将解密后的内存文件进行挂载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述### very-ez-dump

查看镜像信息,profile为Win7SP1x64
vol -f mem.raw imageinfo

请添加图片描述

查看cmd执行的命令,发现添加了一个用户mumuzi,密码**(ljmmz)ovo**
vol -f mem.raw --profile=Win7SP1x64 cmdscan

请添加图片描述

查找一下flag关键词,发现flag.zip,转储下来。
vol -f mem.raw --profile=Win7SP1x64 filescan | flag

请添加图片描述

vol -f mem.raw --profile=Win7SP1x64 dumpfiles -Q  #保存到本地进行解压

请添加图片描述

将后缀改为zip并解压,密码(ljmmz)ovo

请添加图片描述

得到flag

flag{ez_di_imp_1t_y0u_like?}

[HDCTF] 你能发现什么蛛丝马迹

查看镜像信息
vol -f mem.img imageinfo

请添加图片描述

搜索有关flag的文件信息并把他转储出来
vol -f mem.img profile=Win2003SP2x86 filescan | grep flag

请添加图片描述

vol -f mem.img profile=Win2003SP2x86 dumpfiles -Q 0x000000000484f900 -D ./

请添加图片描述

改名为flag.png发现是一个二维码。扫码得到一串密文
jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
查看windows的窗口程序
vol -f mem.img profile=Win2003SP2x86 windows | grep flag -A 10

请添加图片描述

提取内容
vol -f mem.img profile=Win2003SP2x86 memdump -p 1992 -D ./

请添加图片描述

利用foremost分离文件
foremost 1992.dmp

请添加图片描述

图片中有key和iv,得知是AES加密,解密得到flag

请添加图片描述

密文:jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
key: Th1s_1s_K3y00000
iv: 1234567890123456

请添加图片描述

Ottoer CTF

General Info

Let’s start easy - whats the PC’s name and IP address?(让我们从简单的开始–电脑的名称和IP地址是什么?)

使用netscan查看IP地址
vol -f otto.vmem --profile=XXX netscan

请添加图片描述

使用hivelist查看注册表。
vol -f otto.vmem --profile=XXX hivelist

请添加图片描述

有system,进行查看。

vol -f otto.vmem --profile=XXX  -o 0xfffff8a000024010 printkey

请添加图片描述

一步步跟进

vol -f otto.vmem --profile=XXX  -o 0xfffff8a000024010 printkey -K "ControlSet001"

请添加图片描述

跟着一直解析,最后看到主机名

在这里插入图片描述

Play Time

Rick just loves to play some good old videogames. can you tell which game is he playing? whats the IP address of the server?(瑞克只是喜欢玩一些好的老式电子游戏,你能告诉他在玩哪个游戏吗? 服务器的IP地址是什么?)

使用netscan 直接看到游戏名与IP

请添加图片描述

Name Game

We know that the account was logged in to a channel called Lunar-3. what is the account name?(我们知道该账户登录了一个名为Lunar-3的频道。什么是账户名称?)

利用strings筛选结果
strings OtterCTF.vmem | grep Lunar-3 -B 3 -A 3  (-B 3显示指定字符串上三行,-A 3显示指定字符串下三行)

请添加图片描述

Name Game 2

From a little research we found that the username of the logged on character is always after this signature: 0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} What’s rick’s character’s name?(通过一点研究,我们发现,登录的字符的用户名总是在这个签名之后。0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} 瑞克的角色叫什么名字?)

LunarMS.exe转储出来
vol -f otto.vmem --profile=XXX  memdump -p 708 -D ./

请添加图片描述

用hexdump 显示字符
hexdump -C otto.vmem | grep "5a 0c 00" -A 3 -B 3

请添加图片描述

Silly Rick

Silly rick always forgets his email's password, so he uses a Stored Password Services online to store his password. He always copy and paste the password so he will not get it wrong. whats rick's email password? Silly rick总是忘记他的电子邮件密码,所以他使用在线存储密码服务来存储他的密码。他总是复制并粘贴密码,这样他就不会弄错了。rick的电子邮件密码是什么?

查看粘贴板
vol.py -f otto.vmem --profile=Win7SP1x64 clipboard

请添加图片描述

Hide And Seek

The reason that we took rick’s PC memory dump is because there was a malware infection. Please find the malware process name (including the extension)(我们提取瑞克的电脑内存转储的原因是有一个恶意软件感染。请找到恶意软件的进程名称(包括扩展名)

查看进程树,发现一个异常进程,PPID比PID还大(在 Linux 上,通常情况下,父进程的进程ID(PPID)会比子进程的进程ID(PID)要小。这是因为在大多数情况下,子进程是由父进程创建的。)
vol.py -f otto.vmem --profile=Win7SP1x64 pstree

请添加图片描述

查看一下这个进程的DLL,发现程序是在temp目录下执行的,那这个应该就是恶意软件进程了。
vol.py -f otto.vmem --profile=Win7SP1x64 dlllist -p 3720

请添加图片描述

Path To Glory

Continue the search after the the way that malware got in.(在恶意软件进入后继续搜索。)

先将所有的chrome进程转储下来
vol.py -f otto.vmem --profile=Win7SP1x64 memdump -n chrome -D ./chromeps
(memdump -n 是一个命令,用于将特定进程的内存转储到文件中。-n 选项允许您指定要转储的进程的名称或PID(进程ID))

请添加图片描述

搜索download.exe.torren

请添加图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐