一篇适用于本人电脑的kali机volatility取证教程
作者:互联网
下载地址 https://www.volatilityfoundation.org/26
直接点进去下Linux版本的,然后解压缩包把文件放到usr/sbin文件夹(习惯)
把文件夹和可执行文件都改名为volatility(在root下进行)
配置环境变量
export PATH=/usr/sbin/volatility:$PATH
配置完检查
echo $PATH
有刚才这个路径就成
从配置完成这一刻到做题结束千万不要关闭终端窗口,否则需要重新配置环境变量
查看镜像版本
volatility -f OtterCTF.vmem imageinfo
找密码
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hashdump
如果题目没说什么用户名之类的一般就是第三个的后边那串拿去md5,解密网址 https://md5.cn/#/
解不出来还可以试试
volatility -f OtterCTF.vmem --profile=Win7SP1x64 lsadump
也是找密码的
还有的教程说要先查看注册表
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hivelist
然后找到SYSTEM和SAM和他们的virtual 地址
然后使用这个
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a0016d4010
就是-y加的是SYSTEM的virtual地址,-s加的是SAM的
不过效果一样,没搞懂区别在哪
扫描可疑文件
volatility -f OtterCTF.vmem --profile=Win7SP1x64 filescan | grep Flag
一般可以搜txt这类的,因为flag不知道是大写还是小写,也可以用filescan全看一遍
然后要想弄出来哪个文件就
volatility -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 --dump-dir=./
然后就会volatility那个文件夹里找就行(不要关终端!)
找IP地址
volatility -f OtterCTF.vmem --profile=Win7SP1x64 netscan
像这种出现多次的差不多就是了
找主机名称
先查看注册表,然后找到SYSTEM的virtual地址
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hivelist
再用printkey
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey
然后就得有耐心的一个一个找了
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001"
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control"
这个computername就很有感觉
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName"
又有一个,胜利就在眼前
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
出现了
查看网络连接情况
volatility -f OtterCTF.vmem --profile=Win7SP1x64 netscan
这个可以用于查一些进程使用时的IP地址,比如说这个LunarMS.exe就是个游戏软件,它的IP就是这道题的flag
查找关键字
strings OtterCTF.vmem|grep Lunar-3 -A 3 -B 3
这个例子里的Lunar-3
是关键词,-A后加的是连带着显示后几行,-B是前几行
补充一些strings的命令
点击查看代码
-a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
-f –print-file-name:在显示字符串前先显示文件名
-n –bytes=[number]:找到并且输出所有NUL终止符序列
- :设置显示的最少的字符数,默认是4个字符
-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
-o :类似--radix=o
-T --target= :指定二进制文件格式
-e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :读取中选项
查看进程
volatility -f OtterCTF.vmem --profile=Win7SP1x64 psscan
把pslist可以替换成完成不同的功能
psxview : 可查看一些隐藏进程
pstree : 以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程
看到可疑的或者要找的程序就给它弄出来(根据PID号)
volatility -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 708 -D ./
这里注明一下提取有两种方式
memdump:以dmp格式保存
procdump:直接提取
在volatility文件夹里可以找到
然后可以对这个dmp进行一些foremost,搜关键字之类的操作
这个题目是通过一点研究我们发现登录角色的用户名总是在这个签名之后:0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} rick 的角色名字是什么?
那就可以hexdump一下
hexdump -C 708.dmp |grep "5a 0c 00" -A 3 -B 3
这有一个比较像的
查看剪切板(粘贴板)
volatility -f OtterCTF.vmem --profile=Win7SP1x64 clipboard
查看cmd的历史命令
volatility -f OtterCTF.vmem --profile=Win7SP1x64 cmdscan
查看指令的输入和输出
volatility -f OtterCTF.vmem --profile=Win7SP1x64 consoles
列出所有命令行下运行的程序
这个可以用来看都进行了什么操作,内容比较多
volatility -f OtterCTF.vmem --profile=Win7SP1x64 cmdline
查看编辑本
volatility -f OtterCTF.vmem --profile=Win7SP1x64 editbox
查看notepad
volatility -f OtterCTF.vmem --profile=Win7SP1x64 notepad
查看浏览器历史
volatility -f OtterCTF.vmem --profile=Win7SP1x64 iehistory
获取屏幕截图
volatility -f OtterCTF.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
先写到这里,等再遇见新的再往里加,本篇的例题是OtterCTF这个比赛的题,它有一道题中需要用到procdump直接把可执行文件导出来,然后扔到dnspy或者ida里分析,所以取证很可能只是做题的第一步。
标签:profile,教程,Win7SP1x64,--,kali,vmem,OtterCTF,volatility 来源: https://www.cnblogs.com/fengyuxuan/p/16475553.html