内存取证之旅

神器volatility

介绍

说到内存取证,必须要提到volatility

Volatility是开源的Windows,Linux,MaC,Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。

使用

判断镜像信息,获取操作系统类型

1
volatility -f ?.img/raw/... imageinfo

知道操作系统类型后,用--profile指定

1
volatility -f ?.img --profile=...

查看当前显示的notepad文本

1
volatility  -f file.raw --profile=WinXPSP2x86 notepad

查看当前运行的进程

1
volatility  -f file.raw --profile=WinXPSP2x86 psscan/pslist

扫描所有的文件列表(常常结合grep)

1
volatility  -f file.raw --profile=WinXPSP2x86 filescan

根据offset提取出文件

1
volatility  -f file.raw --profile=WinXPSP2x86 dumpfiles -D . -Q 0x.....

扫描 Windows 的服务

1
volatility -f file.raw --profile=WinXPSP2x86 svcscan

查看网络连接

1
volatility -f file.raw --profile=WinXPSP2x86 connscan

查看命令行上的操作

1
volatility -f file.raw --profile=WinXPSP2x86 cmdscan

根据pid dump出相应的进程

1
volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2580 -D 目录

护网杯easy_dump

这个题目当时队友做出倒数第二步的时候剩下8秒,最终排名64名,前60进决赛,有点可惜。其实这题并不难。。估计600M劝退了很多人。
首先我们拿到一个600M的img文件,放到volatility里,首先imageinfoenter description here一般--profile就用第一个,然后,在指定--profile的基础上,pslist一波enter description here看到有一个notepad.exe,把它dump出来enter description herebinwalk一下,发现一堆东西enter description here然后foremost,拿到一些好东西~有两个一样的zip,解压一下看看enter description here发现又有一个img,这个img就不一样了,不能用volatilityenter description here其实这时候strings一波已经能看到里面的很多东西enter description here查到挂载img文件的方法enter description heremount -o loop message.img /mnt挂载一波,然后到/mnt目录下,由于之前strings的时候看到有.开头的文件,这里有意识地用ls -aenter description here可以看到一个hint.txt,一个.Trash-0,分别看一下enter description hereenter description here.Trash-0是一个目录,里面有个文件有可疑的字符串,hint.txt看上去像个点阵,于是尝试画出来,根据点阵画图脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
from PIL import Image

with open('hint.txt','r') as f:
points = f.readlines()

pic=Image.new('RGB',(600,600),'black')
pix=pic.load()

for i in points:
i=i.strip().split(' ')
pix[int(i[0]),int(i[1])]=(255,255,255)

pic.save('out.png','png')

get an imageenter description here扫一波:enter description here提示是维吉尼亚的key,联想到刚刚的那串可疑字符串,拿去解密一下,getflag。enter description here

InCTF 2018 Evil Crypter

题目给了个900多M的raw文件,很有可能就是内存取证了。直接imageinfo看看enter description here然后指定profilepslistenter description herenotepad.exe拿出来看看,发现没什么东西。于是filescan,找一些关键目录enter description hereenter description here可以看到Desktop有一个图片,还有个evilscript.py.py,还有个vip.txt,都拿出来。enter description here然后读一下,发现py文件是个很简单的加密,而vip.txt则是加密后的结果enter description here简单脚本逆出原文enter description here拿了一半的flag,这时候把目光转到图片,直接看看不出什么东西。enter description here拿到steghide,用一半的flag做密码,成功提取出另一半flag。enter description here