MISC之内存取证_Kali环境下使用volatility

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

前言

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
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值