分类 其他 下的文章

大多数时候,取证要解决的无非是弄清楚什么人在什么时间在什么地方做了什么事情,也就是4W问题(Who,When,Where,What)。所以时间在取证领域是非常重要的问题。

计算机中是怎么存储时间的呢?首先我们来看看Windows的安装时间。

以Windows 11为例,要查看Windows系统安装时间,我们可以打开设置,在“系统”→“系统信息”中可以看到,当前这台电脑的系统安装时间是2023年3月31日。如下图所示。

图1

通过上述方法,我们可以得知这台电脑上当前操作系统的安装日期,那么能不能得知具体的安装时间呢?

按Win+R快捷键打开“运行”窗口,输入并执行“cmd”打开命令提示符,或输入并执行“PowerShell”打开PowerShell。我们也可以按Win键或点击开始菜单图标,然后直接输入“cmd”或“PowerShell”按屏幕提示打开命令提示符或PowerShell。

在命令提示符或PowerShell中,我们执行“systeminfo”,即可查看系统的各种信息,其中就包含操作系统的安装时间。如下图所示,此电脑的系统安装时间是2023-03-31 11:14:26。

图2

那么,systeminfo命令又是怎么知道系统安装时间的呢?其实系统安装时间保存在注册表中。

我们按Win+R快捷键打开“运行”窗口,输入并执行“regedit”打开注册表编辑器,然后在左边的目录树展开到“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion”,可以看到右边有个名称为“InstallDate”的记录,对应的值为0x64265012(1680232466),即用十六进制表示为64265012,对应的十进制值为1680232466。如下图所示。

图3

我们可以用PowerShell的相关命令来解析上图的时间。

按Win+R快捷键打开“运行”窗口,输入并执行“PowerShell”打开PowerShell。在PowerShell中执行“(Get-Date -Date "1970-01-01 00:00:00Z").toUniversalTime().addSeconds(1680232466)”,即可得到可读格式。如下图所示。

图4

上述PowerShell命令,用途是显示在UTC时间1970年1月1日00:00的基础上加上1680232466秒的时间,各函数的具体功能可以很方便地在搜索引擎中检索到。考虑计算机当前的时区是北京时间(UTC +8),上述PowerShell命令解析的时间正好与systeminfo命令得到的系统安装时间一致。

通过上述命令可以得知,注册表中保存的Windows系统安装时间实际记录的是自1970年1月1日00:00以来经过的秒数。其实,这一时间格式就是在计算机中广泛使用的Unix时间戳。

在计算机中,绝大多数时间格式都是类似的原理:①选定一个时间起点;②确定一个时间间隔单位;③记录从时间起点以来经过的时间间隔数量。

我们再看看WPS表格(Excel相同)中的时间,它们同样符合上述规律。

我们在A1单元格中输入当前的时间,例如“2023-04-16 18:35”,输入完按回车键后,我们可以注意到A1单元格中的内容自动变成了“2022/4/16 18:35”,重新点击A1单元格,则可以在编辑栏中看到“2022/4/16 18:35:00”。显然,WPS已经将我们输入的“2023-04-16 18:35”识别为了时间类型的数据并以默认的格式显示。如下图所示。

图5

接下来,右击单元格A1选择“设置单元格格式”,或选择A1单元格后直接按Ctrl+1快捷键设置单元格格式。我们可以注意到当前数字格式为“自定义(yyyy/m/d h:mm)”。我们将其更改为“常规”,可以发现A1单元格中的数据已经变成了“45032.7743055556”。如下图所示。

图6
图7

我们将当前文档保存为“工作簿1.xlsx”,然后用7-Zip等软件打开(也可以将扩展名改为“zip”然后双击打开)。找到“xl”目录下的“worksheets”,此目录中保存着各工作表中的文字内容。如下图所示。

图8

找到“worksheets”目录下的“sheet1.xml”,打开后即可找到刚刚A1单元格的数据“45032.7743055556”。如下图所示。而刚刚A1单元格默认显示的是2023年4月16日18时35分这一日期。这说明,在xlsx文件内部,日期是用数字来记录的。

图9

我们继续测试。

、打开“工作簿1.xlsx”,在A2单元格输入“45031.7743055556”,正好与A1单元格的数字小1。接下来选择A列(A:A),右击,选择“设置单元格格式”。将数字格式设置为“自定义”,并手工输入“yyyy-MM-dd hh:mm:ss”。如下图所示。

