SOMBRERO NEGRO Conferencia de Estados Unidos. Cómo un hacker de Hollywood usa cámaras de vigilancia. Parte 1También podemos usar este error para obtener o reemplazar la contraseña de administrador cifrada, que se almacena en / etc / privpasswd.

Podemos extraer el contenido de este archivo. Como puede ver, contiene el nombre de usuario raíz y la contraseña cifrada.

Por el momento, tenemos 2 opciones: puede intentar descifrar la contraseña con una herramienta como John the Ripper:

Si esto no funciona, al diablo con eso, tenemos root y simplemente sobrescribimos este archivo. En cualquier caso, tenemos acceso al "panel de administración", y de la misma manera que en el caso de la cámara anterior, nuevamente tendremos los derechos de administrador y usuario root.

Estas vulnerabilidades se producen en la mayoría de las cámaras IQ InVision, incluidas las series 3 y 7, la serie Sentinel, Alliance-Pro, Alliance-MX y Alliance-Mini. No enumeraré todos los modelos, de lo contrario me quedaré aquí para siempre, la lista completa de estas cámaras está disponible en Internet en la lista de Shodan Dork. Lo triste es que, como saben, las cámaras de este fabricante son ampliamente utilizadas en escuelas, estaciones de policía, bancos, casinos, compañías financieras y de consultoría, servicio de DHL, etc.
Vi que hoy la cámara más cara es la N5072 de 3SVision. Su precio está indicado por la frase "Contáctenos", por lo que inmediatamente me di cuenta de que no puedo pagarlo. Tuve algunos problemas con esta cámara, porque para todas las demás cámaras podría ir al sitio web del fabricante, descargar el firmware y analizar el código en busca de vulnerabilidades. No necesitaba comprar un dispositivo, al menos para realizar las pruebas iniciales.

Pero cuando fui al sitio web del fabricante para descargar el firmware de esta cámara, apareció una ventana emergente de JavaScript frente a mí que me pedía que ingresara mi contraseña. Inmediatamente probé todas las contraseñas más comunes: amor, sexo, dios, pero no funcionó. Pero al final, la pestaña de contraseña = 4 funcionó. ¿Y sabes por qué? Porque si miras el JavaScript que envía la contraseña al servidor, ni siquiera necesito explicarte lo que ves allí (risas), es genial.

Hasta que obtenga la contraseña correcta, simplemente será redirigido a la URL actual con el signo ampersand = 4 al final de la línea. Como soy lo suficientemente competente para entender qué es, ingresé esto como contraseña y fui a la página de descarga de firmware.
Tal enfoque no es un buen augurio para la seguridad de su sistema. El hecho de que utilicen el servidor web httpd personalizado en el firmware parece bastante inofensivo, pero si observa las líneas en este archivo binario, puede ver que todas son altamente personalizables.

Así que decidí que, dado que parece realmente personalizable, necesito considerar cómo su servidor web maneja la autenticación. Ahora que sé que las cámaras usan dispositivos HTTP básicos para la autenticación, uso base64 para descifrar. Si está familiarizado con la autenticación a través de http, entonces sabe que aquí se combinan el nombre de usuario y la contraseña, y luego se codifican en base64.

Entonces comencé a buscar referencias cruzadas en el código que mencionen b64_decode. Todo lo que hacen cuando descifran su contraseña es pasarla a b64_decode para su verificación, y perfectamente, está bien, descifraron su contraseña. Luego hacen dos comparaciones de cadenas: una cadena con un parámetro codificado 3sadmin y otra cadena codificada 27988303.
Solía pensar que no puedes ser tan tonto como para poner cosas codificadas en tu servidor HTTP, ya que esto no es confiable, pero sigue funcionando.

Por lo tanto, puede acceder a cualquier cámara 3SVision y convertirse en administrador. Esto le da acceso a cajas registradoras de video, puntos de control taiwaneses y sótanos de empresas industriales rusas.
Pero mirar todo este video con bastante rapidez se vuelve aburrido, así que quería llegar a la raíz. Afortunadamente, su código está repleto de todo tipo de llamadas de sistema inseguras, y el atacante abre el campo más amplio para el ataque, especialmente si inicia sesión como administrador. El mejor ejemplo de esto es el controlador de video records.cgi.

No todas, pero muchas de estas cámaras admiten almacenamiento local, por lo que puede, por ejemplo, insertar su tarjeta de memoria SD dentro de la cámara y guardar videos para usted. También tiene la oportunidad de administrar algunos archivos básicos a través de la interfaz de administración, y esto se hace a través de la función do_records en la página cgi. Cgi no es una página física en el disco. Cuando el servidor web ve que solicitó un registro CGI, llama al controlador de función do_records, que verifica qué acción está realizando. Por ejemplo, si desea eliminar un archivo, debe pasar el valor del comando aRemove igual a "eliminar".

