内存取证会临时存储一些有价值的信息
查看内存进程的信息等等,对溯源这种事情有帮助。不过要用到专门的工具获取信息
运行exe文件,输入y将一个系统的镜像完整的下载下来,
这就是保存下来的文件。
视频上别的工具搞不来,要不就是捆绑下载的网站。
然后volatility在kali2020之后的版本安装都有bug,所以我直接下载了2019版本。
在这个以下的内容都是volatility支持的插件
不同的操作系统存储的路径不同,为了选择格式的profile,我们先用mageinfo查看一下系统的版本信息,
红框里面的就是版本信息。
pslist用于显示正在运行的进程,pid,开始时间等信息
pstree跟上一条命令相似,不过它还可以识别子进程。
connection参数可以列举出来活跃的链接和端口
connscan可以列举已经被终止的链接
还可以使用插件,sockets,展出时额外链接信息,它支持所以的协议
ddl
ddl是windows1特有的。通过了解正在运行的dll和版本信息,有助于分析关联的进程信息
verinfo可以列举pe文件的所有版本信息。
dllist列举正在运行的dll
注册表分析,关于用户,设置,以及程序和操作系统的信息都可以在注册表中找到,,散列的密码也可能
这里要用到hivescan插件,用来查看注册表配置单元的物理地址
还可以用hivelist查看更详细的信息
会显示虚拟地址,物理地址的细节更容易是别的路径等等
插件yimeliner,提供所有时间线发送的东西来帮忙取证,甚至可以看到用户怎么一步步操作系统的
malfind插件,找到系统中可能存在的恶意软件
这是他就觉得可能的一个结果,也可以加上-p 跟pid号,针对pid为检查
六,常用命令插件
❤可以先查看当前内存镜像中的用户printkey -K “SAM\Domains\Account\Users\Names”
volatility -f 1.vmem –profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users\Names”
❤查看用户名密码信息(密码是哈希值,需要john爆破) hashdump
volatility -f 1.vmem --profile=Win7SP1x64 hashdump
查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
❤如果john爆破不出来,就使用 lasdmp 查看强密码 lsadmp
volatility -f 1.vmem --profile=Win7SP1x64 lsadump
❤查看进程pslist
volatility -f 1.vmem --profile=Win7SP1x64 pslist
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
❤查看已知进程pslist
volatility -f 1.vmem --profile=Win7SP1x64 pslist -p 2588
❤隐藏或解链的进程psscan
volatility -f 1.vmem --profile=Win7SP1x64 psscan
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
❤查看服务 查询服务名称svcscan
volatility -f 1.vmem --profile=Win7SP1x64 svcscan
svcscan:扫描 Windows 的服务
❤查看浏览器历史记录,获取当前系统浏览器搜索过的关键词 iehistory
volatility -f 1.vmem --profile=Win7SP1x64 iehistory
❤查看网络连接 获取当前系统 ip netscan
volatility -f 1.vmem --profile=Win7SP1x64 netscan
有一些版本 这个命令是使用不了 这里我们就要使用(connscan,connections)
❤查看网络连接connscan
volatility -f 1.vmem --profile=Win7SP1x64 connscan
connscan:查看网络连接
❤查看网络连接connections
volatility -f 1.vmem --profile=Win7SP1x64 connections
connections:查看网络连接
❤查看命令行操作,显示cmd历史命令 cmdscan
volatility -f 1.vmem --profile=Win7SP1x64 cmdscan
cmdscan:可用于查看终端记录
❤查看进程命令行参数(具体一些可疑进程的参数指令)cmdline
volatility -f 1.vmem --profile=Win7SP1x64 cmdline
❤扫描所有的文件列表 filescan
volatility -f 1.vmem --profile=Win7SP1x64 filescan
(linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’)
例
volatility -f 1.vmem --profile=Win7SP1x64 filescan grep "flag.txt"
cat system.txt|grep -i computername
❤查看文件内容dmpfiles
volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./
需要指定偏移量 -Q 和输出目录 -D
dumpfiles:导出某一文件(指定虚拟地址)
❤查看当前展示的notepad内容 notepad
volatility -f 1.vmem --profile=Win7SP1x64 notepad
查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
❤显示有关编辑控件(曾经编辑过的内容)的信息 editbox
volatility -f 1.vmem --profile=Win7SP1x64 editbox
editbox:显示有关编辑控件(曾经编辑过的内容)的信息 查看内存中记事本的内容
❤提取进程memdump
volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./
memdump:提取出指定进程,常用foremost 来分离里面的文件
需要指定进程-p [pid] 和输出目录 -D
memdump -p 332 -D XX/
提取进程 -p 进程号 -D 当前输出路径(导出为332.dmp)
dump出来的进程文件,可以使用 foremost 来分离里面的文件,用 binwak -e 不推荐
strings -e l 2040.dmp | grep flag 查找flag
❤屏幕截图screenshot
volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
screenshot:保存基于GDI窗口的伪截屏
❤查看注册表配置单元hivelist
volatility -f 1.vmem --profile=Win7SP1x64 hivelist
hivelist: 列出所有的注册表项及其虚拟地址和物理地址
❤查看注册表键名hivedmp
volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410
❤查看注册表键值printkey
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
❤ 获取主机名 printkey
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
❤列出用户名 pringkey
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
❤查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等。serassist
volatility -f 1.vmem --profile=Win7SP1x64 userassist
❤最大程序提取信息timeliner
volatility -f 1.vmem --profile=Win7SP1x64 timeliner
timeliner: 将所有操作系统事件以时间线的方式展开
❤查看剪贴板信息clipboard
volatility -f 1.vmem --profile=Win7SP1x64 clipboard
clipboard:查看剪贴板信息
❤显示关于计算机及其操作系统的详细配置信息(插件)systeminfo
volatility -f 1.vmem --profile=Win7SP1x64 systeminfo
systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
❤恢复被删除的文件mftparser
volatility -f 1.vmem --profile=Win7SP1x64 mftparser
mftparser:恢复被删除的文件
❤查看环境变量envars
volatility -f 1.vmem --profile=Win7SP1x64 envars
envars:查看环境变量
❤列出某一进程加载的所有dll文件dlllist
volatility -f 1.vmem --profile=Win7SP1x64 dlllist -p 2588
dlllist: 列出某一进程加载的所有dll文件
需要指定进程-p [pid]
❤程序版本信息 verinfo
volatility -f 1.vmem --profile=Win7SP1x64 verinfo
列出PE|程序版本信息
❤产看进程树,可以轻松了解各进程之间的关系:父进程与子进程 pstree
volatility -f 2008.raw –profile=Win2008R2SP1x64 pstree
在进程中PPID比PID还大,那就可能这个进程有异常程序
❤从内存文件中找到异常程序植入到系统的开机自启痕迹 shimcache
volatility -f 2008.raw –profile=Win2008R2SP1x64 shimcache
七,内存取证的大致思路
首先确定镜像是何种操作系统的,命令imageinfo即可获取镜像信息。
需要获取的是计算机在这一时刻运行了哪些进程。
Volatility提供了众多的分析进程的命令,如pstree、pesscan、pslist……
filescan命令可以对打开的文件进行扫描。
命令dumpfile和memdump命令将相关数据导出,然后对导出的数据进行二进制分析。
简单说只要熟悉Volatility工具的常用命令,并能够对结合其他类型的知识(图片隐写、压缩包分析等)对提取出的文件进行分析,便可轻松解决。
但当然具体问题具体分析吗 但插件就上面的
————————————————
版权声明:本文为CSDN博主「路baby」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_68012373/article/details/127419463
autopsy
到这一步输入镜像地址的绝对路径
之后创建好就来到这个界面
就可以查看进程的信息。
分析之前校验镜像md5完整性
点这个进行分析
可以看到版本更详细的信息。
这个可以查看文件夹文件,名称,大小,权限等等
点这个查看,后缀被修改的文件
volatility案列演示
先查看目标信息
知道名字之后,就可以对它进行查看,
1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位);
查看的他的用户表
这里要用到参数printkey -k “路径”
第一个sam密码要跑很长时间,信息大赛也不可能这样
直接去看强密码得了。
找到答案
2.获取当前系统 ip 地址及主机名,以 Flag{ip:主机名}形式提交;
Netscan 可以查ip
这个就是
Ip:192.168.85.129
主机名需要通过查询注册表,先用hivelist
system
可以直接通过 hivedump查询相应的键名 但比较慢
volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a000024010 > system.txt
一步一步寻找键名字
得到主机名WIN-9FBAEH4UV8C
3.获取当前系统浏览器搜索过的关键词,作为 Flag 提交;
这里使用iehistory
flag{admin@file:///C:/Users/admin/Desktop/flag.txt}
4.当前系统中存在挖矿进程,请获取指向的矿池地址,以 Flag{ip:端口}形式 提交;
volatility -f 1.vmem --profile=Win7SP1x64 netscan
唯一一个已建立的
5.恶意进程在系统中注册了服务,请将服务名以 Flag{服务名}形式提交。
上一题中已经知道了进程号为2588
对于的id找到就是这个端口
fa