当Windows说谎时
等等,什么?Windows会说谎?我相信是的…
我处理过一个案件,在检查Windows安装日期时发现它比我们收到系统的时间早几天。太好了…用户是否在移交笔记本电脑前重新格式化硬盘并进行了全新安装?他们是否重新安装了操作系统?这已经不是第一次在事件发生后(有意或无意地)重建笔记本电脑或系统了。
检查操作系统和安装日期等基本信息可以帮助检查员优先处理需要检查的系统,并核查证据破坏问题。如果你有20个系统需要检查,而操作系统的安装日期在事件发生日期之后,你可能想先关注其他系统。在民事或刑事案件中,在你收到证据前不久的安装日期可能会引发一些警示。
既然我们已经确定了操作系统安装日期的重要性,那么有一个注册表键可以获取这个信息:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion。RegRipper有一个很好的插件,名为OSVersion,它不仅从注册表键中提取操作系统版本,还提取安装日期。在我的测试系统上运行这个插件,我得到了以下输出:
|
|
什么??安装日期是2017年2月3日??两周前??因为这是我的系统,我知道我没有在2月3日安装Windows 10。我从2015年推出以来就一直使用Windows 10家庭版!
为了彻底起见,我验证了日期解析是否正确,并查看了注册表中的原始数据:
安装日期是0x5894a8b7,即UTC时间2017年2月3日星期五15:58:47。
好吧,最后一次检查…运行systeminfo命令,它清楚地显示"原始安装日期"为2017年2月3日上午8:58:47。我是UTC-7时区,所以这个信息与我上面的结果匹配。
好吧——Windows,我觉得你在对我说谎。我很受伤。但更糟糕的是,经过更多挖掘,我发现你在这个所谓的安装过程中篡改了我的日志。
我有一个在所谓的安装日期2017年2月3日之前的系统快照。注意事件日志的创建日期——2015年12月12日,大小为20MB:
现在我看一下当前事件日志的创建日期和文件大小。注意创建日期与这个所谓的安装日期相同,即2017年2月3日。不仅如此,我的日志文件小得多,有些大约2MB:
当我打开日志时,正如预期的那样,2017年2月3日之前没有任何条目,第一个条目与这个所谓的安装日期匹配:
我好奇是什么可能导致了这个情况。由于Windows更新以前曾导致过时间戳问题,比如USB设备,我检查了Windows更新历史。果然,有一个Windows更新,“功能更新到Windows 10,版本1607"在2017年2月3日运行。这个日期与所谓的安装日期匹配:
由于我的更新历史包含在2017年2月3日运行的多个更新,我想检查其他一些Windows 10系统,看看能发现什么。我大致知道这两个系统何时安装了操作系统,两者都列出了不正确的安装日期,以及在同一时间运行的功能更新v.1607。
系统1(Windows 10家庭版) 注册表安装日期:2016年9月27日11:22:39 事件日志创建日期:2016年9月27日11:11 功能更新到Windows 10,版本1607:2016年9月27日
系统2(Windows 10专业版) 注册表安装日期:2016年10月1日3:47 日志创建日期:2016年10月1日3:42 功能更新到Windows 10,版本1607:2016年10月1日
所以,我的工作假设是,功能更新到Windows 10,版本1607正在更新Windows安装时间并删除日志。
这可能只是一个语义问题…也许"操作系统安装日期"实际上是指——最新的主要版本更新???如果是这样,这个工件可能会被误解。
为什么这很重要?
可能错误地得出证据破坏的结论 想象一下,你正在处理一个民事案件,对方应该制作并移交一台笔记本电脑。如果你看到安装日期是最近的,你可能会错误地得出结论,认为他们在移交系统前刚刚安装了操作系统。或者,在事件响应中,你可能会错误地认为操作系统刚刚安装,可能找不到太多有用的信息。
你丢失了事件日志 事件日志可以构成检查的关键组成部分。在我处理的案件中,这个更新就在我收到笔记本电脑之前发生。事件日志中只有大约一天的数据。是的,可能有备份,或者有SIEM收集它们,但这只会使检查更加复杂。
其他工件??? 这些只是我迄今为止发现的两个不一致之处…可能还有更多…
我想通过设置虚拟机并跟踪更新来更正式地测试这一点,以观察会发生什么,然而,基于我查看的系统,我认为Windows在说谎。
与往常一样,将发现与多个工件关联起来可能有助于确定这个安装日期是否准确。
只是注意一下,还有其他需要意识到的事情——在许多企业环境中,操作系统安装日期可能不正确,因为使用克隆/镜像来推送机器。然而,我不认为这是Windows在说谎,因为日期将反映克隆前原始系统的安装日期。