当前位置:   article > 正文

Windows内存取证思路-----volatility_volatility 找恶意进程

volatility 找恶意进程



前言

Volatility是一个开源的记忆分析工具,用于分析windows操作系统的内存快照。 该工具可以在内存镜像中查找恶意软件、病毒、漏洞利用等代码,发现系统漏洞,并为取证工作提供很多的便利


一、首先拿到内存,该怎么做

1.拿到Windows内存,先查看内存镜像的版本信息

vol.py -f worldskills3.vmem imageinfo

在这里插入图片描述

一般取第一个就行----------Win7SP1x64

二、解题思路

1.获取Windows中用户的明文密码,flag{明文密码}

vol.py -f worldskills3.vmem --profile=Win7SP1x64 hashdump

在这里插入图片描述

如果hashdump解不出来,那就lsadump,查看明文
vol.py -f worldskills3.vmem --profile=Win7SP1x64 lsadump

在这里插入图片描述

将flag中数字提取出来,md5解密
406990ff88f13dac3c9debbc0769588c

在这里插入图片描述

2.找到浏览器的下载的信息

vol.py -f worldskills3.vmem --profile=Win7SP1x64 iehistory

发现flag,使用filescan扫描
vol.py -f worldskills3.vmem --profile=Win7SP1x64 filescan |grep flag
将flag提取出来dumpflies
vol.py -f worldskills3.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007f1b6c10 -D ./

在这里插入图片描述

┌──(root㉿kali)-[~/neicun]
└─# mv file.None.0xfffffa801a879510.dat flag
                                                                               
┌──(root㉿kali)-[~/neicun]
└─# cat flag       
flag{180d163ca48c793cb0db74fb96d6a882}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.查出恶意主机的IP地址及连接的端口号

vol.py -f worldskills3.vmem --profile=Win7SP1x64 netscan

在这里插入图片描述

4.查询恶意连接的服务名

上一题我们看到恶意连接的pid是2588
vol.py -f worldskills3.vmem --profile=Win7SP1x64 pslist |grep 2588

在这里插入图片描述

看到父进程的ppid是3036,那我们就scvscan-----查找所有的恶意进程信息
vol.py -f worldskills3.vmem --profile=Win7SP1x64 svcscan |grep 3036 -C 10

在这里插入图片描述

5.查询主机名称

先查询注册表信息
vol.py -f worldskills3.vmem --profile=Win7SP1x64 hivelist
在查具体的信息
vol.py -f worldskills3.vmem --profile=Win7SP1x64 -o “0xfffff8a000024010” printkey
-o 后面跟的是内存地址

在这里插入图片描述

vol.py -f worldskills3.vmem --profile=Win7SP1x64 -o “0xfffff8a000024010” printkey -K “ControlSet001”
-K 后面跟要查的值
然后一直往下查就行了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.volatility常用命令

volatility -f 镜像 参数 命令
示例:volatility -f XXX.raw --profile=Win7SP1x64 pslist

常用命令

imageinfo    #查看镜像系统信息 使用对应版本的镜像,后面的参数使用–profile(两根横杠) --profile=Win7SP1x64

pslist 		#看完镜像直接查看这个镜像上有那些进程正在运行 pslist应该比较好理解就是进程的列表的意思。
psxview		#可查看一些隐藏进程
pstree 		#以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程

cmdscan		#查看镜像的历史命令,就是和linux中history差不多。
consoles	#这个会比上面那个更好一些,能看到指令的输入和输出。
cmdline		#此指令将会列出所有命令行下运行的程序
cmdscan		#提取内存中保留的 cmd 命令使用情况
dlllist		#显示每个进程的加载dll列表
netscan 	#获取到当时的网络连接情况
svcscan		#查看服务
modules 	#查看内核驱动
modscan/driverscan 		 #可查看一些隐藏的内核驱动
ShimCache				#来识别应用程序兼容性问题。跟踪文件路径,大小,最后修改时间和最后“执行”时间.

privs		#显示进程权限
envars		#显示环境变量

filescan	#查找文件,可搭配 grep | "xxx"   /  filescan | grep -E “png”

memdump -p [PID] -D 保存目录			#通过相应的进程能直接dump出相关的文件。
dumpfiles -Q [16进制位置] -D 保存目录	 #通过16进制位置dump出相关的文件。

editbox		#查看系统正在运行的编辑本
dumpregistry -D 保存目录  #导出系统的注册表
screenshot -D 保存目录	  #查看并导出屏幕的截屏【需要安装PIL库】
clipboard				#查看剪贴板数据,加一个-v可以导出相关的数据。
iehistory				#查看浏览器的历史记录

printkey -K "SAM\Domains\Account\Users\Names"	#查看用户名
printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"  #打印出最后登录的用户
hashdump/lsadump			#获取各个账号的MD5加密密码
hivelist				#获取注册表单元配置列表
#找出获取system 的 virtual 地址,SAM 的 virtual 地址,然后在使用hashdump -y SYSTEM_virtual -x SAM_virtual.  (通过hivelist找出用户)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

总结

以上就是今天要讲的内容,本文仅仅简单介绍了对Windows内存的取证方法,Linux的取证比较少见,volatility的使用,而volatility的功能还有很多,这篇文章仅供参考,要学的还有很多哟!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/556944
推荐阅读
相关标签
  

闽ICP备14008679号