内存取证分析

内存取证会临时存储一些有价值的信息

查看内存进程的信息等等,对溯源这种事情有帮助。不过要用到专门的工具获取信息

内存取证分析_第1张图片运行exe文件,输入y将一个系统的镜像完整的下载下来,

内存取证分析_第2张图片

这就是保存下来的文件。

视频上别的工具搞不来,要不就是捆绑下载的网站。

然后volatility在kali2020之后的版本安装都有bug,所以我直接下载了2019版本。

内存取证分析_第3张图片在这个以下的内容都是volatility支持的插件

不同的操作系统存储的路径不同,为了选择格式的profile,我们先用mageinfo查看一下系统的版本信息,内存取证分析_第4张图片

红框里面的就是版本信息。

pslist用于显示正在运行的进程,pid,开始时间等信息

内存取证分析_第5张图片

内存取证分析_第6张图片

pstree跟上一条命令相似,不过它还可以识别子进程。

connection参数可以列举出来活跃的链接和端口

内存取证分析_第7张图片

connscan可以列举已经被终止的链接

内存取证分析_第8张图片

还可以使用插件,sockets,展出时额外链接信息,它支持所以的协议

ddl

ddl是windows1特有的。通过了解正在运行的dll和版本信息,有助于分析关联的进程信息

verinfo可以列举pe文件的所有版本信息。

dllist列举正在运行的dll

注册表分析,关于用户,设置,以及程序和操作系统的信息都可以在注册表中找到,,散列的密码也可能

这里要用到hivescan插件,用来查看注册表配置单元的物理地址

内存取证分析_第9张图片

还可以用hivelist查看更详细的信息

内存取证分析_第10张图片

会显示虚拟地址,物理地址的细节更容易是别的路径等等

插件yimeliner,提供所有时间线发送的东西来帮忙取证,甚至可以看到用户怎么一步步操作系统的

malfind插件,找到系统中可能存在的恶意软件

内存取证分析_第11张图片

这是他就觉得可能的一个结果,也可以加上-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

内存取证分析_第12张图片

到这一步输入镜像地址的绝对路径

内存取证分析_第13张图片

之后创建好就来到这个界面

内存取证分析_第14张图片

内存取证分析_第15张图片

就可以查看进程的信息。

分析之前校验镜像md5完整性

内存取证分析_第16张图片

内存取证分析_第17张图片

内存取证分析_第18张图片

点这个进行分析

内存取证分析_第19张图片

内存取证分析_第20张图片

内存取证分析_第21张图片

可以看到版本更详细的信息。

内存取证分析_第22张图片

这个可以查看文件夹文件,名称,大小,权限等等

内存取证分析_第23张图片

内存取证分析_第24张图片

点这个查看,后缀被修改的文件

内存取证分析_第25张图片

内存取证分析_第26张图片

内存取证分析_第27张图片

内存取证分析_第28张图片

内存取证分析_第29张图片

内存取证分析_第30张图片

volatility案列演示

先查看目标信息内存取证分析_第31张图片

知道名字之后,就可以对它进行查看, 

1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位);

查看的他的用户表

这里要用到参数printkey -k “路径”

内存取证分析_第32张图片

内存取证分析_第33张图片

第一个sam密码要跑很长时间,信息大赛也不可能这样

内存取证分析_第34张图片

直接去看强密码得了。

内存取证分析_第35张图片

找到答案

2.获取当前系统 ip 地址及主机名,以 Flag{ip:主机名}形式提交;

 Netscan 可以查ip

内存取证分析_第36张图片

这个就是

 Ip:192.168.85.129

主机名需要通过查询注册表,先用hivelist

内存取证分析_第37张图片

system

可以直接通过 hivedump查询相应的键名 但比较慢 

volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a000024010 > system.txt

一步一步寻找键名字

内存取证分析_第38张图片

内存取证分析_第39张图片

内存取证分析_第40张图片

内存取证分析_第41张图片

内存取证分析_第42张图片

得到主机名WIN-9FBAEH4UV8C

3.获取当前系统浏览器搜索过的关键词,作为 Flag 提交;

这里使用iehistory

内存取证分析_第43张图片

  flag{admin@file:///C:/Users/admin/Desktop/flag.txt}

4.当前系统中存在挖矿进程,请获取指向的矿池地址,以 Flag{ip:端口}形式 提交;

volatility -f 1.vmem --profile=Win7SP1x64 netscan 

唯一一个已建立的内存取证分析_第44张图片

5.恶意进程在系统中注册了服务,请将服务名以 Flag{服务名}形式提交。

上一题中已经知道了进程号为2588内存取证分析_第45张图片

内存取证分析_第46张图片

对于的id找到就是这个端口

fa

你可能感兴趣的:(linux,运维,服务器)