内存取证例题

  几道内存取证的题目拿来做一下。

[V&N2020 公开赛]内存取证

  开局给了给了一个raw文件。

  先看一下镜像文件的基本信息。

volatility -f mem.raw imageinfo

  这步一般是为了得到文件的profile。

  直接一点,搜一搜有没有名为flag的文件

volatility -f mem.raw --profile=Win7SP0x86 filescan | grep flag

  看一看当时运行了哪些进程。

volatility -f mem.raw --profile=Win7SP0x86 pslist
0x83c0ad40 TrueCrypt.exe          3364   3188      7      388      1      0 2020-02-18 19:52:44 UTC+0000                                 
0x837f5d40 notepad.exe            3552   1964      2       61      1      0 2020-02-18 19:53:07 UTC+0000                                 
0x82a7e568 iexplore.exe           3640   1964     16      468      1      0 2020-02-18 19:53:29 UTC+0000                                 
0x847c8030 iexplore.exe           3696   3640     25      610      1      0 2020-02-18 19:53:29 UTC+0000                                 
0x848a7030 mspaint.exe            2648   1964     18      383      1      0 2020-02-18 19:54:01 UTC+0000                                 

  发现几个比较关键的应用,notepad是文本编辑器,iexplore是ie浏览器,mspaint是xp系统自带的画板。TrueCrypt是一款免费,开源的支持Windows Vista/XP/2000 and Linux的绿色虚拟加密磁盘工具,可以在硬盘上创建一个或多个虚拟磁盘,所有虚拟磁盘上的文件都被自动加密,需要通过密码来进行访问。 TrueCrypt提供多种加密算法,如AES-256、Blowfish(448-bitkey)、CAST5、Serpent、Triple DES等,其他特性还包括支持FAT32和NTFS分区、隐藏卷标和热键启动。

  先看一下ie浏览器记录。

volatility -f mem.raw --profile=Win7SP0x86 iehistory | grep 'https://'

  比较显眼就是访问了百度网盘,当我访问的时候发现分享的文件已经被取消了,但是在buu上面附件还是给了,一个OVL文件。

  看一下文本编辑器写了些什么。

volatility -f mem.raw --profile=Win7SP0x86 editbox

  还是指向百度网盘,并且有这次有提取码。

  接下来看一下mspaint里面有什么,通过pid把这块的内存dump下来。

volatility -f mem.raw --profile=Win7SP0x86 memdump -p 2648 --dump-dir=./

  将2648.dmp的后缀改成data,然后用gimp打开,通过调整位移、高度、宽度来尝试还原图片。

  先将高度拉到和画板一样高,长度盲猜1440,然后慢慢调位移。

  当发现有字母显示出来了,就别动位移了,慢慢调整宽度。

  截图放到word里面,垂直翻转,识别一下字母。

  但是这个字符串并不是flag。

  接下来就是TrueCrypt这个软件了,现在大概思路就出来了,OVL是用TrueCrypt来加密后的一个磁盘,现在需要对这个磁盘进行解密。

  在解密前先把TrueCrypt像dump mspaint一样把那块内存dump下来。

  解密需要用到一个软件叫Elcomsoft Forensic Disk Decryptor,可以用来破解这个磁盘文件的key值。

  上面选择加密后的磁盘文件,下面选择dump出来的内存。

  点成Unmount,在自己电脑的E盘发现key(其实我电脑本身是没有E盘的,这里是临时分区出这个盘放key值的)

  知道了key值,接下来用VeraCrypt挂载一下。

  发现flag文件,压缩包是加密的。还记得上面搞出来的字符串吗?

  解压出来就看到flag了。

BMZCTF 内存取证三项

  题目内容:

一天下午小白出去吃饭,临走之前还不忘锁了电脑,这时同寝室的小黑想搞点事情,懂点黑客和社工知识的小黑经过多次尝试获得了密码成功进入电脑,于是便悄悄在电脑上动起手脚了,便在桌面上写着什么,想给小白一个惊喜,同时还传送着小白的机密文件,正巧这时小白刚好回来,两人都吓了一跳,小黑也不管自己在电脑上留下的操作急忙离开电脑,故作淡定的说:“我就是随便看看”。
1.小黑写的啥,据说是flag?
2.那么问题来了,小白的密码是啥?
3.小黑发送的机密文件里面到底是什么

  还是给了一个镜像文件,第一步先查看镜像的基本信息。

volatility -f mem.raw imageinfo

  知道profile之后,扫描一下有没有带有flag字样的文件。

  没扫到任何东西,扫一下进程。

0xff5ee020 notepad.exe             280   1416      1       50      0      0 2016-11-14 12:20:27 UTC+0000                                 
0xff5c5020 cmd.exe                1568   1416      1       34      0      0 2016-11-14 12:23:34 UTC+0000                                 

  发现了两个比较可疑的进程,一个是notepad,一个是cmd。

  先看一下笔记本记录了些什么内容。

volatility -f mem.raw Profile=WinXPSP2x86 editbox

  发现了一串16进制的字符串,太熟悉了。

666C61677B57336C6563306D655F376F5F466F72336E356963737D

  666c6167,是flag的16进制的ascii码对应的值。16进制转字符串,出现第一个flag。

flag{W3lec0me_7o_For3n5ics}

  根据题目要求,第二个是要知道小白电脑的开锁密码,获取内存中的系统密码,我们可以使用 hashdump 将它提取出来 。

volatility -f mem.raw –profile=WinXPSP2x86 hashdump
Volatility Foundation Volatility Framework 2.5
Administrator:500:1e27e87bd14ec8af43714428b303e3e4:1e581aafa474dfadfdf83fc31e4fd4ea:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:687255e91a0f559b6d75553dbd51f785:b6125736bdd2d5f154fdce59f52e39f1:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:fb41f8d1334fba131974c39bfab09512:::

  这里1e581aafa474dfadfdf83fc31e4fd4ea其实就是开锁密码的hash之后的密文。

  怎么破解出来的,网上的师傅们都是跑什么彩虹表,我就不研究了。感觉是出题人没考虑好,因为这个密文解不出来,很难受,就硬考字典全?第三问其实也给了提示。

  看一下cmd执行过哪些命令。

volatility -f mem.raw Profile=WinXPSP2x86 cmdscan

  向另一台主机发送了一个压缩包,先找到这个压缩包。

volatility -f mem.raw Profile=WinXPSP2x86 filescan | grep 'P@ss'

  把这个文件dump下来。

volatility -f mem.raw Profile=WinXPSP2x86 dumpfiles -Q 0x0000000002c61318 -D ./

  file之后发现是zip格式的压缩包,被加密,根据上面的hint,密码是生日,那就是8位纯数字的密码,用压缩包爆破工具爆破一下。

  压缩包里面就是flag。


原文地址:https://www.cnblogs.com/bhxdn/p/14807898.html