
CVE-2019-2215を利用したBravia TV用のTemproot。
Bravia TV における CVE-2019-2215 を利用した Temproot
カーネルメモリの読み書きのみによる特権昇格攻撃のデモで、結果として一時的な root シェルを取得します。
これは、Android 8 (PKG6.0724) ファームウェアとカーネルバージョン 4.9.51 を搭載した Sony Bravia TV デバイスで動作します。
このツールを同じ脆弱性の影響を受ける他のデバイスやカーネルで動作させるには、いくつかのオフセットを見つけて変更する必要があります。Project Zero バグトラッカー で述べられているように、これはそれほど困難ではありません。
このツールとそのソースコードは、ドキュメンテーションおよび教育目的でのみ公開されています。
このツールを使用するとデバイスが文鎮化する可能性があります。何をしているか理解している場合を除き、試さないでください。
# Download the Android NDK.
user@host:~$ wget https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip
# Extract the NDK and set its path as $ANDROID_NDK_HOME.
user@host:~$ unzip android-ndk-r20b-linux-x86_64.zip
user@host:~$ export ANDROID_NDK_HOME=~/android-ndk-r20b
# Clone the `CVE-2019-2215` git repository and `cd` into it.
user@host:~$ git clone https://github.com/LIznzn/CVE-2019-2215.git
user@host:~$ cd CVE-2019-2215
# Compile the binary.
user@host:~/CVE-2019-2215$ $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang poc-bravia.c -static -o poc-bravia
# Push binary to device.
user@host:~/CVE-2019-2215$ adb push ./poc-bravia /data/local/tmp/
# Use ADB Shell.
user@host:~/CVE-2019-2215$ adb shell
# Run it.
BRAVIA_4K_UR1:/ $ cd /data/local/tmp
BRAVIA_4K_UR1:/data/local/tmp $ chmod 755 poc-bravia
BRAVIA_4K_UR1:/data/local/tmp $ ./poc-bravia