Antes de comenzar el artículo en sí, creo que debería advertir que la información contenida aquí es solo para fines puramente informativos, y que lo que cualquier usuario haga más allá de esto depende de ellos y no soy responsable. Con este detalle aclarado, aquí va el artículo:
El TM+MM es el nuevo tipo de cabina telefónica que Siemens está fabricando para Telefónica, con más funcionalidades que las cabinas “tradicionales”, como acceso a internet a través de ADSL, envío de mensajes cortos a teléfonos móviles, y la posibilidad de tomar fotos digitales. Dado que creo que no somos del tipo de personas que se conforman solo con saber para qué está hecho algo, procederemos a hacer algunas pruebas con las cabinas que ya están funcionando en Zaragoza (no sé si están en otros lugares también).
El TM+MM
Primero, daré una descripción física de lo que se ha instalado hasta ahora (siempre en lugares cerrados y bien vigilados).
El frente del stand ha sido reemplazado por uno más ancho que contiene lo siguiente:
- Una pantalla TFT color retroiluminada Samsung de 11 pulgadas. Resolución de 800x600
- Un teclado alfabético de 50 teclas de acero tipo QWERTY, ligeramente inclinado
- Un trackball con dos botones, aunque el botón secundario ha sido desactivado
- Altavoces
- Una cámara web
- Un teclado numérico convencional
- Una caja debajo del stand con el router ADSL y su fuente de alimentación. Se supone que en el futuro esta caja estará ubicada en el techo de los stands
Y pasando al hardware del ordenador en el interior, encontramos:
- Una placa SBC industrial
- Un procesador Pentium a 166 MHz
- Dos puertos USB (uno de ellos ocupado por la cámara web)
- Dos puertos seriales (uno de ellos se comunica con la placa controladora del sistema de voz)
- Una tarjeta ethernet
- 128 megabytes de RAM
- Disco duro de 10 gigabytes
- La placa que controla el sistema de voz del stand, que es la placa habitual
Diagrama de Conexión
Con respecto al software:
- Una distribución de RedHat Linux, probablemente 7.2
- Kernel 2.4.18
- FVWM con alogin (inicia automáticamente con un usuario en X)
- XFree86 4.2.0
- Navegador basado en Escape que permite la navegación, el envío de correos electrónicos y el envío de mensajes cortos a teléfonos móviles. Además de eso, almacena (supuestamente para fines estadísticos) todo lo que el usuario hace (URLs visitadas, banners clicados…)
Sistema de Navegación
- JDK1.1.8 de Blackdown
- Sistema de videoconferencia basado en GnomeMeeting
- Aplicación para controlar la comunicación entre placas
- Un sistema de actualización automática de software a través del cual se conecta vía HTTPS a un servidor para descargar los paquetes que debe actualizar
- Un servidor SSH de OpenSSH versión 3.1p1
- Squid 2.4
Respecto a la seguridad de la cabina, hasta ahora no hemos logrado nada. Solo tiene los puertos 22 (el servidor SSH parcheado) y el puerto 80 (supuestamente para el puerto de actualización) abiertos al exterior. El resto de los puertos están cerrados. Solo se puede salir de la aplicación principal abriendo la puerta de la cabina, o con la tarjeta del técnico de Telefónica (cosas que son imposibles para nosotros. Aprovecho para recordar que todas las cabinas de este tipo están en locales cerrados y vigilados). El LILO se ejecuta bajo chroot y evita el arranque en modo de usuario único o la entrada de cualquier tipo de comando. Lo que aún no hemos intentado es tratar de explotar algún error del navegador, que no permite descargar archivos, animaciones Flash. Tampoco sabemos si con algún tipo de navegador Java (que sí interpreta) podríamos hacer algo.
El manual técnico de la cabina dice:
Para evitar ataques externos de tipo hacker, se utiliza la funcionalidad de filtrado de paquetes del Kernel, que rechaza paquetes fragmentados.
¿A qué diablos se refiere realmente, pero bueno 😈
Si lo escaneas con Nessus, encuentra dos vulnerabilidades críticas en el servidor SSH, pero ninguna funciona con su exploit adecuado. Pero aun así, estas son las dos vulnerabilidades críticas que encuentra:
El host está ejecutando una versión de OpenSSH anterior a la 3.2.1
Hay un desbordamiento de búfer en este demonio si AFS está habilitado en tu sistema, o si las opciones KerberosTgtPassing o AFSTokenPassing están habilitadas. Dependiendo del escenario, la vulnerabilidad puede evitarse habilitando UsePrivilegeSeparation.
Las versiones anteriores a la 2.9.9 son vulnerables a un exploit de root remoto. Las versiones anteriores a la 3.2.1 son vulnerables a un exploit de root local.
Solución: Actualizar la versión de OpenSSH
- Riesgo: Alto
- CVE: CAN-2002-0575
- BID: 4560
- ID de Nessus: 10954
El host está ejecutando una versión de OpenSSH anterior a la 3.4
Hay una falla en esta versión que puede ser explotada remotamente para dar al atacante un shell en el host.
Solución: Actualizar OpenSSH a la versión 3.4
- Riesgo: Alto
- CVE: CAN-2002-0639, CAN-2002-0640
- BID: 5093
- ID de Nessus: 11031
Creo que es conveniente aclarar que el control de las llamadas de voz todavía se realiza por la cabina a través de hardware, que solo se comunica con la computadora para transmitir mensajes de usuario, así que no creo que sea posible realizar llamadas telefónicas gratuitas incluso si se tomara el control de la cabina, aunque creo que sería posible enviar SMS y navegar por internet de forma gratuita.
IPs de algunas de las cabinas:
- 80.37.142.174
URLs interesantes: