volatility下载地址
工具介绍
- volatility是一款计算机取证工具,volatility常用于以下镜像文件的取证:raw、vmen、dmp、img。计算机取证在CTF中属于misc杂项。
工具的使用
Mimikatz+procdump绕免杀获取windwos主机密码
- procdump64.exe -accepteula -ma lsass.exe lsass.dmp
- 使用微软白名单工具procdump64,对进程lsass.exe进行保存,保存为lsass.dmp
- 将lsass.dmp移动到本地,使用mimikatz读取lsass.dmp中的密码
- sekurlsa::minidump lsass.dmp
- sekurlsa::logonPasswords full //读取密码
利用Dumplt工具保存当前内存为RAW文件
- 下载地址:https://pan.baidu.com/s/1Ms4FcqzK7Vp1bHwe10Uapw 提取码:m5lp
- 双击运行即可,生成一个大于当前内存的raw内存文件
- 内存文件与内存大小接近或者稍微大一点,raw格式
- procdump -ma 进程 123.dmp
volatility在kali中的安装
- wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz
tar -zxvf setuptools-18.5.tar.gz
cd setuptools-18.5/
sudo python2 setup.py build
sudo python2 setup.py install - wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py - sudo apt-get install python2-dev
- wget https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
tar -zxvf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
sudo python2 setup.py build
sudo python2 setup.py install - pip install distorm3
- wget https://github.com/volatilityfoundation/volatility/archive/refs/tags/2.6.zip
- python2 setup.py install
python2 vol.py -h
参考文章:
- https://blog.csdn.net/wangjin7356/article/details/123442090
- https://blog.csdn.net/weixin_45485719/article/details/107668884
- https://cloud.tencent.com/developer/article/1881336
- https://github.com/volatilityfoundation/volatility/releases/tag/2.6
volatility对RAW文件的分析使用
- python2 vol.py -f ../CISP-PTE-PC-20221015-093756.raw imageinfo //查看该镜像的信息,关注profile,-f 选择文件路径
- python2 vol.py -f ../CISP-PTE-PC-20221015-093756.raw --profile=Win7SP1x64 -h //--profile指定操作系统版本,-h查看有哪些模块
- python2 vol.py -f ../CISP-PTE-PC-20221015-093756.raw --profile=Win7SP1x64 pslist //pslist查看进程列表
- python2 vol.py -f ../CISP-PTE-PC-20221015-093756.raw --profile=Win7SP1x64 hivedump -o 0xfffffa8005cceb30
//按hivelist列出的虚内存地址查看注册表内容 - lsadump 直接内存读取
内存恶意软件分析
- pstree //看一下异常进程
- connscan //看看网络连接情况
- getsids -p 111,222 //看一下这两个进程的用户信息是否异常
- dlllist -p 111,222 //看一下进程涉及的DLL数量
5.malfind -p 111,222 -D test //将这两个进程保存到test目录下,传到windows上,使用defender查杀
插件例子
- pslist //查看进程列表
- hashdump //dump出用户密码
hashdump -y system对应的虚内存 -s SAM对应的虚内存 //hivelist显示注册表蜂巢
md5:31d6cfe0d16ae931b73c59d7e0c089c0是空密码 - hivedump -o 虚内存 //列出的虚内存地址查看注册表内容
- -K "注册表路径" //查看注册表对应的内容
SAM\Domains\Account\Users\Names
//用户信息
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
//最后登录的用户 - userassist //正在运行的程序、运行过多少次、最后一次运行时间等
- memdump -p PID -D test //dump进程PID输出到test目录下
strings 1456.dmp > 123.txt - cmdscan //cmd历史命令
- netscan //网络连接
- iehistory //ie浏览器历史记录
- hivelist //提取hash
自带插件总览
-
imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数
-
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
-
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的- 进程
-
cmdscan:可用于查看终端记录
-
notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
-
filescan:扫描所有的文件列表
-
linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’
-
dumpfiles:导出某一文件(指定虚拟地址)
-
需要指定偏移量 -Q 和输出目录 -D
-
mendump:提取出指定进程,常用foremost 来分离里面的文件
-
需要指定进程-p [pid] 和输出目录 -D
-
editbox:显示有关编辑控件(曾经编辑过的内容)的信息
-
screenshot:保存基于GDI窗口的伪截屏
-
clipboard:查看剪贴板信息
-
iehistory:检索IE浏览器历史记录
-
systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
-
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
-
mftparser:恢复被删除的文件
-
svcscan:扫描 Windows 的服务
-
connscan:查看网络连接
-
envars:查看环境变量
-
dlllist: 列出某一进程加载的所有dll文件
-
hivelist: 列出所有的注册表项及其虚拟地址和物理地址
-
timeliner: 将所有操作系统事件以时间线的方式展开
……
volatility扩展插件
- 插件位置:
/usr/lib/python2.7/dist-packages/volatility/plugins
volatility从内存还原图片
- volatility -f 7.raw --profile=Win7SP1x64 memdump -p 1456 -D test
- mv mstsc.dmp mstsc.data
- Gimp -> open -> Raw Image Data -> 调整参数
死取证
-
Autopsy
-
Extundelete
Extundelete [device-file] --restore-file [restore location] -
iPhone Backup Analyzer
-
Foremost
foremost -t jpeg,gif,png,doc -i 7.raw