miércoles, 27 de junio de 2018

¿Solo una camara IP?

Después de mucho tiempo y aprovechando un pequeño espacio de tiempo, he decidido realizar una nueva entrada en este tan abandonado blog

En esta ocasión les comparto esta pequeña experiencia con una cámara de "seguridad" casera, la cual adquirí no hace mucho tiempo en un almacén de cadena; aunque confieso que mas que para vigilancia, la compré por pura curiosidad y con el animo de estudiarla.

Si alguno de los lectores estuvo presente o participó en el CTF de BSides Latam del año 2017, quizá recordará el prototipo ***-83702 sobre el cual se encontraba una de las flags; para los que no, les dejo una foto para que una vez leída esta entrada se animen, la busquen y la compren ;P

Camara IP
Inicialmente, como el dispositivo no cuenta con puerto ethernet, fue necesario realizar su conexión a una red wifi mediante una App que el mismo fabricante recomienda; esta App recibe los parámetros de red y habilita un botón para iniciar la configuración, el cual una vez presionado genera una serie de sonidos (codificación de los datos de configuración) como los que pueden escuchar a continuación


  • Si alguien conoce algo de este "protocolo", por favor escríbame para aprender algo al respecto y así ajustar o extender esta entrada (algo me dice, que no solo van los parámetros de configuración -_- )

Una vez establecida la conexión e identificado el direccionamiento de la cámara, se realizó un escaneo por defecto con nmap, mediante el cual se identificaron 2 servicios disponibles (no son los únicos), de los cuales solo el asociado al puerto 81 estaba documentado en el manual de usuario

Servicios disponibles (escaneo por defecto)
En el caso del servicio telnet, ninguna de las credenciales iniciales o configuradas posteriormente funcionó, siendo este servicio un verdadero enigma ¿o backdoor del fabricante? 😱...

...el puerto 81 se encuentra asociado a un servidor web, sobre el cual se encuentra la aplicación de acceso al streaming y configuraciones de la cámara; una vez dentro del formulario principal se realizaron algunas pruebas, en donde se identificó la existencia de controles de filtrado de caracteres

Carácter inválido
¡corrección!, la existencia de controles de filtrado de caracteres, no tan efectivos

Inyección de código HTML
Dado lo anterior y que probablemente alguien ya se habría encontrado con un dispositivo de este tipo, la idea no era re-inventar la rueda, así que me dí a la tarea de buscar información al respecto y encontré 2 publicaciones que sí o sí deben leer
La primera narra como el autor encontró una vulnerabilidad de inyección de comandos sobre un dispositivo de este tipo, específicamente en el formulario de configuración de acceso a un servidor FTP; mientras la segunda es una recopilación muy interesante de vulnerabilidades en cámaras IP, la cual incluso hace referencia a la primera publicación.

A partir de la primera publicación, procedí a realizar las verificaciones respectivas sobre el dispositivo adquirido, con el pequeño cambio (he aquí mi aporte para obtener una evidencia visual) que el comando inyectado correspondía a un ping hacia mi maquina...

Dirección IP equipo de pruebas



Formulario de configuración de acceso a FTP
...así que al momento de presionar el botón de test, las peticiones comenzaron a llegar
Tráfico ICMP entrante (origen cámara)
Una vez evidenciada la inyección de comandos y los privilegios con los que se ejecutaban, solo fue cuestión de tiempo para obtener un acceso como root y así tener control total sobre el dispositivo. Para los que quieran replicar esto, les recomiendo hacer uso de las peticiones asociadas que se encuentran en la segunda publicación referenciada y que uso a continuación

Peticiones de configuración y ejecución
El comando inyectado lanza un servidor telnet sobre el puerto 25, el cual no requiere de autenticación y da acceso como root (recuerden, es solo para pruebas!!!)

Acceso telnet como root
Al final tenemos un sistema base BusyBox (un linux muy reducido), el cual a pesar de estar ajustado para una cámara, trae varios binarios bastante útiles

Versión BusyBox
usando pscan encontrado en la cámara
usando arping encontrado en la cámara

Con lo anterior es evidente como un simple dispositivo que adquirimos con el fin de monitorear  y/o proteger un lugar o algo, puede ser usado por otras personas para realizar ataques a nuestra infraestructura o incluso otras redes (sin omitir el hecho espiarnos); adicional como lo menciona el autor de la primera publicación en una de las actualizaciones, mediante esta vulnerabilidad muchas cámaras han sido comprometidas e infectadas, para hacer parte de botnets gigantescas y así ejecutar los tan famosos ataques DDoS basados en IoT.

Lo crítico del asunto, es que el hallazgo inicial de acuerdo a la publicación, data del año 2015 y actualmente en los almacenes de cadena y demás, aun se comercializan estos dispositivos sin ningún tipo de actualización de firmware, aumentando cada vez más la cantidad de equipos vulnerables.

No siendo más, espero que esta entrada fuese de su agrado.

Saludos a todos!!!


PD: En una próxima entrada no muy lejana, les compartiré el método que encontré para obtener las credenciales de acceso y así completar el ciclo simplemente con tener acceso físico, o mejor, muy cercano a una cámara de estas.