Además, debe indicar qué archivo desea eliminar.

Este nombre de archivo se inserta en el comando RM, que se pasa al sistema.

Creo que ya entendiste a lo que esto podría conducir. En lugar de un nombre de archivo, puede insertar un comando que provocará un reinicio del sistema, y así sucesivamente. En este caso, obtendremos un control total sobre el sistema, como fue el caso con el pirateo de cámaras anteriores.

Esto funciona en casi toda la línea de productos 3SVision y afecta no solo a las cámaras, sino también a su servidor de video, ya que usan el mismo servidor web. Cuando realicé mi investigación, descubrí otra compañía llamada A-Linking, que usa el mismo firmware en sus cámaras. Pero cambiaron las credenciales codificadas por otra cosa. Por lo tanto, todavía tienen estos datos codificados, pero ahora son diferentes de las credenciales utilizadas en el firmware de la cámara 3SVision. No enumeraré todos los modelos de tales cámaras, solo noto que todos están en la clasificación de vulnerabilidad Shodan Dork.

Dado su alto costo en comparación con las cámaras de otros fabricantes, esto es especialmente interesante, además, como saben, estas cámaras se utilizan en empresas militares, energéticas e industriales extranjeras. Si los vio en Shodan Dork, tenga cuidado al vender estas cámaras en el extranjero y no me culpe si el ejército chino viene por usted.
Entonces, ¿qué da lo que te dije? Penetro en tu red, te veo y tengo privilegios de root. Esta es una gran oportunidad para cualquier atacante, dado que la mayoría de estas cámaras también están conectadas a la red interna. Puede acceder de forma remota a ellos, ingresar, obtener derechos de root, ingresar a una computadora basada en Linux y desde allí hacer lo que quiera con su red local.
Aquí retrocedí un poco y dije: "está bien, todo está bien, pero ¿qué puedo hacer con la cámara en sí"? Obtuve acceso de root a la cámara, esto es increíble, pero si vas al administrador habitual de sistemas de vigilancia y le dices que tienes acceso de root a la cámara, él ni siquiera entenderá lo que esto significa. Por lo tanto, quería hacer algo más interesante, algo que realmente demuestre todas las posibilidades. Quería interceptar una transmisión de video que se vea así:

Y reemplácelo con algo que se vea así:

Este es un tipo de hack clásico de Hollywood, cuando quieres penetrar un objeto protegido relleno con cámaras de vigilancia, y un hacker de tu grupo debe romper esta cámara para que muestre que no hay nadie allí, aunque en realidad hay alguien allí. Para probar la posibilidad de tal truco, elegí la cámara de vigilancia Trendnet TV-IP410WN.

Lo elegí por varias razones. En primer lugar, puedo permitirme comprarlo, lo cual es una gran ventaja. En segundo lugar, tiene una cuenta de puerta trasera:

Permitiéndole acceder a estos archivos:

Que tienen una vulnerabilidad muy extendida que permite la inyección de comandos:

Que, a su vez, se puede usar de manera muy simple para enviar los paquetes que necesitamos a la cámara:


Aquí hay las mismas oportunidades de pirateo que mencioné anteriormente, solo que en este caso tenemos una cámara más barata.
Resultó que este error en particular se conoció en 2011. Pero el problema era que ni yo ni nadie más podíamos usar esta información, porque en la descripción de esta vulnerabilidad no había una lista de dispositivos en los que estaba presente, ni indicaciones de un firmware específico, por lo que todos lo ignoraron. mensaje Por lo tanto, si recurrió a Google con la solicitud "vulnerabilidad de cámara TV-IP410WN", no encontraría nada.
Otro problema de no proporcionar dicha información es que esta vulnerabilidad sigue siendo desconocida no solo para las personas involucradas en la seguridad informática, sino también para los fabricantes y proveedores de productos. Esto no les permite determinar qué firmware y qué modelos de cámara deben repararse. Por lo tanto, estos dispositivos todavía se venden en todas partes con el mismo error: Shodan Dork apunta a más de 28 mil de esas cámaras.
Entonces, suponga que la imagen del canal de video observada por el administrador se muestra aquí, lo cual es más consistente con los objetivos de nuestro experimento. Suponemos que el administrador ve este video a través de la interfaz web, y no a través de algún tipo de servicio de usuario, RTPID o algo así.

Si toma la imagen de esta cámara en particular vista en un navegador, puede ver que el proceso mjpg.cgi es responsable de ver este video en streaming.

