2023-06-06
内存取证
00
请注意,本文编写于 533 天前,最后修改于 523 天前,其中某些信息可能已经过时。

volatility3学习

Volatility 是一款开源的内存取证软件,支持 Windows、Mac、linux(kali 下等等) 环境下使用。并且分别有 Volatility2 与 Volatility3 两个大版本,依次需要在 py2、py3 的环境下进行使用,也要确保系统中已安装环境,安装 pycrpto 库函数。

2与3的区别

Volatiliy 2 与 Volatiliy 3 之间的区别

Volatility 3从头开始设计为一个库,这意味着组件是独立的,在特定时间运行特定插件所需的所有状态都是自包含的,Volatility3和Volatility2的命令使用以及操作基本相同,但是volatility3中不需要指定profile ,只是插件调用方式改变,特定的操作系统有特定的插件,

下载链接:https://github.com/volatilityfoundation/volatility3.git

用法:python3 vol.py -f /root/windows.raw windows.info

过滤windows命令:

python3 vol.py --help|grep windows

  1. windows.info:显示正在分析的内存样本的OS和内核详细信息
  2. windows.callbacks:列出内核回调和通知例程
  3. windows.cmdline:列出进程命令行参数
  4. windows.dlldump:将进程内存范围DLL转储
  5. windows.dlllist:列出Windows内存映像中已加载的dll模块
  6. windows.driverirp:在Windows内存映像中列出驱动程序的IRP
  7. windows.driverscan:扫描Windows内存映像中存在的驱动程序
  8. windows.filescan:扫描Windows内存映像中存在的文件对象
  9. windows.handles:列出进程打开的句柄
  10. windows.malfind:列出可能包含注入代码的进程内存范围
  11. windows.moddump:转储内核模块
  12. windows.modscan:扫描Windows内存映像中存在的模块
  13. windows.mutantscan:扫描Windows内存映像中存在的互斥锁
  14. windows.pslist:列出Windows内存映像中存在的进程
  15. windows.psscan:扫描Windows内存映像中存在的进程
  16. windows.pstree:列出进程树
  17. windows.procdump:转储处理可执行映像
  18. windows.registry.certificates:列出注册表中存储的证书
  19. windows.registry.hivelist:列出内存映像中存在的注册表配置单元
  20. windows.registry.hivescan:扫描Windows内存映像中存在的注册表配置单元
  21. windows.registry.printkey:在配置单元或特定键值下列出注册表项
  22. windows.registry.userassist:打印用户助手注册表项和信息
  23. windows.ssdt:列出系统调用表
  24. windows.strings:读取字符串命令的输出,并指示每个字符串属于哪个进程
  25. windows.svcscan:扫描Windows服务
  26. windows.symlinkscan:扫描Windows内存映像中存在的链接

一开始可能存在插件不能用的情况 -vv显示详细情况 (可以看的出来是python缺少Crypto这个库)

image.png

由于我的kali版本是2021.3 默认不自带pip3,安装pip3

wget https://bootstrap.pypa.io/get-pip.py | python3

python3 get-pip.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

安装Crypto库

pip3 install Crypto

pip3 install pycrypto

安装完成后,可以正常使用volatility3

volatility3 安装符号表

符号表地址:

将符号表复制到/你放vol的地方/volatility3/symbols 目录下解压到windows目录中

image.png

volatiltiy3 安装插件

下载/vol_pypykatz.py将他放到pypykatz目录下方便我们找

wget https://raw.githubusercontent.com/skelsec/pypykatz-volatility3/master/vol_pypykatz.py

然后

python3 vol.py -f /root/windows.raw -p pypykatz pypykatz

问题1

RuntimeError: Framework interface version 2 is incompatible with required version 1

可以把刚才下载下来的vol_pypykatz.py中的1修改为2,如下图:

image.png

运行如下图则为正常

image.png

问题2

from volatility.framework import interfaces, constants, exceptions, symbols ModuleNotFoundError: No module named 'volatility'

image.png

注意红框中的路径,打开它

vim /usr/lib/python3/dist-packages/pypykatz/commons/readers/volatility3/init.py

并将其中的volatility修改成volatility3

我这里使用vim的尾行模式进行替换 即可使用

:1,11s/volatility/volatility3

image.png 问题3

File "/home/kali/volatility3/volatility3/framework/renderers/init.py", line 199, in init

generator = iter(generator)

TypeError: 'TreeGrid' object is not iterable

将42行到56行的内容注释掉并在下方加一句

return pparser.go_volatility3(self) image.png 运行成功本人自己制作的镜像 image.png 下图为解密hash的结果 image.png

本文作者:LinKinHan

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!