24 febrero 2015

Man in the middle en épocas de crisis


Desde que empecé a estudiar de nuevo, en este caso un Ciclo de Grado superior de Administración de Sistemas Informáticos en Red en el centro Don Bosco de Villamuriel de Cerrato, Palencia, me he comenzado a interesar más por el mundo de la seguridad informática y el hacking, en gran parte por culpa del profesor del módulo de Seguridad y Alta disponibilidad Amador Aparicio y sus retos hacker.

Una vez que comienzas en este mundo, aunque sea a pequeña escala, no haces más que mirar las redes, aplicaciones, páginas web... con otros ojos, de una forma diferente, con el fin de intentar llevar la tecnología un poco más lejos. Desde siempre he sido alguien curioso y al que le gustaba "cacharrear", por lo que casi siempre mis amigos antes de tirar algo, me preguntan para ver si "adopto" algún cacharro viejo.

En este caso un amigo me avisó de que iba a tirar un router de la compañía roja, un Observa Telecom VH4032N sin estrenar y claro, no podía permitir que acabara así sus días, por lo que con el router ya en casa me puse a leer sobre él y sus características para buscarle un nuevo uso.

Figura 1 - Modelo utilizado para esta prueba

Decidí que para poder sacarle partido debía lograr quitar el software que traía y "liberarlo" para poder usarlo a mi antojo, por lo que saqué del cajón el adaptador serie a USB, un puñado de cables y me descargue un firmware OpenWRT para ponerme manos a la obra. 

Figura 2 - Conexión del adaptador Serie-USB al router

El proceso es sencillo y se basa en una de las características de este router y que muchos otros integran, y es la posibilidad de acceder a un modo de rescate en caso de que se produzca un error en memoria durante el proceso de carga del firmware. Los pasos que seguí fueron los siguientes:


  • Conectar el adaptador al puerto serie del router, En este caso se disponía de los pines para ello, pero en otros casos puede ser necesario soldar algún conector a la placa, habitualmente en los manuales de fabricante aparece donde se debe soldar o conectar ese conector para la comunicación serie.


  • Comunicarnos con el equipo a través de algún programa como Putty que nos permita establecer una conexión serie con los parámetros específicos de cada fabricante.


  • Durante el arranque del equipo, interrumpiremos la carga del firmware, en este caso simplemente con una combinación de teclas aunque puede haber casos que requieran realizar un puente entre algunos pines de la placa.


  • Una vez en modo rescate usaremos un servidor TFTP para subir el firmware de OpenWRT al router y poder flashearlo, utilizando los comandos propios de cada fabricante.


Una vez seguidos estos pasos ya tenía mi router con un nuevo firmware mucho más flexible, por lo que ahora quedaba buscarle un buen uso. Fue entonces cuando se me ocurrió montar algo parecido a una Pinneapple Mark en mi nuevo router, pero en este caso sería una piña "low cost" como la basada en Raspberry, que ya se trató en otra entrada de SecurityByDefault, aunque sea de una manera sencilla y con un uso más limitado.

Lo primero es dotar al router de conexión a Internet pero sin depender de una red WiFi para que sea más versátil, por lo que instalé los módulos necesarios (kmod-USB, Comgt...) para hacer funcionar un pincho 3G liberado previamente y con el firmware modificado para dar conexión a nuestro "Rogue router", haciendo que no tenga la funcionalidad de almacenamiento USB y solo cargue únicamente como módem, evitando que tengamos que cambiar el modo de funcionamiento desde el Router en caso de un posible reinicio.

Superado el paso de dar Internet a los usuarios del router, barajé varias opciones para realizar las capturas de tráfico, aunque al final, debido a las limitaciones hardware del aparato, opté por un clásico que nunca pasa de moda, TCPDump.

Figura 3 - Ejemplo de captura con TCPDump

Respecto al acceso a estas capturas, el firmware trae soporte para varios servicios, como OpenVPN, Sendmail (para enviar las capturas en un correo), Pure-FTP, etc... que nos permitirán recoger los datos obtenidos.

En este caso instalé un servidor Pure-FTP en el router para descargarme los archivos de captura junto a una entrada en el Crontab del mismo para ejecutar tanto el servidor como el TCPDump, cuando mejor me convenga. La solución no es muy discreta pero para esta prueba era suficiente.

El resultado final ha sido un "juguete" muy curioso para auditoría de redes WiFi. Tras una tarde colocado en mi casa realizando pruebas (siempre los familiares son los daños colaterales de estos experimentos) pude obtener ciertos datos de "interés".

Imágenes de la navegación...

Figura 4 - Salida de NetworkMiner al abrir la captura

Archivos descargados...(aunque no sea el archivo en sí, podemos saber su nombre y ruta de descarga)

