WhatsApp取证:解密数据库并提取Android设备上已删除信息

3319

WhatsApp是世界上最受欢迎的即时通讯工具之一,每月全球有十多亿的WhatsApp活跃用户使用它交换各种信息。

由于WhatsApp将用户的每次对话都进行了端到端加密,再加上Whisper团队的匿名社交技术,使得这个数字通信的隐私保密行大大提升,即使信息被成功拦截了,通信的内容也不会泄露

执法部门为了调查某个嫌疑犯,会对其通信记录进行取证,但这明显违反了公司的安全隐私标准和规则,WhatsApp肯定不会配合,所以调查人员要想得到其中至关重要的犯罪信息,就必须对WhatsApp取证

这也是为什么WhatsApp目前已成为移动取证热门领域的原因,然而,众所周知,保密技术不断发展的当下,对智能手机的取证并非那么容易。调查人员在取证过程中将会遇到各种各样的困难,例如:数据库加密、系统安全防火墙墙、粉碎删除的消息等。

因此,在本文中,我们将要讨论如何解密被加密过的WhatsApp数据库,以及如何绕过WhatsApp加密,恢复被删除的WhatsApp消息

f634eb45c723223b798e5cab7e9586cc.jpg

如何解密被加密过的WhatsApp数据库

和许多其他智能手机APP一样,WhatsApp也将数据存储在SQLite数据库文件中。对于Android设备来说,WhatsApp有两个最重要的数据库,即:包含聊天记录的msgstore.db,以及包含联系人列表的wa.db。

这些数据库文件很容易被取证人员所掌握,因为WhatsApp具有备份的功能,它能够在SD卡创建数据库备份,无需root权限就能够访问。

然而,对于执法调查人员而言,他们面临的一个严重的问题就是WhatsApp不断在升级更新的安全措施,例如WhatsApp的数据库被加密后,就不能直接进行分析。聊天记录,消息和通话记录则使用了行业标准的AES-256加密,除此之外,照片和视频等未加密的媒体文件,也把加密从Crypt5,Crypt7,Crypt8更新为了Crypt12

d1e938dcd7b823e9b207732e64e3e44e.jpg

那么,我们将如何解密加密的WhatsApp数据库呢?最重要的一步是获取密码密钥。

密码密钥是用户第一次创建时,和WhatsApp备份一同产生的,并且,密码密钥永远不会存储在云中,而是仅仅保存在手机中,并且每台智能手机的密码密钥都是唯一的。所以,为了解密一个加密数据库,分析人员就必须首先从创建备份的设备中提取密码密钥

密钥可以在以下的位置找到:

userdata/data/com.whatsapp/files/key

6a40348faac935aa0e5fde71a4bd0dfa.jpg

在这里,我们要提一下中国的SalvationDATA(效率源)取证工具,SalvationDATA自主可控,智能化高、操作方便、提取功能强、高效快捷、不伤害存储设备,在海外取得了8项欧盟CE认证、美国FCC认证。

如何绕过WhatsApp加密措施

但是,如果执法调查人员没有获得设备的root权限,那么获取密码密钥文件将是一件很困难的事情。因此,我们还将讨论如何绕过WhatsApp的加密措施,换句话说,就是要如何在没有拥有root权限的情况下提取WhatsApp数据

由于密码密钥文件和未加密的数据库始终存储在WhatsApp的文件夹中,如果调查人员能够得到这些文件,他们就可以查看该设备上的所有WhatsApp通信历史记录。所以唯一的问题是,他们只有获得root权限才能直接访问这些文件。

在没有获得root的情况下提取WhatsApp数据大致有以下两种方法:

一、系统备份和恢复

第一种方法,是利用Android系统的备份和恢复功能,许多Android手机会允许用户使用内置的系统应用程序来创建备份。以这种方式创建的备份文件会存储在SD卡中,并且一般不会进行加密。因此,这对执法调查人员而言,无疑是一种访问WhatsApp历史通讯记录的简单方法。

