利用CVE-2024-0044提取Android 12/13上的WhatsApp数据库(或任意应用数据)
我想从一台未root的Android 12手机备份WhatsApp消息。几年前,我曾使用Whatsapp-Chat-Exporter将备份转换为HTML,但首先需要从手机中提取数据库。
多年来,Whatsapp-Chat-Exporter指出的从非root设备提取的方法一直未变:降级到允许备份的旧版WhatsApp,然后创建包含WhatsApp数据库的Android备份。但这不适用于WhatsApp Business,因为没有允许备份的版本。根据使用情况,你可能需要将WhatsApp移至可root的新设备,然后在那里提取文件(拥有root权限时非常简单)。
在查看Meta Red Team X的新Zygote漏洞(CVE-2024-31317)时,我认为它可以用于备份提取,但随后我看到了该博客上的前一个条目(CVE-2024-0044),它更易于使用(但仅适用于未收到2024年3月安全更新的Android 12和13)。
CVE-2024-0044
此漏洞利用适用于任何非系统应用,不仅限于从WhatsApp/WhatsApp Business提取数据。对专家来说,漏洞利用的解释非常明显。我在这里为最终用户或初学者编写,提供逐步指南以提取他们的WA数据库。
简单漏洞利用
首先,你需要启用USB调试并允许通过USB安装APK。准备一个APK文件;任何APK都可以,只要能在你的设备上安装(从https://f-droid.org/获取APK)。
将APK文件推送到设备,例如:
|
|
漏洞利用很简单。首先,我们需要获取WhatsApp的目标uid。执行adb shell,然后在adb内部执行:
|
|
你会看到类似这样的输出:
|
|
如果只有WhatsApp,你只会看到com.whatsapp;如果只有WhatsApp Business,你只会看到com.whatsapp.w4b。查看UID(例如10180;这在你的手机上会不同)。复制并粘贴到记事本,更改UID,然后复制到剪贴板。
|
|
或下载此文本文件(以防WordPress弄乱格式)。注意在@null后有回车,这是漏洞利用的关键。将UID更改为匹配你的设备。单词“victim”可以替换为任何单字字符串。
你应该看到类似这样的输出: 注意当在@null后粘贴新行时,它会在下一行显示为> 注意你只需要执行一次。
现在我们可以以WhatsApp用户身份运行:
|
|
我们可以开始浏览文件(ls、cat等)。不幸的是,在Android 13中,我无法将文件复制到其他地方(如/sdcard/、/data/local/tmp)。但我们可以这样做(但首先,通过exit或按control-d退出run-as),然后:
|
|
这应该是它的样子:
(图片描述:命令执行截图)
现在我们可以退出adb(exit或control-D)回到命令行,并拉取数据:
|
|
然后你可以使用任何应用提取数据(最新Windows可以提取tar文件,或使用7-Zip)。
现在,你可以从databases文件夹获取数据库,并使用Whatsapp-Chat-Exporter将其转换为HTML。
结论
我希望这能帮助任何需要从非root手机提取数据的人。