Figura 5 - Archivos "reconstruidos" por NetworkMiner

E incluso alguna que otra contraseña...

Figura 6 - Contraseñas capturas en navegación sin https

En este firmware incluso disponemos de herramientas para hacer que los leds del equipo simulen tráfico y levanten menos sospechas, así podremos hacernos con las capturas de tráfico, o implementar otro tipo de ataques. Como pueda ser la explotación de un Shellshock en equipos sin parchear para obtener más información o realizar una denegación de servicio apagando equipos simplemente configurando nuestro router con DNSMasq y haciendo que en las peticiones DHCP vaya la cadena que explota este fallo, tal y como he estado comprobando en otras pruebas.

Figura 7 - Paquetes disponibles ser instalados

Las posibilidades son muchas al disponer del control del router, como la configuración de unos servidores DNS que no sean legítimos para redirigir las consultas donde nos interese, disponer de soporte para SSLStrip para comprobar la seguridad de las peticiones https... las ideas son muchas.

Esto me ha dado que pensar en varias opciones... Por ejemplo a través de un correo electrónico podemos saber la dirección IP de un remitente que puede ser una empresa o administración pública y a través de esta información conocer su proveedor de Internet con la intención de colocar mediante ingeniería social (o echándole morro en su defecto) un router modificado.

Otro caso podría ser que una vez conocemos el número de móvil de una persona (fácil ahora mismo a través de las diferentes redes sociales) si es o ha sido de la compañía del que disponemos el router modificado, podemos justificar el cambio del equipo con la excusa de un nuevo servicio más veloz o con nuevas funciones.

Aunque todo lo mostrado sea un proceso simple no deja de ser un buen entrenamiento para alguien que está empezando en esto de la seguridad y que no siempre dispone de muchos medios económicos para disponer de hardware más especializado supliendo esa carencia con ganas de aprender, imaginación y conocimientos, que al fin y al cabo no deja de ser eso la esencia del Hacking, ¿No?


Contribución por cortesía de Héctor Alonso (@hector6598)


9 comments :

D dijo...

Fantástico artículo

José Manuel Parrado Ortega dijo...

Comentar que es posible mandar el firmware usando Xmodem y así te ahorras configurar la red en el router y montar un TFTP. Donde digo Xmodem digo Ymodem o Zmodem, el que te de más coraje. Así mismo aprovecho para invitarte a mirar las configuraciones del gestor de arranque del router. Es posible que puedas subir el bitrate de la transferencia por el cable serie y que subir el firmware por Xmodem sea más rápido.

Carolina dijo...

Enhorabuena!! Muy buen artículo :))

Héctor dijo...

Muchas gracias por el comentario y por el consejo, la verdad que podría ser mejor opción, pero a lo mejor para alguien "que esté empezando" le hes más cómodosi por ejemplo usa Windows hacerlo con una herramienta más "amigable" :)

Un saludo!

José Manuel Parrado Ortega dijo...

Toda la razón del mundo. Pero ya que te ha picado el gusanillo... Yo empecé a trabajando con GNU/Linux y poco a poco te va dando ganas de usar más las herramientas en las que puedas escribir y dejar los "colores".

David Avila dijo...

Creo que hay muchas cosas relativas, (por algo el post tiene las siglas IMHO en el titulo)
-Las certificaciones en los países en alza (Colombia, por ejemplo) se siguen solicitando, de hecho importan más esas certificaciones que una Especialización o una Maestría en Seguridad (esta ultima, al ser nueva y al solo darla una universidad, hablando específicamente del caso colombiano, no cuenta aun)
-Lo de los lenguajes es relativo, si bien es cierto que Python está al alza, según donde te desempeñes tendrás que auditar código de otros lenguajes, en mi caso me toca saber mucho Java, dado que es el lenguaje en el que el proveedor desarrolla nuestra aplicación.
-Con respecto a Colombia como destino HOT... es complicado de decirlo, muchas veces quieren ingenieros de red que sepan de seguridad, que propiamente ingenieros de seguridad, o personas que se sepan la famosisima ISO 27001:2013 (algunas le adicionan PCI DSS), solo porque interesa cumplir normativas que exigen los entes reguladores del sector financiero, y en el cual están muchísimas empresas de tecnología de este país


Saludos

prubio dijo...

Interesantes reflexiones, gracias por la sinceridad y la concreción.... aunque no estoy de acuerdo.

DANI dijo...

COMO SIEMPRE CHAPO TIO, ERES UN FENOMENO, MUY BUEN ARTICULO Y A VER SI NOS VEMOS UN DIA

SALUDOS

random dijo...

Pues sinceramente si no lo mencionases no conocería Xmodem. Muchas gracias!