Usando el comando de inyección, podemos ver qué procesos se están ejecutando y luego "matar" todos los procesos mjpg.cgi:

Esto conducirá al efecto de "congelamiento" temporal de la imagen del canal de video del administrador. Esto sucederá porque el navegador le mostrará la última imagen que recibió y ya no recibirá ninguna imagen de esta cámara. Pero no haremos esto, porque si el administrador actualiza el navegador o navega a una nueva página, y luego vuelve a verlo desde la cámara, la transmisión de video se reanudará y verá la imagen en tiempo real.
Por lo tanto, intentaremos reemplazar el archivo mjpg.cgi, que no debería ser difícil: dos líneas del script bash serán suficientes.

En particular, todo lo que necesita hacer es reemplazar esta página cgi en el disco con un script que devuelva algunos encabezados básicos al navegador, y luego use el comando cat para insertar una imagen JPEG estática del elevador vacío en la transferencia. Podría ser una imagen de cabra, cualquier cosa. Pero en nuestro caso, el administrador ahora verá constantemente un ascensor vacío, independientemente de lo que realmente esté sucediendo allí.

De hecho, parece mucho más interesante en el video "en vivo", por lo que si los dioses de la manifestación están conmigo hoy, estaremos bien. Entonces, como se puede ver en la pantalla, mi cámara guarda mi tesoro: una botella de cerveza. Mira, lo tomo, y la cámara lo muestra. Ahora usaré un exploit en la forma de este script que "matará" el video en tiempo real y lo reemplazará con un archivo de imagen estático, del que acabo de hablar.
También me dará derechos administrativos para controlar la cámara y configurar una URL secreta para que pueda ver el video original mientras el canal de administración continúa transmitiendo el video congelado. En la pantalla, verá cómo se envía este exploit.

Entonces, todo salió bien, me devolvió las credenciales de usuario: inicio de sesión de administrador y contraseña de securecam1234.

También me dice que la URL está configurada para que pueda ver el canal de video real, por lo que si voy al navegador de mi hacker ahora, ingreso mis credenciales, puedo ver qué sucede.

Entonces, si alguien recoge la botella, lo descubriré:

Pero el administrador, no, su botella permanecerá sobre la mesa.

Entonces, algunas reflexiones finales sobre este tema en las que quiero hacer hincapié. Le he presentado una lista lejos de ser completa de cámaras vulnerables; mi investigación no fue de esta naturaleza. En realidad, hay muchas más cámaras de este tipo, y la mayoría de ellas son muy fáciles de descifrar.
Casi todas las cámaras mostrarán el número de modelo en la página de inicio de sesión o en la página de entrada de credenciales, incluso si no se autenticó, dependiendo de cómo verifiquen esta autenticación. Si el atacante conoce el número de modelo sin saber nada más sobre esta cámara, puede ir a Google, encontrar el sitio web del fabricante y descargar el firmware.
Es posible que también necesite descubrir esa pestaña = 4, pero después de recibir el firmware, puede buscar vulnerabilidades en esta cámara sin siquiera comprarla.
Esto es exactamente lo que hice con todas estas cámaras: todo se hizo con la ayuda del análisis de firmware, todos los exploits se crearon sobre la base y no compré una sola cámara. Luego fue suficiente usar Binwalk para analizar y desempacar el firmware, e IDA y Qemu para desmontar y emular, si es necesario, después de lo cual me esperaba una victoria.
Y ahora responderé tus preguntas. Con respecto a la seguridad de las cámaras, diré esto: durante un par de horas pude describir todas las cámaras cuya seguridad examiné, pero no había una sola cámara entre ellas que estuviera perfectamente protegida. Mientras tanto, hay fabricantes cuyos productos simplemente no tuve la oportunidad de conocer, porque no había dinero para comprar una cámara de este tipo, ya que no ofrecen la posibilidad de descargar el firmware de forma gratuita. Por lo tanto, no me atrevo a afirmar que no hay cámaras de vigilancia confiables en absoluto.
Me preguntan si es posible reemplazar una imagen estática con piratería con algo dinámico. La forma más fácil sería insertar algo como un archivo animation.gif, sería una solución puramente hacker. Sin embargo, creo que es bastante posible escribir su propio cgi, lo que le permitirá mostrar videos en tiempo real. Soy demasiado vago para esto, a pesar de mi demostración. Pero si conoce el concepto de estos dispositivos, puede hacer lo que quiera con ellos.
Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes?
Apóyenos haciendo un pedido o recomendándolo a sus amigos, un
descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta diciembre de forma gratuita al pagar por un período de seis meses, puede ordenar
aquí .
Dell R730xd 2 veces más barato? ¡Solo tenemos
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre
Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?