如何执行剪贴板取证:ActivitiesCache.db、内存取证和剪贴板历史记录
2022-12-8 20:1:40 Author: 网安之道(查看原文) 阅读量:44 收藏

在调查过程中,威胁参与者通常会将数据复制粘贴到剪贴板——通常是凭据、PowerShell 命令或 IP。对于恶意软件,信息窃取者、RAT 和键盘记录器通常会监控剪贴板中存储的内容(因为它可能包含加密货币助记词、密码和有趣的数据)。

由于驻留在易失性内存中的数据的瞬态性质和设置先决条件,事件响应分析师也很少对剪贴板数据进行取证检查。但是,随着最新 Windows 更新的出现,根据系统的配置方式,历史剪贴板数据可能会存储在系统上以供分析。下次分析人员对系统进行取证分析时,应该考虑这一点。

分析剪贴板数据时的取证注意事项:

威胁参与者何时将数据复制到剪贴板?

威胁参与者从哪里将数据复制到剪贴板?

数据是粘贴过(在同一系统上)还是只是复制过?

需要剪贴板取证的场景:
为了证明分析剪贴板伪影的重要性——以下是一些现实生活中的例子,了解剪贴板数据可能有助于参与:

RDPCLIP.exe 正在执行的迹象,因为它支持在 RDP 会话期间使用剪贴板

AnyDesk 和 TeamViewer 记录引用剪贴板数据的勒索软件活动

商品组和 APT 组利用的恶意软件(通常是 RAT、信息窃取程序或键盘记录器)与 OpenClipboard() 和 GetClipboardData() 等 API 调用挂钩。

威胁参与者可能在会话期间处理凭据/命令的其他事件响应活动
这篇博文探讨了三种取证检查剪贴板数据的方法——第一种方法是磁盘上的工具,第二种方法是对 RAM 进行取证检查,第三种方法是驻留在磁盘上存储数据的文件夹。

检测方法一:ActivitiesCache.db

自 Windows 10 版本 1803 以来,这个工具 ActivitiesCache.db 已开始记录剪贴板活动。(如果不熟悉此工具,它在调查期间非常有用,因为它跟踪程序执行等几件事。它甚至会告诉详细说明使用notepad.exe 程序打开名为“file.txt”的文件的位置)。

第 1 步:检查系统是否启用了剪贴板历史记录和同步功能

此工件记录剪贴板数据的先决条件取决于检查了两个设置的系统:

剪贴板历史记录已启用
跨设备的剪贴板同步
可以在下面看到一个截图:

第 2 步:找到要分析的数据库文件

工件的位置在以下目录中:

%AppData%\Local\ConnectedDevicesPlatform\<用户配置文件>\

此文件夹中的三个文件都可以作为调查的一部分进行分析:
ActivitiesCache.db(我们可以分析的数据库文件)
活动缓存.db-shm
ActivitiesCache.db-wal(也可以分析数据的预写日志)

当数据库加载到数据库浏览器中时(我使用 DB Browser for SQLite)检查“SmartLookup”视图。否则,仍然可以在名为“ActivityOperation”的表中看到列名为“ClipboardPayload”的数据。

我们最感兴趣的取证信息是:
StartTime(纪元时间)– 数据首次复制到剪贴板的时间

ExpirationTime(纪元时间)——数据将从ActivitiesCache.db中删除的时间(大约12小时)

ClipboardPayload – 剪贴板内容的 Base64 编码字符串

有效负载- 此字段告诉剪贴板数据是从哪里复制的!

ActivityType - 类型 10 表示数据驻留在剪贴板中,类型 16 表示数据是否被复制或粘贴

对于这篇文章,我创建了一个记事本并在其中写了一些文本,然后我继续执行“复制”操作(也就是将某些内容复制到剪贴板)。使用剪贴板数据填充此表所需的只是“复制”操作。

第 3 步:查找任何显示剪贴板活动的条目

关于剪贴板数据有两种活动类型需要注意——类型 10(显示剪贴板操作正在发生)和类型 16,它详细说明了它是“复制”还是“粘贴”操作。

过滤类型 10,我可以看到我的系统上发生了几个剪贴板活动:

第 4 步:过滤相关条目并确定剪贴板数据的复制位置

通过按与调查相关的纪元时间(开始时间列)进行过滤——我能够隔离一个相关的剪贴板活动。不要忘记过滤并注意“有效负载”列 - 可以区分剪贴板数据从中复制的确切文件!

在下面的屏幕截图中,可以看到我复制的数据来自我桌面上名为“asdasdasd.txt”的文件。

第 5 步:确定复制到剪贴板的内容

“ClipboardPayload”列中的数据只是 base64 编码。对此进行解码将显示存储在剪贴板中的内容。如你所见,我给自己写了一封情书。

第 6 步:确定数据是否曾经粘贴回系统

通过按类型 16 过滤“ActivityType”,将能够观察是否存在“粘贴”操作——或者数据是否仅被复制。正如你在我的例子中看到的那样,数据只是“复制”的。

检测方法二:内存取证

剪贴板数据存储在 tagCLIPDATA 结构中,可以通过内存分析拉取。数据将始终为文本格式。

强调从内存中提取剪贴板数据的技术的原始白皮书是这份出色的白皮书“从内存中提取 Windows 剪贴板”,作者也在数字取证研究会议上发表了该白皮书。

提取剪贴板数据的逻辑在于查找 tagCLIP 结构,然后将“hData”字段与其对应的 tagCLIPDATA 值相关联。“hData”字段对应于 tagCLIPDATA 对象的句柄值。幸运的是,Volatility 已经将其预先构建到一个名为“剪贴板”的插件中。这是一个使用此功能的示例:

检测方法三:剪贴板历史文件夹

最后,如果启用了剪贴板历史记录,将创建一个文件夹路径来存储剪贴板数据。这个位置是:

%AppData%\Local\Microsoft\Windows\Clipboard

数据将存储在 JSON 中,并将显示与时间戳一起复制的数据。要查看的两个文件夹位置是:


pinned

历史数据

需要注意的是,使用此工具有一些限制:
剪贴板历史将仅存储每个文本小于 4MB 的剪贴板文本
剪贴板历史也将保存 HTML 和位图(不仅仅是文本),而 ActivitiesCache.db 只存储文本格式
剪贴板历史将仅存储 25 个条目
每次重新启动系统时都会清除剪贴板历史记录


文章来源: http://mp.weixin.qq.com/s?__biz=MzIxMDI2ODM1OA==&mid=2651501935&idx=1&sn=d3301bdef4cb5012463d580611e30959&chksm=8c992cc6bbeea5d05e7d3060a8e4938445bf6418db8a930e3e37af7d132c3b5480cfdf22526b#rd
如有侵权请联系:admin#unsafe.sh