利用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 for Business,你将只有com.whatsapp.w4b。查看UID(例如,10180;这在你的手机上会不同)。
复制并粘贴到记事本,更改UID,然后复制到剪贴板。
|
|
或下载此文本文件(以防WordPress弄乱格式)。
注意在@null之后有回车,这就是漏洞利用的关键。更改UID以匹配你的。单词victim可以用任何1个单词的字符串替换。
你应该看到类似这样的内容:
注意当在@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手机提取数据的人。