内存取证volatility工具命令详解

一、环境安装

1.kali下安装Volatility2
注意:一般 Volatility2比Volatility3好用
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2 get-pip.py
python2 -m pip install Crypto
python2 -m pip install pycryptodome
python2 -m pip install pytz
python2 -m pip install Pillow  #PIL图形处理库
apt-get install pcregrep python2-dev #插件安装依赖库
python2 -m pip install distorm3  #反编译库
python2 -m pip install openpyxl  #读写excel文件
python2 -m pip install ujson #JSON解析
python2 -m pip  uninstall  yara  #恶意软件分类工具
python2 -m pip install  pycrypto  #加密工具集
python2 -m pip install construct  #mimikatz依赖库
# 在 https://github.com/virustotal/yara/releases 下载 YARA 压缩包
tar -zxf yara-4.4.0.tar.gz
cd yara-4.4.0
sudo apt-get install automake libtool make gcc pkg-config
sudo apt-get install flex bison libssl-dev
./bootstrap.sh
./configure
make
sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig
yara  -h
git  https://github.com/volatilityfoundation/volatility.git
cd   volatility
python2 setup.py install
2.windows下安装

二、常用命令使用

1. 查看内存镜像系统信息
volatility.exe   -f  worldskills3.vmem    imageinfo
2.查看当前内存镜像注册表中用户名
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   printkey   -K  "SAM\Domains\Account\Users\Names"
3.使用hashdump命令获取sam hash值
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  hashdump
4.使用lasdump命令查看密码明文
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64    lsadump
5.查看网络连接状态信息
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   netscan
同时也可以查看到 当前系统中存在挖矿进程,获取指向的矿池地址
6.查看当前系统主机名
主机名通过注册表查询,需先用hivelist(也可以查看内存镜像中的虚拟地址)查询
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  hivelist
查看键名

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   -o   0xfffff8a000024010   printkey

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   -o   0xfffff8a000024010   printkey  -K  "ControlSet001"
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   -o   0xfffff8a000024010   printkey  -K    "ControlSet001\Control "
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   -o   0xfffff8a000024010   printkey  -K "ControlSet001\Control\ComputerName"
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   -o   0xfffff8a000024010   printkey  -K "ControlSet001\Control\ComputerName\ComputerName"

也可以直接通过 hivedump查询相应的键名, 但是查询非常费时间

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  hivedump -o 0xfffff8a000024010 > system.txt
7.获取当前系统IE浏览器存储的信息
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  iehistory
8.查询系统服务名称
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   svcscan
9. 从内存文件中找到异常程序植入到系统的开机自启痕迹
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  shimcache
10.查看 父进程与子进程
注意:在进程中PPID比PID大,那就可能这个进程有异常程序
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  pstree
11.查看 程序版本信息
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  verinfo
12.通过  pslist命令查询 进程
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  pslist
注意:可列举出系统进程,但它不能检测到隐藏或者解链的进程
也能进一步查到子进程的信息
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   pslist -p 2588
13.查看隐藏或解链的进程
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  psscan
或者
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   psxview
注意:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
14. 显示cmd历史命令记录
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   cmdscan
或者
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64 consoles  #能看到指令的输入和输出
15.查看进程命令行参数
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  cmdline
16. 扫描内存系统中的所有文件列表
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  filescan
在linux系统中可使用filescan命令参数配合gerp命令进行搜索关键字
python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64      filescan |grep "flag"
python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64  filescan | grep -E 'jpg|png|jpeg|bmp|gif'
搜索图片或者text
python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64         filescan |grep -E 'txt'
python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64         filescan |grep -E 'jpg'
导出flag.txt文件
python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64      dumpfiles -Q  0x000000007f1b6c10  -D ./
dump 出来的进程文件,建议使用 foremost 来分离里面的文件
17.查看文件内容(需要  filescan配合命令查询)

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   dumpfiles -Q 0xxxxxxxx -D ./

注意:需要指定偏移量 -Q 和输出目录 -D,dumpfiles:导出某一文件,指定虚拟地址

18.查看当前展示的notepad内容(win7不支持该命令)

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   notepad
19.显示有关编辑控件(曾经编辑过的内容)的信息

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  editbox

  20.提取进程内容(需要pslist命令配合查询使用)

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   memdump -p 2588   --dump-dir=./

注意:memdump:提取出指定进程,常用foremost 来分离里面的文件  ,需要指定进程-p [pid] 和输出目录 -D

提取出来的直接用strings是无法查看,需要添加-e参数

strings -e l 2626.dmp | grep flag

 

21.屏幕截图

python2 vol.py    -f  worldskills3.vmem     --profile=Win7SP1x64  screenshot --dump-dir=./

注意:需要安装PIL库,建议linux下运行

22.查看运行程序相关记录,比如最后一次更新时间,运行过的次数等

提取出内存中记录的,当时正在运行的程序有哪些,运行过多少次,最后一次运行的时间等信息

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  userassist

23.最大程度上将内存中的信息提取出来

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  timeliner

