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.
No hay comentarios:
Publicar un comentario