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.

Camara Wifi

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.

Servicios — Methods

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.

index.htm

Vemos el contenido de los scripts que son utilizados para cargar el archivo modules.tar.lzma en el dispositivo.

File module

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.

Hash — Cracking

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.

Download Firmware

Graphic de las funciones de kmotor.ko que mas adelante serán reverenciados para entender el funcionamiento y posibles vulnerabilidades de código.

Firmware kmotor

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.

Ejecución del Script

Download Exploit

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14064

https://www.exploit-db.com/exploits/45030/

By3…