记录一道volatility内存取证的题目,第一次遇到,现场把环境搞出来,现记录一些操作指令。
一、安装volatility3
1、新建一个kali虚拟机
新建的过程不再赘述。
2、下载volatility3
GitHub - volatilityfoundation/volatility3: Volatility 3.0 development
可以使用Git下载
git clone https://github.com/volatilityfoundation/volatility3.git
也可以点击https://codeload.github.com/volatilityfoundation/volatility3/zip/refs/heads/develop下载后拷贝至虚拟机中。
3、安装依赖环境
cd到volatility3文件夹中
安装依赖环境,考虑加上
-i https://pypi.tuna.tsinghua.edu.cn/simple换为国内源增加下载速度
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
4、安装volatility3
python3 setup.py build
sudo python3 setup.py install
5、测试
测试是否已安装成功
python3 vol.py -h
二、volatility3使用
1、查看系统基本信息
第一次要加sudo,会去下载一些文件,比较久,后面再次执行就不用sudo了,也不会很久
sudo python3 vol.py -f /home/kali/WIN-xxx.raw windows.info
2、常用的命令
可以查看操作文档Creating New Symbol Tables — Volatility 3 2.7.0 documentation
python3 vol.py [plugin] -f [image]
常用插件:
layerwriter:列出内存镜像platform信息
linux.bash:从内存中恢复bash命令历史记录
linux.check_afinfo:验证网络协议的操作功能指针
linux.check_syscall:检查系统调用表中的挂钩
linux.elfs:列出所有进程的所有内存映射ELF文件
linux.lsmod:列出加载的内核模块
linux.lsof:列出所有进程的所有内存映射
linux.malfind:列出可能包含注入代码的进程内存范围
linux.proc:列出所有进程的所有内存映射
linux.pslist:列出linux内存映像中存在的进程
linux.pstree:列出进程树
mac.bash:从内存中恢复bash命令历史记录
mac.check_syscall:检查系统调用表中的挂钩
mac.check_sysctl:检查sysctl处理程序的挂钩
mac.check_trap_table:检查trap表中的挂钩
mac.ifconfig:列出网卡信息
mac.lsmod:列出加载的内核模块
mac.lsof:列出所有进程的所有内存映射
mac.malfind:列出可能包含注入代码的进程内存范围
mac.netstat:列出所有进程的所有网络连接
mac.psaux:恢复程序命令行参数
mac.pslist:列出linux内存映像中存在的进程
mac.pstree:列出进程树
mac.tasks:列出Mac内存映像中存在的进程
windows.info:显示正在分析的内存样本的OS和内核详细信息
windows.callbacks:列出内核回调和通知例程
windows.cmdline:列出进程命令行参数
windows.dlldump:将进程内存范围DLL转储
windows.dlllist:列出Windows内存映像中已加载的dll模块
windows.driverirp:在Windows内存映像中列出驱动程序的IRP
windows.driverscan:扫描Windows内存映像中存在的驱动程序
windows.envars:进程环境变量
windows.filescan:扫描Windows内存映像中存在的文件对象
windows.handles:列出进程打开的句柄
windows.malfind:列出可能包含注入代码的进程内存范围
windows.moddump:转储内核模块
windows.modscan:扫描Windows内存映像中存在的模块
windows.mutantscan:扫描Windows内存映像中存在的互斥锁
windows.pslist:列出Windows内存映像中存在的进程
windows.psscan:扫描Windows内存映像中存在的进程
windows.pstree:列出进程树
windows.procdump:转储处理可执行映像
windows.registry.certificates:列出注册表中存储的证书
windows.registry.hivelist:列出内存映像中存在的注册表配置单元
windows.registry.hivescan:扫描Windows内存映像中存在的注册表配置单元
windows.registry.printkey:在配置单元或特定键值下列出注册表项
windows.registry.userassist:打印用户助手注册表项和信息
windows.ssdt:列出系统调用表
windows.strings:读取字符串命令的输出,并指示每个字符串属于哪个进程
windows.svcscan:扫描Windows服务
windows.symlinkscan:扫描Windows内存映像中存在的链接
3、查看进程命令行参数
具体一些可疑进程的参数指令
python3 vol.py -f /home/kali/WIN-xxx.raw cmdline
4、查看密码
密码为md5加密过的
python3 vol.py -f /home/kali/WIN-xxx.raw windows.hashdump
5、netscan
python3 vol.py -f /home/kali/WIN-xxx.raw windows.netscan
三、volatility2安装
发现volatility3不太好用,试试把volatility2弄出来
1、安装pip2和依赖环境
# 检查python2
python2 --version
# 下载pip2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
# 安装pip2
sudo python2 get-pip.py
# 检查pip2安装情况
pip2
# 安装依赖环境pycryptodome
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
2、安装distorm3
git clone https://github.com/vext01/distorm3.git
cd distorm3
sudo python2 setup.py install
3、安装volatility2
退出distorm3文件夹,下载volatility2
git clone https://github.com/volatilityfoundation/volatility.git
若无法git,则访问GitHub - volatilityfoundation/volatility: An advanced memory forensics framework
下载zip包后 unzip volatility-master.zip
cd volatility-master
sudo python2 setup.py install
安装完成。测试:
四、volatility2使用
volatility2的使用网络上已有很多教程,不再赘述。