下图显示的就是使用OPPO智能手机创建WhatsApp备份的例子,用户可以在工具中找到备份还原,然后创建新的备份,并记住选择WhatsApp。

fff2ea17ae29e21f3aba83c083cfd478.jpg

然后,用户可以在手机的SD卡上找到WhatsApp的备份文件,该备份将包括所有未加密的数据库和WhatsApp的密钥。现在,用户所要做的就是使用移动取证工具来对数据库进行分析了。

ede11fb37c9479403475ce86bb41ad6f.jpg


二、降级备份(Downgrade Backup)

另一种方法是,将WhatsApp应用程序降级到没有备份加密功能的版本,WhatsApp v.2.11.431是没有强制备份加密的最后一个版本。所以关键是在不删除用户数据的情况下将WhatsApp降级到v.2.11.431,然后使用旧版本的WhatsApp创建备份文件并提取数据库

不过,这个过程需要专业的技能,并有永远丢失数据的风险。因此强烈建议使用专业的取证工具来进行降级。

0ebba146dfeb79b9dd91657d3db37cda.jpg

如何恢复已删除的WhatsApp消息

现在,我们已经知道怎样从智能手机中提取到WhatsApp的数据库文件了,接下来让我们继续探讨一下如何恢复已删除的WhatsApp消息?看看如何在Android及iOS设备上使用该数据库文件来恢复已被删除的WhatsApp消息记录。

WhatsApp用户可以有两种方式来删除消息,可以使用clear聊天按钮逐个删除,或是使用delete聊天按钮一次性删除消息。根据我们的测试,用上述任何一种方式删除的消息都可以使用下面的方法进行恢复。

872e505d30032e9543a59e5a54b48335.jpg

正如前面我们介绍过的那样,WhatsApp使用SQLite数据库来存储它的消息。但与Android不同的是,iOS会将所有相关的WhatsApp数据存储在一个名为ChatStorage.sqlite的数据库中。这些数据库文件通常是带有“-wal”字样后缀的缓存文件。

通常在大多数情况下,这些缓存文件的大小为0,如果不为0,缓存文件可能包含尚未存储在数据库中的重要数据。这种情况必须小心处理,因为如果我们将缓存文件置于无人看管的位置,存储于其中的信息将会被覆盖永久丢失。

82d943163ed5cddef1f516e1e07da988.jpg

根据分析,WhatsApp能够正常访问的消息存储在msgstore.db中,而被删除的消息则存储在msgstore.db-wal中,它是消息存储的缓存文件。在把消息保存到真正的数据库之前,WhatsApp会将它先存储在缓存文件当中。

有趣的是,缓存文件有时候甚至比数据库本身的文件还要大。这是因为一条消息只能作为一条记录存储在数据库中,而高速缓存文件中却没有这样的限制,一条消息可能同时存在多条记录,这就使得恢复被删除的WhatsApp消息成为可能。

我们用一条测试的消息做示范,可以看到在用户删除它之后,消息的记录通常也会从msgstore.db的数据库文件中被删除。

2f8a136ca6190f5a9869158493fb0db7.jpg

但在实际上,这条被删除的消息可能仍然存储在缓存文件msgstore.db-wal中。下图就显示了该条消息被删除前后所发生的一些变化,我们可以看到,在消息被删除后,消息的数据仍然保留在缓存文件中,甚至偏移位置也没有发生改变。

75a5aa9703e7ebaebadab0de38d04497.jpg

上述解决方案已被证明是一种高效可靠的提取已删除的WhatsApp数据的方式,这是恢复删除消息和清除聊天记录的完美解决方案。

上一篇

10月份150余名保险从业者被罚 电子取证成为新形式

1402

下一篇

当信息隐藏遇见人工智能--取证与反取证的新问题与新技术!

2177

回到顶部
提示:官方微信正在抓紧开发中... ...