通过Windows 时间线遥测的用户行为

admin 2021年12月11日13:19:59评论116 views字数 2055阅读6分51秒阅读模式

        在分析“用户如何使用他们的计算机”这个主题时,我最初的想法是我必须以某种方式查询事件日志或利用 Windows 事件跟踪 (ETW)。在几次不成功的尝试之后,我发现这可能不是要走的路。要么误差太大,要么需要额外的特权。在深入研究 Windows 之后,我开始研究有关用户行为的可用遥测数据,并发现了 Windows Timeline(时间线)功能的一些非常有趣的东西。如果您不熟悉 Windows 时间线,这是 Windows 10 中引入的内容,会显示计算机近期的活动。您可以单击“开始”菜单中的“任务视图”,然后向下滚动查看。

        时间线的图标如下所示:

通过Windows 时间线遥测的用户行为


        当向下滚动打开的应用程序列表时,看起来像这样:

通过Windows 时间线遥测的用户行为


        此信息收集通过打开“在此设备上存储我的活动历史记录”来控制,该选项位于“设置”>“隐私”>“活动历史记录”下。根据我的研究,这似乎在 Windows 中默认启用。这也可以通过编辑文件 CDPGlobalSettings.cdp 手动配置,位于

C:Users%username%AppDataLocalConnectedDevicesPlatform

        要启用该功能,请将 PublishUserActivity 设置为 0 并重新启动系统。如果您作为攻击者登陆没有启用此功能,但你想稍后收集历史数据,是可以这么做的。

        但是关于如何利用此功能……数据在哪里?测试研究发现,时间线数据存储在名为“ ActivitiesCache.db ”的 SQLite 数据库中,该数据库位于

C:Users%username%AppDataLocalConnectedDevicesPlatform<GUID>

        在使用 SQLite 浏览器(https://github.com/sqlitebrowser/sqlitebrowser)查看数据库内容并进行一些在线搜索后,我偶然发现了 Kacos2000 的一些出色研究。查看他们的存储库,我找到了有关 Windows 时间轴的所有问题的答案。他们还创建了许多工具并将它们发布在 GitHub 上,可以在这里找到 https://kacos2000.github.io/WindowsTimeline/。PDF 文档(https://kacos2000.github.io/WindowsTimeline/WindowsTimeline.pdf)非常有帮助。感谢 Kacos2000,感谢他们对该主题的出色研究,并使我免于花费大量研究时间。

        下图为:使用 SQLite 在 JSON 数据中找到的应用程序名称

通过Windows 时间线遥测的用户行为


        我决定重新利用为我自己的最终目标收集的大量研究。我首先使用 windowstimeline.exe 应用程序来更详细地探索数据。该工具进行一些解码 (base64) 并解压 JSON 字段,使信息更易于查看。探索数据显示了许多有趣的列。我发现最有用的列是App_Name、DisplayName、DisplayText、Description、AppActivityID、Content、ActivityType、Platform、StartTime、EndTime、Duration、TimeZone、Payload 和 ClipboardPayload。

        WindowsTimeline.exe 视图:

通过Windows 时间线遥测的用户行为


        存储库中还有一些 PowerShell 脚本,允许以脚本方式从数据库中提取信息。由于 PowerShell 脚本不能满足我的所有要求,我最终用 Python 编写了一个内部 TrustedSec 版本,该版本可以从数据中输出我需要的内容。我通过数据库创建一些额外的报告和有趣的方式可视化用户行为的各种图表。我还没有发布代码,但我会分享我的报告的外观并提供我生成的图表的预览。现在还处于内部构建阶段,但我想分享一些这些知识,以便其他人也可以从中受益。


部分报告:

通过Windows 时间线遥测的用户行为

 每个应用程序的活动报告


通过Windows 时间线遥测的用户行为

应用程序启动时间和参数


        我的第三份报告显示了用户当天的第一个和最后一个时间戳条目。这有助于了解用户的工作时间。

通过Windows 时间线遥测的用户行为

每天的第一个和最后一个时间戳


部分图表:

通过Windows 时间线遥测的用户行为

条形图中显示的top 10 名使用过的应用程序


通过Windows 时间线遥测的用户行为

饼图中显示的前 10 个最常用的应用程序


        我还想要显示用户最活跃的时间,以了解他们的电脑工作时间。经过大量探索,我为一周中的几天和一天中的几个小时创建了一个热图,显示为显示空闲和活动时间的条形图。

通过Windows 时间线遥测的用户行为

活动和空闲时间


通过Windows 时间线遥测的用户行为

用户活动热力图

        这个课题还有很多额外的信息要分析。例如能够列出当前正在创建的所有文档(用于后门/持久性目的),数据就在那里并且可以轻松使用,所以也希望大家集思广意。我从这项研究中获得是找到了一种相当安静的方式来检索用户行为并收集有助于未来参与的有用数据。令我惊讶的是,用户活动实际上存储在一个可读的 SQLite 数据库文件中。

本文始发于微信公众号(军机故阁):通过Windows 时间线遥测的用户行为

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月11日13:19:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过Windows 时间线遥测的用户行为http://cn-sec.com/archives/467608.html

发表评论

匿名网友 填写信息