volatility内存取证问题,命令总结,解题思路汇总
volatility 内存取证的简单用法
可以使用kali,windows管理员权限运行.exe程序
一、常用命令格式
命令格式:volatility -f 文件名 --profile=dump的系统版本 命令
volatility -f win7.raw imageinfo ##检测目标系统信息
volatility -f win7.raw --profile=Win7SPIx64 pslist ##查看运行的进程信息
volatility -f /root/桌面/mem.dump imageinfo ##获取dump的版本
volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 filescan ##扫描内存中的文件
volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 hivelist ##列举缓存在内存中的注册表
volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 printkey -K "SAM\Domains\Account\Users\Names" ##查看系统用户名
volatility -f win7.raw --profile=Win7SPIx64 filescan |grep txt ##查看文件列表
volatility -f win7.raw --profile=Win7SPIx64 dumpfile -Q 0x000007 -D dir ##下载感兴趣的文件,#dir你保存的路径
volatility -f win7.raw --profile=Win7SPIx64 hashdump ##提取系统的账号密码
volatility -f win7.raw --profile=Win7SPIx64 netscan |grep ESTABLISHED ##查看网络通信连接
volatility -f win7.raw --profile=Win7SPIx64 cmdscan ##查看cmd历史记录
volatility -f win7.raw --profile=Win7SPIx64 memdump -p 352 -D dir ##导出nc进程传输的文件,352为nc的进程号 dir 为保存的路径
foremost 352.dmp ##分割dmp文件
volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep -E 'jpg|png|jpeg|bmp|gif' ##查找镜像中的文件
volatility -f mem.vmem --profile=WinXPSP2x86 userassist ##查看userassist键值包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等
二、部分问题解题思路:
(一)、浏览器cookie信息中找flag
volatility -f Browser.raw imageinfo
volatility -f Browser.raw --profile=Win7SP1x64 pslist
volatility -f Browser.raw --profile=Win7SP1x64 pslist |find "chrome.exe" ##使用find查找所有谷歌浏览器进程
volatility.exe -f Browser.raw --profile=Win7SP1x64 memdump -p {对应的PID} -D ./ ##把每一个谷歌浏览器进程的数据保存为dmp格式的文件(这里的PID需要自己指定
使用010editer查找flag逐一筛选,在2608.dmp文件中找到flag
(二)、
volatility -f mem.vmem --profile=WinXPSP2x86 volshell 直接获取volshell
volatility -f mem.vmem --profile=WinXPSP2x86 pslist 查看进程:
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names" ##获取SAM表中的用户
volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" ##获取最后登录系统的账户
volatility -f mem.vmem --profile=WinXPSP2x86 userassist ##提取出内存中记录的,当时正在运行的程序有哪些,运行过多少次,最后一次运行的时间等信息
root@kali:~/CTF# mkdir ctfmon
root@kali:~/CTF# volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 1736 -D ctfmon/ 将内存中的某个进程数据以 dmp 的格式保存出来
volatility -f mem.vmem --profile=WinXPSP2x86 iehistory ##获取 IE 浏览器的使用情况
volatility -f easy_dump.img --profile=Win7SP1x64 hashdump timeliner ##获取内存中的系统密码,获取内存中的系统密码,我们可以使用 hashdump 将它提取出来 。
volatility -f mem.vmem –profile=WinXPSP2x86 timeliner ##最大程度上将内存中的信息提取出来,那么你可以使用 timeliner 这个插件。它会从多个位置来收集系统的活动信息
(三)、
拿到题目附件,是一个数据报,很常规,估计就要从里面拿东西出来了。用wireshark打开来看看
导出直接保存下来。一看这些东西什么upload_file.php看名字就知道有鬼,还出奇的大(40MB),里面必然有东西。
打开来看一下(用记事本什么哔哩吧啦的都可以)很明显他把名字都告诉给你了,这个传了一个data.zip的东西,然后看下面的东东 PK很明显是zip文件头,说明这个"php"里把zip文件也给囊括起来了。现在我们只要获取这个zip包就好。
当然,我非常懒,所以在这又推荐神器foremost,一键分离不是梦。(其实还有个骚操作就是直接把给的那个数据报pcap文件给foremost掉,比自己导出对象搞得还清晰hhh)
得到一个zip之后打开看一眼,有一个data.vmem文件,这下事情就好办了,让我们到kali里面去解决这个data.vmem
首先我们要简单来分析一下这个虚拟内存文件是在哪个平台下的,好让我们进行下一步操作
volatility -f data.vmem imageinfo 可以看到是xp平台下的,好的我们又多了一个参数。接来下我们可以看看它运行过什么进程:
volatility -f data.vmem --profile=WinXPSP2x86 pslist (应该用psscan也可以)
让我们来分析这个dmp文件,我们可以看看有什么有意思的关键字,用flag作为东西搜索一下输入命令:strings 1476.dmp | grep -E ‘flag’
可以看到一堆很有趣的flag名字的文件,好像有flag.zip 还有flag.img 不过我猜测这玩意为了增加难度是不会那么容易直接给你搞到zip的。
让我们接下来再看看从哪可以dump下来文件,
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 filescan|grep ‘flag’ 找到flag相关文件(一定要关键字,不然给你爆出来一堆文件)
我们把它dump下来。
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 dumpfiles -Q 0x0000000001155f90 -D ./
然后我们把文件后缀名改成img就可以进一步处理啦~
我们可以直接用binwalk神器解掉它,也可以用UltralISO打开hhh,反正里面有一个usbdata.zip。这个从UltralISO取的话会比较直观。我记得用binwalk的时候出了点小意外,得自己去用010editor修复了一下zip文件才正常hhh
看上去就快搞定了)
现实给了你当头一棒——这玩意要密码才能解密。可是密码在哪?所以我们又得回到data.vmem。看看命令行那边有没什么线索
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 cmdscan
好的我们可以看到还是很良心的 有个passwd:weak_auth_top100