内存取证
- 取证文件后缀 .raw、.vmem、.img
- 常用命令(imageinfo,pslist,dumpfiles,memdump)
- 可疑的进程(notepad,cmd)
- 和磁盘取证结合起来考察
- 了解部分操作系统原理
- 常见文件后缀dmg,img
volatility基础命令
可以使用 -h 参数获取使用方法和插件介绍,列举几个常用到的命令
imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
cmdscan:可用于查看终端记录
notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
filescan:扫描所有的文件列表
linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’
dumpfiles:导出某一文件(指定虚拟地址)
需要指定偏移量 -Q 和输出目录 -D
memdump:提取出指定进程,常用foremost 来分离里面的文件
需要指定进程-p [pid] 和输出目录 -D
editbox:显示有关编辑控件(曾经编辑过的内容)的信息
screenshot:保存基于GDI窗口的伪截屏
clipboard:查看剪贴板信息
iehistory:检索IE浏览器历史记录
systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
mftparser:恢复被删除的文件
svcscan:扫描 Windows 的服务
connscan:查看网络连接
envars:查看环境变量
dlllist: 列出某一进程加载的所有dll文件
hivelist: 列出所有的注册表项及其虚拟地址和物理地址
timeliner: 将所有操作系统事件以时间线的方式展开
python vol.py -f easy_dump.img imageinfo
NFO : volatility.debug : Determining profile based on KDBG search...
Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418
AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
AS Layer2 : FileAddressSpace (/home/volatility/easy_dump.img)
PAE type : No PAE
DTB : 0x187000L
KDBG : 0xf8000403f070L
Number of Processors : 1
Image Type (Service Pack) : 0
KPCR for CPU 0 : 0xfffff80004040d00L
KUSER_SHARED_DATA : 0xfffff78000000000L
Image date and time : 2018-09-28 09:02:19 UTC+0000
Image local date and time : 2018-09-28 17:02:19 +0800
python vol.py -f easy_dump.img --profile=Win7SP1x64 pslist
python vol.py -f easy_dump.img --profile=Win7SP1x64 memdump -p 2616 -D ./
但是提取出来的直接用strings是无法查看的需要通过一下命令
strings -e l 2616.dmp | grep flag
继续寻找图片文件
python vol.py -f easy_dump.img --profile=Win7SP1x64 filescan |grep -E 'jpg|gif|png'
提取图片文件
python vol.py -f easy_dump.img --profile=Win7SP1x64 dumpfiles -Q 0x000000002408c460 -D ./
图片提权出来后,利用binwalk测试图片中是否携带zip文件等内容
binwalk file.None.0xfffffa8008355410.vacb
利用binwalk分离文件,也可以用foremost分离,我们选择binwalk分离文件
binwalk -e file.None.0xfffffa8008355410.vacb
明显有一个zip文件和一个img文件,img后缀有可能是一个镜像文件,可以先用file命令查看下,也可以unzip解压下压缩包
经过解压,我们发现,zip文件夹里面就是message.img文件,我们用file查看是linux文件,直接利用mount挂载
可以看到里面有两个文件夹和一个txt,我们先查看下txt文件
269 206
269 207
269 208
269 209
269 210
269 211
269 212
269 213
269 214
269 215
269 216
269 217
269 218
269 219
经过查看,有非常多的数字成对出现,与坐标还是比较类似
尝试将数字转为坐标,使用 gnuplot 画图,发现二维码
扫描后提示一串英文
Here is the vigenere key: aeolus, but i deleted the encrypted message。
这是一个维吉尼亚密码,秘钥是aeolus,有了加密方式,有了秘钥,需要密文。继续查看刚才两个文件夹,寻找密文
寻找到一个.swp文件,如果熟悉它,知道是中断文件,直接恢复
vim -r .message.swp
密文出现
yise!dmsx_tthv_arr_didvi
直接在线解密得到答案