注意:将所有操作系统事件以时间线的方式展开

24.查看剪贴板信息

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   clipboard

25.显示关于计算机及其操作系统的详细配置信息(需要安装插件)

volatility -f 1.vmem --profile=Win7SP1x64 systeminfo26.查看访问时间

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  mftparser

27.查看环境变量

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64    envars 

volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   envars | grep "Password"

28.列出某一进程加载的所有dll文件
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64 dlllist
 volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   dlllist -p 2588
29.获取最后登录系统的账户
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64   printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
30.显示进程权限
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  privs
31.导出注册表
volatility.exe   -f  worldskills3.vmem     --profile=Win7SP1x64  dumpregistry --dump-dir=./
32.获取明文密码,直接爆破出用户密码(linxu)
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64  mimikatz
33.查看SID
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64  getsids 
34.获取TrueCrypt密码信息
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64  truecryptpassphrase
35.获取TrueCrypt秘钥信息
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64   truecryptmaster 
36.解析MFT记录、导出MFT记录
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64   mftparser
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64   mftparser  --output-file=mftverbose.txt -D  ./
37.寻找可能注入到各种进程中的恶意软件
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x6   malfind
38.usb连接信息
python2 vol.py   -f  worldskills3.vmem     --profile=Win7SP1x64    usbstor

三、插件安装

下载地址:
https://github.com/ruokeqx/tool-for-CTF/tree/master/volatility_plugins
https://github.com/superponible/volatility-plugins
下载之后,将 .py 插件放进volatility 的 plugins 文件夹目录下(/volatility-master/volatility/plugins)
  • lastpass.py Chrome 记录的登录密码
  • usbstor.py 扫描注册表查找插入系统的 USB 设备
  • chromehistory.py 谷歌浏览器历史记录
  • firefoxhistory.py 火狐浏览器历史记录
  • system_info.py  systeminfo
  • sqlite_help.py 上面两个插件的必须文

四、CTF中内存取证题目类型

