前言
1、本文所需工具及题目:点击下载
2、所作操作均使用root用户执行
一、安装volatility及相关依赖文件
volatility 是一款内存取证和分析工具,可以对dumpit.exe等工具 dump 出来的内存进行分析,并提取内存中的文件。该工具支持 Windows 和 Linux。
1、将volatility-master.zip文件解压到Kali某目录下,为了避免linux系统权限相关困扰,本文加压路径为/home/root/volatility-master
2、将pac.zip文件中的内容分别复制到/usr/local/lib/python2.7/dist-packages/目录下
3、将题目解压后同样放置于home/root/volatility-master路径下
二、例题
1、memory.raw
1、执行如下命令,查看系统版本信息。重点看系统的版本,最有可能是WindowsXP
python2 vol.py -f memory.raw imageinfo
示例:

2、查看系统运行的进程
python2 vol.py -f memory.raw --profile=WinXPSP2x86 pslist #列出进程
python2 vol.py -f memory.raw --profile=WinXPSP2x86 psscan #列出进程
示例:

3、查看CMD进程,看系统调用了哪些进程
python2 vol.py -f memory.raw --profile=WinXPSP2x86 cmdscan #查看cmd命令历史
python2 vol.py -f memory.raw --profile=WinXPSP2x86 cmdline #查看cmd命令历史
python2 vol.py -f memory.raw --profile=WinXPSP2x86 consoles #查看cmd命令历史
示例:可以看到一些敏感信息

4、查看ie浏览器历史记录,可以找到一些蛛丝马迹
python2 vol.py -f memory.raw --profile=WinXPSP2x86 iehistory
示例:

5、通过关键字查找文件,使用反斜杠进行转义。可以找到关键的文件,及对应的id
python2 vol.py -f memory.raw --profile=WinXPSP2x86 filescan | grep ".txt\|.doc\|.zip\|.png"
示例:有一个.zip文件可疑,待会将其导出

6、文件导出,-Q参数是文件id;-D参数是导出目录
python2 vol.py -f memory.raw --profile=WinXPSP2x86 dumpfiles -Q 0x00000000022352c8 -D /home/kali
示例:

7、进程信息导出,-p参数是进程的PID;-D参数是导出目录
python2 vol.py -f memory.raw --profile=WinXPSP2x86 memdump -p 596 -D /home/kali
示例:

8、其他相关命令
python2 vol.py -f memory.raw --profile=WinXPSP2x86 screenshot --dump-dir=/home/kali #屏幕截图
python2 vol.py -f memory.raw --profile=WinXPSP2x86 userassist #查看进程运行次数
python2 vol.py -f memory.raw --profile=WinXPSP2x86 notepad #查看notepad编辑内容
python2 vol.py -f memory.raw --profile=WinXPSP2x86 clipboard #查看粘贴板内容
python2 vol.py -f memory.raw --profile=WinXPSP2x86 svcscan #查看服务
解题步骤:
1、查看notepad编辑内容,找到key1
2、导出wow.txt文件,找到key2
3、查看cmdscan,找到了key3
4、导出secrect.png文件,使用winhex修改图片高度得到key4
5、导出NTE20Q===.zip文件,爆破出密码为5169得到key5
最终得到flag为flag{7h3_St3g0_1s_5oc00l}
2、Cookie.raw
先介绍一个不讲武德的命令,有些题目不严谨,可以直接查找到flag
strings Cookie.raw | grep "flag{"

当然这种题目也是少数,为了学习知识还是要一步一步做题…
查看操作系统版本
python2 vol.py -f Cookie.raw imageinfo

pslist查看进程,有两个进程非常可疑,执行间隔6分钟,相对而言时间非常长,记下这两个进程的进程号
python2 vol.py -f Cookie.raw --profile=Win7SP1x86_23418 pslist

我们将这两个进程导出
python2 vol.py -f Cookie.raw --profile=Win7SP1x86_23418 memdump -p 2924 -D /home/kali
python2 vol.py -f Cookie.raw --profile=Win7SP1x86_23418 memdump -p 3344 -D /home/kali
使用strings命令查看3344.dmp文件中的cookie字符,发现在给flag赋值
strings 3344.dmp | grep cookie

查看$value变量的值,得到flag
strings 3344.dmp | grep "\$value"

3、forensics.raw
查看操作系统

查看cmdscan,发现了一个假的flag

查看进程,发现关键进程TrueCrypt.exe,其在加密时会把密钥等信息存储在进程内存里

把TrueCrypt进程dump下来

用Wrieshark打开题目附带的pcap.pcapng流量文件,发现大部分是FTP流量,在传送一个名为选中一条FTP-DATA包,右键追踪流,TCP流

显示类型选为原始数据,点击另存为,保存为.zip文件

将导出的压缩包解压,得到一个ImportantFiles加密文件

打开EFDD工具


打开文件选择得到的ImportantFiles加密文件,源密钥选择前面dump下来的TrueCrypt进程文件1904.dmp





发现多了一个盘符

发现一个图片

将这个图片用010打开,末尾发现一串字符

使用base91解码,得到flag{2b620630c95ccda6a960158cd592d87f}

4、disk.img
使用WinHex打开disk.img文件可以看到分区1啥也没有,可能是保留分区;分区3是加密分区,使用了BitLocker加密;分区2是正常分区,点开他

我们发现了BitLocker恢复密钥,右键,点击查看器,Notepad

可以看到标识符和恢复密钥,保存好这个恢复密钥

将disk.img文件拖入DiskGenius工具中,选中,点击恢复文件

解锁BitLocker分区,

选择“恢复密钥”,粘贴刚才在WinHex中找到的恢复密钥,解锁

最终找到flag

4、memory_5
这道题有毒,要在虚拟机下执行
解压后得到两个文件memory.raw和SMB
hashdump获得用户名密码,md5解密获取密码 qweasd!123

在虚拟机中打开TrueCrypt,选择一个盘符,打开题目附带的SMB,输入刚才解密的密码qweasd!123
点击挂载

可以看到挂载了新的盘符,里面有一个疫情通报文件

将其复制到Kali中打开,选中第二长串字符串

新建一个.py的脚本,将那串字符串复制到脚本XXXXX处,前面的0x表示十六进制
from Crypto.Util.number import long_to_bytes
print(long_to_bytes(0xXXXXX))
执行脚本后,得到一大串乱码,唯独这里是一串正常字符

将其base58解密后,得到flag

本文详细介绍了在Kali Linux环境下使用Volatility工具进行内存取证的过程,包括检查系统版本、分析进程、查找敏感信息、导出文件等操作。通过实际案例,如分析memory.raw、Cookie.raw、forensics.raw和disk.img等,揭示了如何从内存dump中提取关键信息,最终找到隐藏的flag。
1209

被折叠的 条评论
为什么被折叠?



