Windows内存取证思路-----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}  

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找出用户)

总结

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

🍬 博主介绍
👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【edusrc漏洞挖掘】 【VulnHub靶场复现】【面试分析】
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋

🍬 博主资源
🎉需要如下资料和培训的可加微信和知识星球(前50名为邀请嘉宾) 知识星球号:9081196🎉
1、全国职业技能大赛——信息安全管理与评估WP+环境
2、全国职业技能大赛——司法技术赛项WP+环境
3、CTF最新资料+相关工具(圈子交流)
4、SRC漏洞挖掘的大量原创报告

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值