menu L1nearのspace
内存取证知识点及常见用法
511 浏览 | 2020-08-11 | 阅读时间: 约 2 分钟 | 分类: Misc | 标签:

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

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

# volatility常用命令

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

volatility -f windows.raw imageinfo

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

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

volatility -f windows.raw --profile=WinXPSP2x86 pslist

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

volatility -f windows.raw --profile=WinXPSP2x86 pstree

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

volatility -f windows.raw --profile=WinXPSP2x86 cmdscan

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

# 常规命令,把所有文件列出来
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出来

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

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

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

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

volatility -f windows.raw --profile=WinXPSP2x86 editbox

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

volatility -f windows.raw --profile=Win7SP0x86 userassist

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

volatility -f windows.raw --profile=WinXPSP2x86 notepad

## clipboard 命令:查看剪切板数据

volatility -f windows.raw --profile=Win7SP0x86 clipboard
# 加参数 -v 可以导出
volatility -f windows.raw --profile=Win7SP0x86 clipboard -v > out.txt

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

volatility -f windows.raw --profile=WinXPSP2x86 procdump -p [PID] -D ./

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

volatility -f windows.raw --profile=WinXPSP2x86 dlldump -p [PID] -D ./

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

volatility -f windows.raw --profile=WinXPSP2x86 iehistory

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

volatility -f windows.raw --profile=WinXPSP2x86 screenshot -D ./

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

volatility -f windows.raw --profile=WinXPSP2x86 cmdline

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

volatility -f windows.raw --profile=WinXPSP2x86 netscan

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

volatility -f windows.raw --profile=WinXPSP2x86 connections

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

volatility -f windows.raw --profile=WinXPSP2x86 hivelist

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

volatility -f windows.raw --profile=WinXPSP2x86 hivedump -o 0xe1492b60#注册表的 virtual 地址 [上图的\SAM]

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

# 显示结果是md5形式
volatility -f windows.raw --profile=WinXPSP2x86 hashdump

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

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

volatility -f windows.raw --profile=WinXPSP2x86 mimikatz  

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

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

# 获取SAM表中的用户(注册表中的账号密码)
volatility -f windows.raw --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names"

# 查询登陆账户系统(可查看最后登录用户)
volatility -f windows.raw --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

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

volatility -f windows.raw --profile=WinXPSP2x86 timeliner

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

volatility -f windows.raw --profile=WinXPSP2x86 consoles

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!