VelotiSmart —(CVE-2018–14064)
En esta ocasión quiero mostrar una cámara de vigilancia que es utilizada comúnmente en el hogar. Bueno este dispositivo lo adquirí para realizar algunas pruebas simples “usuario común” de su funcionamiento, como validar la calidad de la imagen, forma de grabación, infrarrojos, etc. También el uso de la aplicación mobile que se utiliza para manipular la cámara de forma remota.
Hasta el momento todo bien, pero siempre uno tiene la curiosidad de llegar mas aya de un simple análisis :) Para no seguir aburriendo pasemos a lo entretenido.
Este es el aspecto físico de la cámara.
Características
- Resolución 720p/960p
- 2 Vías de audio
- Detector de Movimiento
- Alertas Inteligentes
Para comenzar con el análisis lo primero que hago es obtener información del dispositivo como las versiones de servicios así como también todo lo relacionado al trafico de red que podría emitir la cámara donde puede decir que no hay mucho que ver ahí :/. Bueno lo que vi es que estaban corriendo 2 servicios uno en el puerto 80 (http uc-http 1.0.0) y otro en el 554 (rtsp DVR). con algunos métodos interesantes que se podrían utilizar.
Revisando el servicio en el puerto 80 me di cuenta que no existía un panel o algo que pudiera explotar a simple vista :( Lo que pude encontrar fue un index.htm que solo mostraba una pagina en blanco. Bueno aquí lo que hice fue una simple petición a la dirección obteniendo 2 scripts (bash) y uno que es el firmware que controla el motor de rotación, audio, grabación, etc. de la cámara.
Vemos el contenido de los scripts que son utilizados para cargar el archivo modules.tar.lzma en el dispositivo.
A partir de la primera información obtenida mas algo de enumeración me pude dar cuenta que el dispositivo utiliza unos software obsoletos :/ permitiéndome hacer lecturas de archivos y directorios.
En esa lectura como prueba de concepto utilice el archivo /etc/passwd en la cual obtengo el usuario root con una password facil de crackear xmhdipc.
Terminando de hacer lagunas lecturas de archivos y directorios como configuraciones de claves, ssid almacenados, servicios en ejecución, puertos, etc. Hice la descarga del firmaware de control para un posterior análisis que no se incluirá en este post.
Se observan los distintos archivos con extensión *.ko en arquitectura ARM y uno de los archivos principales que es kmotor.ko.
Graphic de las funciones de kmotor.ko que mas adelante serán reverenciados para entender el funcionamiento y posibles vulnerabilidades de código.
Exploit Poc
Ya teniendo una vulnerabilidad (LFI) en este tipo de cámaras, el siguiente paso fue crear un simple script en python el cual automatiza la lectura de archivos y el listado de los directorios.
Download Exploit
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14064
https://www.exploit-db.com/exploits/45030/
By3…