图10

设置显示格式后,我们可以发现,A2单元格的时间为“2023-04-15 18:35:00”,正好比A1单元格早一天。如下图所示。

图11

上述实验说明xlsx文件中的时间,基本间隔单位为1天。那么,Xlsx文件中的“时间起点”又是什么时候呢?

我们在A3输入“0”、A4单元格输入“1”,可以发现A3单元格显示的是“1900-01-00 00:00:00”,A4单元格则是“1900-01-01 00:00:00”,如下图所示。

图12

所以,xlsx文件中时间的“起点”是1899年12月31日00:00:00。

第八届全国取证赛马上就要开始了,不少人都在摩拳擦掌积极备赛。今天突然有人问我Linux 软RAID的相关问题,我直接推荐UFS Explorer RAID Recovery,但试用版无法导出大文件(其实可以变通地先导出分区镜像,然后用其他工具加载并分析)。由于日常使用X-Ways Forensics更多一些,便尝试了一番,发现X-Ways其实处理软RAID也挺方便的。

Linux下的软RAID一般是Mdadm(全称Multiple Disk and Device Administration),2017年取证赛和2018年取证赛的团队赛中均有涉及,下面以2017年为例,介绍一下X-Ways的详细处理步骤。

三个镜像文件分别为“efc-hd1.E01”、“efc-hd2.E01”、“efc-hd3.E01”,大小分别为21.5GB、21.4GB、21.5GB。
X-Ways中新建案例,添加三个镜像文件。如图1所示。

图 1 X-Ways加载镜像后识别出了RAID分区

X-Ways没有直接解析出RAID中的分区,但识别出了软RAID(MD RAID Container)。对于每个镜像,X-Ways均列出了RAID头及RAID容器,并对RAID头虚拟分区添加了RAID信息注释(见图一名称列的黄色图标),注释中包含RAID的UUID、RAID类型、磁盘数量、条带大小等信息。

图 2 X-Ways从镜像中识别出的RAID信息

双击打开每个镜像中的MD RAID Container分区,保证这些分区处于活动状态。此时这些分区中的数据暂时还无法查看。
点击主菜单“Specialist”→“Reconstruct RAID System”,如果当前使用普通权限打开的X-Ways,会弹出需要管理员权限的提示,可忽略。

在RAID设置界面,组件选择各镜像中的MD RAID Container分区,RAID头大小保持默认(0)。通过图2 X-Ways注释信息可知RAID类型为RAID 5 (backward dynamic),条带大小为1024。如图3所示。

图 3 设置RAID参数

点击“OK”后,X-Ways 目录浏览器(Directory Explorer)中会多出一个磁盘,里面有三个分区,其中分区1为LVM2容器,分区2、分区3存在于LVM2容器中,大小分别为25.1GB、27.0GB。如4所示。

图 4 X-Ways解析后的RAID分区

此时X-Ways已经成功解析了RAID,但双击分区2、分区无法正常打开,尝试将识别的分区添加到案例,提示“Component partition cannot be remembered”,不知道是不是Bug。如图5、图6所示。

图 5 X-Ways无法解析RAID中的分区

图 6 X-Ways报错

分别双击打开RAID中的分区2、分区3,然后点击主菜单中的File→Save As,将整个未识别的分区保存为单个文件,并作为镜像重新添加到案例,即可查看其中的内容。如图7所示。

图 7 将分区保存为DD镜像后重新加载

总结一下要点:
1、X-Ways的RAID重组功能,数据源只能是磁盘或分区(可以是本地设备,也可以是X-Ways解析得到的),不能直接加载镜像。
2、对于软RAID,数据源应该是RAID容器分区,而不是磁盘。
3、软RAID参数,可以从X-Ways解析的RAID中查看。
4、对于本案例,X-Ways无法直接解析RAID中的两个卷(Volume)。RAID中看起来是两个卷,但是单独保存后重新加载,发现实际是分区(Partition)。

如今计算机配置越来越高,但再高的配置,也敌不过软件对硬件无止境的消耗,特别是内存和CPU,取证分析软件就是一个典型的例子。例如EnCase对于小型案例推荐的硬件配置是Core i5的处理器和16GB内存,对于同时处理多个大型案例的场景,推荐的硬件配置是双处理器(Core i7或Xeon E7系列)和128G内存。

