关于内存与注册表
内存中的注册表项
当Windows操作系统启动时,它会将注册表的部分数据加载到内存中,以便系统和应用程序可以快速地访问这些信息。这些数据在内存中可以更快地被读取和修改,以便系统能够动态地调整其行为和配置。
系统性能和速度
将注册表数据加载到内存中有助于提高系统对配置信息的访问速度,因为内存的读取速度比硬盘快得多。这有助于加快系统的启动速度和应用程序的响应速度。
修改注册表内容
当用户或应用程序修改注册表时,这些更改通常会首先发生在内存中,随后才会被写回到硬盘中的注册表文件。这种设计可以提高操作系统的响应速度,并减少对硬盘的频繁访问,从而减少了硬盘的磨损。
数据同步
操作系统在合适的时机会将内存中的更改同步到硬盘上的注册表文件中,以确保数据的持久性和一致性。这也是为什么在关闭或重新启动时操作系统可能需要一些时间,因为它在将数据写回硬盘之前会等待一段时间。
总的来说,内存中保存注册表的一部分数据,这样做可以提高系统性能和响应速度。通过将某些注册表数据加载到内存中,操作系统和应用程序能够更加高效地使用和修改这些信息。
ps:查看自己电脑的注册表直接win+R 输入“regedit”
打开HKEY_LOCAL_MACHINE\SAM 路径--右击-- 权限 就能看到当前电脑的用户
例题
ctfshow--JiaJia-CP-1
问题
1.佳佳的电脑用户名叫什么(即C:\Users\{name})
2.最后一次运行计算器的时间?(格式为yyyy-mm-dd_hh:mm:ss,注意冒号为英文冒号)
思路
从JiaJia_Co.raw中识别系统版本
从注册表中获取计算机内有哪些用户
打印注册表中UserAssist相关信息,获取计算器程序最后一次运行的时间
解题过程
使用imageinfo插件,获取系统版本
vol.py -f JiaJia_Co.raw imageinfo
从imageinfo结果中可知,该内存镜像的系统版本为 Win7SP1x64
f1
使用hivelist插件,打印注册表配置单元列表
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 hivelist
从这里可以看到是jiajia
f2
也可以 过滤用户看到了是JiaJia
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 filescan |grep "Users"
f3
而注册表 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names 这个目录下保存着当前计算机中的所有用户,可以使用 printkey 插件,并用-K参数指定这个目录并打印
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 printkey -K "SAM\DOMAINS\Account\Users\Names"
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
在Windows中,HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
路径对应的是SAM数据库中的用户账户信息。SAM(Security Accounts Manager)数据库是Windows操作系统用来存储本地用户账户信息的重要组成部分。
一般来说,这个路径是不可见的,因为SAM数据库通常被Windows操作系统保护起来,不允许用户直接访问或修改。这是为了确保系统安全性和防止未授权的访问。即使你是管理员,也不能直接在注册表中看到或编辑这个路径。
发现除了Administrator用户和Guest用户之外,还有一个JiaJia用户,即为所求的佳佳的电脑用户名
获取进程信息
使用userassist插件打印注册表中UserAssist相关信息
跟踪在资源管理器中打开的可执行文件和完整路径,其中UserAssist保存了windows执行的程序的运行次数和上次执行日期和时间。
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 userassist
(我一开始用这个插件的时候一直报错,后来看一下是因为python的crypto三方库没安装好
解决方法Kali Linux下Volatility2.6常见问题疑难杂症-内存取证信息安全管理与评估_kali volatility-CSDN博客)
找到我们的计算器进程
也可以使用timeliner插件,最大程度提取信息,创建内存中的各种痕迹信息的时间线,将所有操作系统事件以时间线的方式展开,并用管道符和grep命令过滤出calc.exe
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 timeliner | grep "calc.exe"
这里需要注意一点:查找到的最后一次运行时间后面是UTC+0000,这是位于0时区的时间,而我们北京时间是东八区,即UTC+08:00,故需要在12:15:47基础上加8个小时,得到 20:15:47
根据题目要求格式化flag为: ctfshow{md5(JiaJia_2021-12-10_20:15:47)} -> ctfshow{079249e3fc743bc2d0789f224e451ffd}
JiaJia-CP-2
题目
1.佳佳在公司使用了一款聊天软件,请问此软件的版本号为?
2.佳佳在网页上登录了自己的邮箱,请问佳佳的邮箱是?
思路
先判断出佳佳在公司使用的是什么聊天软件,再导出该软件相关的文件或者程序,或许可以获得该软件的版本号
解题过程
我们去刚刚UserAssist插件显示的
看哪个是聊天软件
看了一下很有可能是这个软件
而且一般这种软件会在桌面上
根据这个路径可以支撑我们的判断
要知道版本信息
需要导出这个exe文件
vol.py -f JiaJia_Co.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000013dce9f20 -D ./
这里的虚拟地址是在这里找
生成了img镜像文件
拖到win下
改后缀名为exe右击属性
即可看到版本信息
——————————且听下回分解——————————
参考【CTFshow 电子取证】 JiaJia-CP-1-2-3(图文详解)_ctf.show中jiajia-cp-1 解fllag-CSDN博客