volayility工具的使用方法
volayility工具的使用方法
获取内存镜像详细信息
imageinfo 是 Volatility 中用于获取内存镜像信息的命令。它可以用于确定内存镜像的操作系统类型、版本、架构等信息,以及确定应该使用哪个插件进行内存分析
1 | python2 vol.py -f Challenge.raw imageinfo #f:指定分析的内存镜像文件名 |
1 | 上述输出中,Suggested Profile(s) 显示了 Volatility 推荐的几个内存镜像分析配置文件,可以根据这些配置文件来选择合适的插件进行内存分析 |
获取正在运行的程序
这里我们用 Win7SP1x64 配置文件进行分析,Volatility 的 pslist 插件可以遍历内存镜像中的进程列表,显示每个进程的进程 ID、名称、父进程 ID、创建时间、退出时间和路径等信息
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 pslist |
提取正在运行的程序
Volatility 的 procdump 插件可以根据进程 ID 或进程名称提取进程的内存映像,并保存为一个单独的文件
比如这里我要提取 iexplore.exe 这个程序
他的进程 pid 号为 2728
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 procdump -p 2728 -D ./ |
成功导出,导出后文件名为 executable.2728.exe
查看在终端里执行过的命令
Volatility 的 cmdscan 插件可以扫描内存镜像中的进程对象,提取已执行的 cmd 命令,并将其显示在终端中
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 cmdscan |
他移动到了 Documents 目录下,echo 了一次字符串,然后创建了一个名为 hint.txt 的文件
查看进程在终端里运行的命令
Volatility 中的 cmdline 插件可以用于提取进程执行的命令行参数和参数值
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 cmdline |
查找内存中的文件
Volatility 的 filescan 插件可以在内存中搜索已经打开的文件句柄,从而获取文件名、路径、文件大小等信息
我想找到 hint.txt 文件,可以使用以下命令
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 filescan | grep hint.txt |
grep 是 Linux 下常用的命令之一,它用于在文件中查找指定的字符串,并将包含该字符串的行输出
如果只使用 filescan 而不配合 grep 的话,Volatility 就会输出系统上的全部文件,例如:
提取内存中的文件
Volatility 的 dumpfiles 插件可以用来提取系统内存中的文件
这里我要提取 hint.txt 文件,hint.txt 的内存位置为 0x000000011fd0ca70,这两个由于位置都一样,随便提取哪个都行
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000011fd0ca70 -D ./ |
提取出来的文件名是包含内存地址的,更改一下后缀名即可运行
查看浏览器历史记录
Volatility 中的 iehistory 插件可以用于提取 Internet Explorer 浏览器历史记录
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 iehistory |
提取用户密码 hash 值并爆破
Volatility 中的 Hashdump 插件可以用于提取系统内存中的密码哈希值
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 hashdump |
这里提取了四个用户的密码 hash 值,我们将这些字符串复制一下,粘贴到本地本文里
我们可以使用这个在线网站:
1 | https://crackstation.net/ |
将 hash 值粘贴上去
就可以得到用户密码明文
使用 mimikatz 提取密码
mimikatz 是一个开源的用于从 Windows 操作系统中提取明文密码,哈希值以及其他安全凭据的工具
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 mimikatz |
成功提取到 TroubleMaker 用户的密码
查看剪切板里的内容
Volatility 中的 clipboard 插件可以用于从内存转储中提取剪贴板数据
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 clipboard |
查看正在运行的服务
svcscan 是 Volatility 中的一个插件,用于扫描进程中所有的服务
1 | svcscan |
执行了 svcscan 之后,每列代表服务的一些信息,包括服务名、PID、服务状态、服务类型、路径等等
查看网络连接状态
Volatility 中的 netscan 插件可以在内存转储中查找打开的网络连接和套接字,该命令将显示所有当前打开的网络连接和套接字。输出包括本地和远程地址、端口、进程 ID 和进程名称等信息
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 netscan |
查看注册表信息
printkey 是 Volatility 工具中用于查看注册表的插件之一。它可以帮助分析人员查看和解析注册表中的键值,并提供有关键值的详细信息,如名称、数据类型、大小和值等
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 printkey |
然后使用 hivelist 插件来确定注册表的地址
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 hivelist |
查看注册表 software 项
hivedump 是一个 Volatility 插件,用于从内存中提取 Windows 注册表的内容,这里我们选择第一个来演示
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 hivedump -o 0xfffff8a00127d010 |
根据名称查看具体子项的内容,这里以 SAM\Domains\Account\Users\Names 做演示,这个是 Windows 系统中存储本地用户账户信息的注册表路径,它包含了每个本地用户账户的名称和对应的 SID 信息
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names" |
如果要提取全部的注册表,可以用这个命令
1 | python2 vol.py -f Challenge.raw --profile=Win7SP1x64 dumpregistry -D ./ |
全部插件
1 | amcache 查看AmCache应用程序痕迹信息 |
总结
本篇文章演示的插件已经可以做绝大部分题目了,之后就多在 buuctf 或者 ctfshow 等线上 ctf 平台刷题,积累经验