前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内存取证知识点及常见用法

内存取证知识点及常见用法

作者头像
L1near
发布2022-11-11 20:24:46
1.9K0
发布2022-11-11 20:24:46
举报
文章被收录于专栏:CTF-WPCTF-WP

现在CTF方向中的内存取证相关的题目越来越多了,之前也一直没有做过整理(发出了咕咕咕的声音),这几天因为某些原因,得把重点放在取证部分,所以干脆直接在这里做个内存取证方面的知识整理。

  • 计算机数字取证主要分为内存取证和磁盘取证,死取证与活取证。但是不管采用什么方式,都应该尽量避免破坏原物。例如通过内存转储工具对内容进行快照,通过硬盘克隆工具对磁盘进行克隆,方便后期的分析工作。
  • 此类题一般会给出raw文件、vmem文件、img文件、dmp文件等内存镜像文件,我们则需要用volatility来解决这种问题

volatility常用命令

imageinfo 命令:用于获取内存镜像的基本信息

代码语言:javascript
复制
volatility -f windows.raw imageinfo

然后从上面的Suggested Profile(s)中选择一个作为--profile的参数

pslist 命令:用于列出镜像中正在运行的进程

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 pslist

pstree 命令:用于查找镜像中正在运行的进程的进程树

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 pstree

cmdscan 命令:用于检索命令行(cmd)中键入的内容历史

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 cmdscan

filescan 命令:扫描文件,可配合 grep 命令进行相关字符定向扫描

代码语言:javascript
复制
# 常规命令,把所有文件列出来
volatility -f windows.raw --profile=WinXPSP2x86 filescan

# 查找flag字符相关
volatility -f windows.raw --profile=WinXPSP2x86 filescan | grep flag

# 查找指定后缀文件
volatility -f windows.raw --profile=WinXPSP2x86 filescan | grep -E 'png|jpg|gif|zip|rar|7z|pdf|txt|doc'

memdump 命令:将指定PID的进程dump出来

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 memdump -p [PID] -D ./
# [./] 代表当前文件夹
# -D ./ 还可以写作 --dump-dir=./

dumpfiles 命令:将指定Offset(P)的文件提取出来

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 dumpfiles -Q 0x0000000002c61318 -D ./
# -Q 后接 [filescan]命令扫描得到的 Offset(P)

editbox 插件:可以显示有关编辑控件的信息

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 editbox

userassist 命令:查看运行进程的次数和时间

代码语言:javascript
复制
volatility -f windows.raw --profile=Win7SP0x86 userassist

notepad 命令:可以查看notepad.exe里面的内容

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 notepad

clipboard 命令:查看剪切板数据

代码语言:javascript
复制
volatility -f windows.raw --profile=Win7SP0x86 clipboard
# 加参数 -v 可以导出
volatility -f windows.raw --profile=Win7SP0x86 clipboard -v > out.txt

procdump 命令:将指定PID的进程导出为exe

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 procdump -p [PID] -D ./

dlldump 命令:将指定PID的进程的所有DLL导出

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 dlldump -p [PID] -D ./

iehistory 命令:检索IE浏览器历史记录

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 iehistory

screenshot 命令:显示GDI样式的截屏

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 screenshot -D ./

cmdline 命令:列出所有命令行下运行的程序

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 cmdline

netscan 命令:检索所有网络连接情况

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 netscan

connections 命令:检索已经建立的网络连接

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 connections

hivelist 命令:检索所有注册表蜂巢hive

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 hivelist

hivedump 命令:检索SAM注册表键值对

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 hivedump -o 0xe1492b60#注册表的 virtual 地址 [上图的\SAM]

hashdump 命令:获取内存中的系统密码

代码语言:javascript
复制
# 显示结果是md5形式
volatility -f windows.raw --profile=WinXPSP2x86 hashdump

# 需要和hivelist配合
volatility -f windows.raw --profile=WinXPSP2x86 hashdump -y [注册表 system 的 virtual 地址] -s [SAM 的 virtual 地址]

mimikatz 命令:mimikatz插件可以获得系统明文密码

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 mimikatz  

但是mimikatz插件不是自带的,得自己另行安装,安装可以参考这个

printkey 命令:可以用来检索注册表中账号密码/最后登录的用户

代码语言:javascript
复制
# 获取SAM表中的用户(注册表中的账号密码)
volatility -f windows.raw --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names"
代码语言:javascript
复制
# 查询登陆账户系统(可查看最后登录用户)
volatility -f windows.raw --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

timeliner 命令:尽可能多的发现目标主机痕迹

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 timeliner

consoles 命令:抓取控制台下执行的命令以及回显数据

代码语言:javascript
复制
volatility -f windows.raw --profile=WinXPSP2x86 consoles

systeminfo命令:显示关于计算机及其操作系统的详细配置信息

systeminfo插件也不是自带的,得自行安装,安装过程与前文mimikatz安装类似,这里只给出systeminfo.py文件:

链接:https://pan.baidu.com/s/19OzHV29EGW_0701a5CoQAA 提取码:7h41

代码语言:javascript
复制
#可以获得计算机的 Hostname,ComputerName等信息
volatility -f 1.raw --profile=WinXPSP2x86 systeminfo

mftparser:恢复被删除的文件

代码语言:javascript
复制
volatility -f 1.raw --profile=WinXPSP2x86 mftparser > mftoutput.txt

mftoutput.txt 里面包含内存里面的文件(文件路径,文件内容),可根据需要自行搜索

envars:查看环境变量

代码语言:javascript
复制
 volatility -f imagin.vmem --profile=Win7SP1x64 envars 

且values值是str类型

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • volatility常用命令
    • imageinfo 命令:用于获取内存镜像的基本信息
      • pslist 命令:用于列出镜像中正在运行的进程
        • pstree 命令:用于查找镜像中正在运行的进程的进程树
          • cmdscan 命令:用于检索命令行(cmd)中键入的内容历史
            • filescan 命令:扫描文件,可配合 grep 命令进行相关字符定向扫描
              • memdump 命令:将指定PID的进程dump出来
                • dumpfiles 命令:将指定Offset(P)的文件提取出来
                  • editbox 插件:可以显示有关编辑控件的信息
                    • userassist 命令:查看运行进程的次数和时间
                      • notepad 命令:可以查看notepad.exe里面的内容
                        • clipboard 命令:查看剪切板数据
                          • procdump 命令:将指定PID的进程导出为exe
                            • dlldump 命令:将指定PID的进程的所有DLL导出
                              • iehistory 命令:检索IE浏览器历史记录
                                • screenshot 命令:显示GDI样式的截屏
                                  • cmdline 命令:列出所有命令行下运行的程序
                                    • netscan 命令:检索所有网络连接情况
                                      • connections 命令:检索已经建立的网络连接
                                        • hivelist 命令:检索所有注册表蜂巢hive
                                          • hivedump 命令:检索SAM注册表键值对
                                            • hashdump 命令:获取内存中的系统密码
                                              • mimikatz 命令:mimikatz插件可以获得系统明文密码
                                                • printkey 命令:可以用来检索注册表中账号密码/最后登录的用户
                                                  • timeliner 命令:尽可能多的发现目标主机痕迹
                                                    • consoles 命令:抓取控制台下执行的命令以及回显数据
                                                      • systeminfo命令:显示关于计算机及其操作系统的详细配置信息
                                                        • mftparser:恢复被删除的文件
                                                          • envars:查看环境变量
                                                          领券
                                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档