内存不够,添加内存即可立竿见影,另一方面机械硬盘升级为固态硬盘也可以缓解内存有限造成的体验上的不足。但一旦CPU能力不足,软件轻轻松松即可耗尽CPU资源,达到100%的占用,使得计算机异常卡顿,甚至连鼠标键盘操作都无法及时响应。对于程序CPU占用率过高的问题能否解决呢?答案是肯定的!

下图是使用Passware Kit Forensic破解文件密码时的截图,通过任务管理器可以看到 Passware Kit Forensic占用了93.6%以上的CPU资源,所有程序加起来则占用了CPU 100%的资源,系统操作起来比较卡顿。

图1

选中CPU占用最高的Passware Kit Forensic进程,右击,选择“转到详细信息”。
图2
跳转到详细信息视图后,Passware Kit Forensic相关进程已经被选中并高亮显示,右击,选择“设置相关性”。
图3
在弹出的“处理器相关性”窗口,默认所有CPU处理核心都是被选中状态,即此进程可以使用CPU的每个核心。我们取消勾选其中的一个核心,例如CPU3。
图4
现在在任务管理器中可以看到Passware Kit Forensic的CPU占用率已经下降到80%以下了,由于有足够的CPU资源响应鼠标键盘操作及其他任务,系统流畅了不少。
图5
简单总结——任务管理器中限制进程使用的CPU核心数量即可防止单个进程占用太多的CPU资源,从而避免因CPU资源极度紧张造成的系统卡顿。


本文于2019年9月18日发布于本博客及微信公众号“取证杂谈”、“取证神探”。

CCFC2018海报

一年一度的计算机取证盛会又要开始了,第十四届CCFC计算机取证峰会将于2018年9月27日至29日在古都西安举行。

CCFC2018邀请函
CCFC2018邀请函
CCFC2018邀请函
CCFC2018邀请函

本届会议主办方是公安部第三研究所,主题为“电子数据勘验、取证分析和司法鉴定”,将结合国内执法部门关注的电子数据现场勘验、针对不同操作系统设备的取证分析、密码破解等方向进行研讨。参会嘉宾可在会议中了解并掌握到国内电子数据取证与信息安全领域的最新技术和动态。

每年CCFC计算机取证峰会都会邀请国内的行业专家学者一同交流学习,今年也不例外。

今年的会议的分享嘉宾及议题介绍如下:

CCFC2018议题
CCFC2018嘉宾介绍1
CCFC2018嘉宾介绍2
CCFC2018嘉宾介绍3
CCFC2018嘉宾介绍4
CCFC2018嘉宾介绍5
CCFC2018嘉宾介绍6
CCFC2018嘉宾介绍7
CCFC2018研习会精彩预告1
CCFC2018研习会精彩预告2
CCFC2018研习会精彩预告3
CCFC2018研习会精彩预告4

和往年相比,今年的CCFC会议有以下特色。

执法部门专场和企业专场

本届峰会首次将研习会设为两个分会场,一个是执法部门专场,另一个是企业专场。

执法部门专场是专为体制内人员设置,着重讲公检法在电子数据司法鉴定中的案例和难题;企业专场则是专为相关行业的从业者所设,将会在云取证、微电路数据恢复等方面分享最新最前沿的取证技术研究和新发现。

公安三所专家评析司法鉴定能力

随着大家对CNAS认可工作的重视,越来越多的机构每年都会参加能力验证。公安三所的专家将在本届峰会中分享司法鉴定能力验证的案例。作为国内两个电子数据鉴定领域的能力验证提供者之一,每年公安三所组织的能力验证活动都会吸引大量的机构参与。本届峰会上,针对能力验证活动,公安三所专家与大家面对面地答疑解惑,非常令人期待!

2015年成都,2016年的上海,2015年的武汉,参加每年的CCFC会议已经成为了我的一个习惯。今年,千年古都西安见!

CCFC峰会第一天主会议是免费的,仅第二天第三天的研习会收费。峰会报名方式如下:

  • 在线报名: 点我报名
  • 电话报名:郑春燕 15271930998;
  • 微信报名:关注微信公众号“数据安全与取证”(Cflab_net),自动发送报名链接。