类型1:隐藏图片
1.查看可疑进程(pslist)
2 导出进程文件
3.使用查看文件内容,确认文件类型(file *.dmp)
4.一般图片文件使用foremost 分离 ( foremost *.dmg)
5.如果分离出来是镜像文件.img损坏(testdisk *.img进行修复)
类型2:剪切板
1.搜索关于flag的文件(filescan | grep flag)
2.搜索IE浏览器历史记录,查看访问了什么网站(iehistory | grep 'https://')
3.查看编辑器中有什么,和文档有关的取证(editbox或者notepad)
4.查看剪切板复制中有什么记录,mspaint对应进程的内容(memdump -p PID值 --dump-dir=./)
类型3:TrueCrypt加密
1.导出TrueCrypt对应进程的内容(memdump -p PID值 --dump-dir=./)
2.使用Elcomsoft Forensic Disk Decryptor对导出的进程进行还原内容
3.用VeraCrypt挂载查看还原的内容
类型4:传输压缩包
1.查看使用过得命令(cmdscan)
2.搜索关键字(filescan | grep 'P@ss')
4.dump出压缩包内存文件(dumpfiles -Q 0x0000000002c61318 -D ./)
类型5:用户密码
1.hashdump导出密码hash值
2.使用jone或者在线工具对其进行NTML值破解
https://crackstation.net/
3.或者使用mimikatz插件进行明文读取用户的密码
类型6:IE浏览器中保存的文件
1.获取IE浏览器历史记录(iehistoy)
2.过滤IE浏览器中的关键字(iehistory | grep jpg或者hint)
3.dump出对应的jpg和hint内存文件(dumpfiles -Q 0x0000000002c61318 -D ./)
类型7:查看主机名和IP
1.主机名(systeminfo插件或者注册表查找对应的键名)
2.ip(netscan)
类型8:剪切板内容
1.获取剪切板内容(clipboard插件)
类型9:隐藏了flag
1.搜索flag.txt文件(filescan | grep flag)
2.导出flag.txt内存文件(dumpfiles -Q 0x0000000002c61318 -D ./)
类型10:隐藏的加密的AES
1.查看可疑程序进程(查看ppid和pid值对比以及时间不一样可判断出可疑进程也还可以用chatget来判断)
2.查找曾经使用过的命令(cmdscan)
3.分别导出子进程和父进程的内存内容分析(memdump -p PID值 --dump-dir=./)
4.找到KEY和IE值,是AES加密
类型11:encryto加密
1.查看可疑进程(pslist)
2.查看历史命令,.查看到加密的历史文件(cmdscan)
3.导出加密的历史可疑文件(dumpfiles -Q 0x000000003e435890 --dump-dir=./**)
4.使用encryto进行解密
类型12:匿名用户登录
1.查看可疑进程,这里是注册表的进程有可疑(pslist)
2.dump出注册表的进程内容(memdump -p 804 --dump-dir=./)
3.查看DUMP出注册表内存关键字sam (strings -e l -d 804.dmp|grep "SAM" ),发现有可疑的用户名
4.检索注册表中的该用户 printkey -K "SAM\Domains\Account\Users\00000493"
5.hashdum出对应账号的用户名的密码(hashdump|grep "FHREhpe")
类型13:rootkiet.exe木马
1.查看可疑进程(pslist)
一般rootkit恶意程序与svchost进行捆绑并注入到svchost.exe中,需要进入安全电脑模式才能清理
2.-查找进程注入引用的文件(-p 880 handles -t file)
3进程在运行过程中被注入的DLL文件(ldrmodules -p 880 | grep -i false)
4.个注入的dll文件的内存地址(malfind -p 880)
dlldump -p 880 --base=0x980000 --dump-dir=.

volatility命令练习的内存镜像:
链接: https://pan.baidu.com/s/1LXSJ_RL9yotb8IKbzIQZ3g 提取码: syny 
参考文章:
https://blog.csdn.net/m0_68012373/article/details/129038773
  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 首先在Kali Linux中打开终端。 2. 输入以下命令以更新Kali Linux:sudo apt-get update 3. 安装Volatility工具:sudo apt-get install volatility 4. 等待安装完成后,输入以下命令以验证安装:volatility -h 5. 如果成功安装,将显示Volatility工具的帮助菜单。 6. 现在您可以使用Volatility工具来分析内存映像文件。 ### 回答2: Kali是一款流行的安全测试和渗透测试工具,它为安全研究人员和黑客提供了许多有用的工具和功能。Volatility是一款专门用于分析内存镜像的工具,它可以帮助用户发现潜在的恶意代码、病毒和其他安全漏洞。 Kali默认安装了Volatility工具,但在某些情况下,用户可能需要手动安装它。以下是在Kali中手动安装Volatility工具的步骤: 第一步:更新Kali系统 在安装任何新软件之前,最好先更新Kali系统。可以使用以下命令更新: sudo apt-get update sudo apt-get upgrade 第二步:安装Python Volatility需要使用Python 2.6或更高版本,因此需要先安装Python。可以使用以下命令安装: sudo apt-get install python2.7 第三步:安装依赖项 在安装Volatility之前,需要安装一些依赖项。可以使用以下命令安装: sudo apt-get install pcregrep libsmdev-utils libsmdev1 libsmraw-utils libsmraw1 python-crypto python-distorm3 python-pefile python-pxdlib python-pytsk3 python-boto python-dateutil python-defusedxml python-dfdatetime python-dfvfs python-dfwinreg python-oauth python-openpyxl python-requests python-xlrd sleuthkit zlib1g-dev 第四步:下载Volatility 可以从Volatility的官方网站https://www.volatilityfoundation.org/releases下载最新的稳定版本。下载后将文件解压缩到Kali的文件系统中。 第五步:运行Volatility 现在,可以通过运行以下命令来启动Volatility: python vol.py 这将打开一个交互式命令行界面,用户可以使用其中的各种命令来分析内存镜像。 总结: 安装Volatility需要在Kali上安装Python和一些依赖项。然后,用户需要从Volatility的官方网站上下载最新版本。最后,用户可以使用python vol.py命令来启动Volatility,并使用其内置的命令来进行内存镜像分析。 ### 回答3: Kali Linux是基于Debian的Linux发行版,它提供了各种安全测试和渗透测试工具。其中,Volatility是一种开源的内存取证工具,它可以帮助分析内存镜像中的恶意代码和缓解攻击活动。本文将讲述如何在Kali Linux中安装Volatility工具。 第一步是从官方网站上下载Volatility工具。我们可以通过以下命令在终端中打开官方网站: ``` firefox https://www.volatilityfoundation.org/releases ``` 在浏览器中,我们可以找到可下载的最新版本的工具。我们需要下载 .zip 文件。 第二步是解压缩下载的文件,可以通过以下命令在终端中进行: ``` unzip volatility-2.6.1.zip ``` 第三步是安装Python和PIP。Volatility是基于Python编写的,因此我们需要先安装Python才能使用它。我们可以使用以下命令检查Python是否已经安装: ``` python --version ``` 如果Python未安装,我们可以使用以下命令安装Python: ``` apt install python3 apt install python3-pip ``` 第四步是安装Volatility所需的依赖项。为了使Volatility正常运行,我们需要安装一些必要的依赖项。可以使用以下命令安装它们: ``` pip3 install distorm3 pip3 install pycrypto pip3 install openpyxl pip3 install yara-python ``` 第五步是测试安装。如果所有依赖项都正确安装,我们就可以使用Volatility工具了。我们可以使用以下命令来验证安装是否成功,并输出工具的帮助信息: ``` cd volatility-2.6.1/ python3 vol.py -h ``` 如果成功安装,并且命令行界面输出了Volatility的帮助信息,那么我们就可以愉快地使用了。 综上所述,以上是在Kali Linux中安装Volatility工具的步骤。Volatility工具是一种非常有用的内存取证工具,可以帮助我们分析攻击活动和恶意代码,从而更好地保护我们的系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渗透测试中心

各位师傅,觉得文章不错可支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值