前言
大三老狗本想享受一下大学生活就去考研了--没想到还有学校实验室那边省赛必须打啊--没办法,继续刷点题吧--去年省赛出了一道内存取证,今年应该同样会有一道,所以来简单总结一下吧--
取证分析题目,取证分析 = 取证 + 分析,因此,在做题过程中,核心就是做细致的取证工作,获取充分的信息,以及很重要的逻辑分析、串联、整合、归纳。
常用命令
查看镜像信息:
volatility imageinfo -f xxx.raw
分析在运行的进程(pslist是打印输出此时在运行的进程):
volatility -f mem.vmem --profile=WinXPSP2x86 pslist
volatility -f memory.img –profile=Win2003SP2x86 psscan
简单看一下进程,如果不知道是哪个程序的可以百度一下。根据这个我们就能知道此时哪些软件在内存中运行。
pslist可以用来列出运行的进程。如果Exit所在的一列显示了日期时间,则表明该进程已经结束了。 在图中,我们看到,存在notepad.exe, mspaint.exe,也就是取证对象(出题人)使用过记事本、画图程序。
在查看进程的显示时,注意一下记事本程序notepad.exe, 画画工具mspaint.exe以及DumpIt等使用过的软件,这些就是取证对象的操作,其中很有可能有重要信息。因此在逻辑清晰的一个做题过程中,我们需要对取证对象的操作,分别进行纵向地分析,然后回过头来结合起来进行分析。
Dumpit.exe 一款内存镜像提取工具
TrueCrypt.exe 一款磁盘加密工具
Notepad.exe windows自带的记事本
Mspaint,exe windows自带画图工具
dump内存
把suspicion文件的相关内存dump出来,用Volatility即可完成。将TrueCrypt.exe进程(PID 2012)dump出来,结果文件为2012.dmp
volatility -f mem.vmem memdump -p 2012 --dump-dir ./
看一下剪切板中有没有数据:
volatility -f flag --profile=WinXPSP2x86 clipboard
查一下内存中缓存的文件
volatility -f flag --profile=WinXPSP2x86 filescan
volatility -f memory.img –profile=Win2003SP2x86 filescan|grep flag
过滤一下
volatility -f flag --profile=WinXPSP2x86 filescan | grep rar
得到了flag.rar
使用Volatility中的filescan功能,保存为txt,方便后续查找分析:
volatility filescan -f xxx.raw --profile=WinXPSP2x86 > filescanInfo.txt
查看notepad.exe
如果需要查看Notepad程序编辑的内容,需要使用Volatility的Notepad插件:
volatility notepad -f xxx.raw
查看mspaint.exe
查看内存操作中对画图程序操作的内容,使用插件mspaint。
可以看到mspaint进程pid号,为332,dump下来
volatility -f Advertising_for_Marriage.raw --profile=WinXPSP2x86 memdump -p 332 --dump-dir=./
通过内存取证操作(见后面列举),查找到PNG图片
volatility filescan -f Advertising for Marriage.raw --profile=WinXPSP2x86 | grep "jpg|jpeg|png|tif|gif|bmp"
导出图片:
volatility -f xxx.raw dumpfiles -Q 0x000000000249ae78 -D --dump-dir=./
查看文档
volatility -f xxx.raw --profile=WinXPSP2x86 filescan | grep "doc|docx|rtf"
查看桌面
volatility -f xxx.raw --profile=WinXPSP2x86 filescan | grep "Desktop"
查看命令行输入
volatility -f xxx.raw --profile=WinXPSP2x86 cmdline
查看系统用户名
volatility -f xxx.raw --profile=WinXPSP2x86 printkey -K "SAMDomainsAccountUsersNames"
查看网络连接
volatility -f mem.data --profile=WinXPSP2x86 netscan
查看屏幕截图
mkdir win2003
volatility -f memory.img –profile=Win2003SP2x86 screenshot –dump-dir=./win2003
查看系统里的窗口列表
volatility -f memory.img –profile=Win2003SP2x86 windows
看到 flag.png 是由 explorer.exe 进程里的 Windows 图片查看器打开的。(Windows 用得少不知道这个了- -)
12.那么我们来尝试 dump 一下 explorer.exe 这个进程的内存试试,pid 为 1992。
volatility -f memory.img --profile=Win2003SP2x86 memdump -p 1992 -D ./win2003/
再对 dump 出来的内容恢复文件,可使用binwalk或foremost.
第一个题目
先来看下去年的省赛决赛内存取证题目吧
拿到raw,直接拿到foremost里分离,分离出了好多东西,还有一个带flag的压缩包
首先利用imageinfo命令标识操作系统、Service Pack和硬件体系结构(32位或64位)。imageinfo输出告诉您在使用其他插件时应将参数传递给-profile = PROFILE的建议配置文件。可能有多个建议的配置文件,我们必须小心选择正确的配置文件。
利用filescan列出内存中的文件根据省赛中分离出来的文件,找到明文攻击需要的图片
接着分离文件
得到
接着压缩加ARCHPR明文攻击,但是因为crc校验不同,失败了
[HDCTF2019]你能发现什么蛛丝马迹吗
volatility imageinfo -f 1.img
Win2003SP1x86
查看内存:
volatility -f 1.img --profile=Win2003SP1x86 pslist
没看到啥明显信息
查看一下文件并匹配一下flag
volatility filescan -f 1.img --profile=Win2003SP1x86 | grep flag
发现flag.png,dump出来
扫码得到:
jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
解不出来,怀疑是某种加密,继续看
系统里的窗口列表:
volatility -f 1.img --profile=Win2003SP1x86 windows
看到 flag.png 是由 explorer.exe 进程里的 Windows 图片查看器打开的。
查看内存并把explorer.exe dump:
volatility -f 1.img --profile=Win2003SP1x86 pslist
explorer.exe 这个进程的内存试试,pid 为 1992。
volatility -f 1.img --profile=Win2003SP1x86 memdump -p 1992 -D ./
对dump出的文件使用binwalk foremost
分离出来png
除了之前找到的二维码,还有 key 和 iv
判定是 aes 加密
密文:jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
key: Th1s_1s_K3y00000
iv: 1234567890123456
解密得到flag
最后
因为只是自己拿来当文档使用,所以写的会比较乱--轻喷orz