一篇适用于本人电脑的kali机volatility取证教程

2022/7/13 23:27:17

本文主要是介绍一篇适用于本人电脑的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
image

找密码

volatility -f OtterCTF.vmem --profile=Win7SP1x64 hashdump
image
如果题目没说什么用户名之类的一般就是第三个的后边那串拿去md5,解密网址 https://md5.cn/#/
解不出来还可以试试
volatility -f OtterCTF.vmem --profile=Win7SP1x64 lsadump
也是找密码的
image
还有的教程说要先查看注册表
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hivelist
image
然后找到SYSTEM和SAM和他们的virtual 地址
image
然后使用这个
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a0016d4010
就是-y加的是SYSTEM的virtual地址,-s加的是SAM的
image
不过效果一样,没搞懂区别在哪

扫描可疑文件

volatility -f OtterCTF.vmem --profile=Win7SP1x64 filescan | grep Flag
一般可以搜txt这类的,因为flag不知道是大写还是小写,也可以用filescan全看一遍
image
然后要想弄出来哪个文件就
volatility -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 --dump-dir=./
image
然后就会volatility那个文件夹里找就行(不要关终端!)

找IP地址

volatility -f OtterCTF.vmem --profile=Win7SP1x64 netscan
image
像这种出现多次的差不多就是了

找主机名称

先查看注册表,然后找到SYSTEM的virtual地址
volatility -f OtterCTF.vmem --profile=Win7SP1x64 hivelist
再用printkey
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey
image
然后就得有耐心的一个一个找了
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001"
image
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control"
image
这个computername就很有感觉
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName"
image
又有一个,胜利就在眼前
volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
image
出现了

查看网络连接情况

volatility -f OtterCTF.vmem --profile=Win7SP1x64 netscan
image
这个可以用于查一些进程使用时的IP地址,比如说这个LunarMS.exe就是个游戏软件,它的IP就是这道题的flag

查找关键字

strings OtterCTF.vmem|grep Lunar-3 -A 3 -B 3
这个例子里的Lunar-3是关键词,-A后加的是连带着显示后几行,-B是前几行
image
补充一些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 : 以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程

image
看到可疑的或者要找的程序就给它弄出来(根据PID号)
volatility -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 708 -D ./
image
这里注明一下提取有两种方式

memdump:以dmp格式保存
procdump:直接提取

在volatility文件夹里可以找到
image
然后可以对这个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
这有一个比较像的
image

查看剪切板(粘贴板)

volatility -f OtterCTF.vmem --profile=Win7SP1x64 clipboard
image

查看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
image

获取屏幕截图

volatility -f OtterCTF.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
image

先写到这里,等再遇见新的再往里加,本篇的例题是OtterCTF这个比赛的题,它有一道题中需要用到procdump直接把可执行文件导出来,然后扔到dnspy或者ida里分析,所以取证很可能只是做题的第一步。



这篇关于一篇适用于本人电脑的kali机volatility取证教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程