martes, octubre 04, 2016

Hacking de dispositivos a nivel mundial jugando a la "Gallinita Ciega" #pentesting #Hacking

La pasada semana se celebró la VI Edición de Navaja Negra y mi compañero de ElevenPaths Rafa Sánchez y yo tuvimos el honor de estar allí para dar una charla. El tema que estuvimos mirando es conocido por muchos, pero quisimos ahondar en el tema motivacional de los ataques y reflejar el nivel de exposición de ciertos servicios que pueden acabar siendo críticos. Además, algo llamaba la atención entre la gente que se juntó en Navaja Negra y era eso de la ‘Gallina Ciega’.

Figura 1: Hacking de dispositivos a nivel mundial jugando a la "Gallinita Ciega"

¿Qué es jugar a la Gallinita Ciega en términos de hacking? Según el libro Got Root, la Gallinita Ciega es realizar una acción de elección de forma aleatoria, tras la cual la motivación de la acción viene determinada por un simple hecho de exposición. En otras palabras, da igual a quién pertenezca esa dirección IP, esa máquina o esa aplicación/servicio, lo importante es que puedo hackearte y te elijo a ti. En la imagen se puede visualizar parte del diálogo de Got Root, psicóloga y paciente.

Figura 2: Dialogo en Got Root sobre la "Gallinita Ciega"

Teniendo claro este sencillo concepto estuvimos revisando diversos informes de varias empresas en el que hablan de la motivación de los atacantes a la hora de llevar a cabo sus acciones. De primeras, sabíamos por informes antiguos que la mayoría de acciones delictivas se realizan sin importar el por qué, el quién eres y el qué tienes. En otras palabras, y tal y como refleja el estudio e informe de IBMCyber Security Intelligence Index de 2015 -, el 49% de los atacantes tiene una motivación “opportunistic”, es decir, sufren una motivación expositiva. La motivación expositiva o por exposición es la motivación que sufre un atacante al descubrir máquinas, servicios o aplicaciones potencialmente vulnerables, sin seguridad o con configuraciones erróneas o débiles.

En la charla, ejemplificamos esta motivación expositiva con el hecho de entrar a una discoteca plagada de personas, los ojos pueden seguir a ciertas curvas. La exposición es clara y llama la atención de las personas y, volviendo al ámbito informático, está claro que muchos atacantes no dejan pasar la oportunidad por exposición.

Figura 3: Motivación para realizar un ataque

El 23% de las motivaciones son de tipo industrial, espionaje, política, etcétera. En la charla comentamos el ejemplo de los hackers rusos que están haciendo “temblar” el sistema de voto electrónico de Estados Unidos y ha sembrado la duda sobre la democracia en dicho país. El 15% pertenece a los insiders y como ejemplo tenemos el caso de Ashley Madison y los Panamá Papers.

Por último, el 7% de las motivaciones pertenecen a actos de activismo social o desobediencia. Una vez dicho esto y viendo que la realización de los ataques viene de la mano de la oportunidad más que de ataques pensados y planificados quisimos ahondar en los tipos de descubrimiento o Discovery y en cómo juegan un papel fundamental según el objetivo final del atacante. Enumeramos una serie de objetivos detrás de la motivación:
• Diversión
• Aprendizaje
• Por “joder”
• Económica o monetizable
• Aprendizaje más avanzado
• Etcétera.
Necesitamos direcciones IP

En primer lugar, y antes de lanzar escaneos a todo IPv4 se puede aprovechar ciertas cosas y entender otros conceptos. El caso de los RIRs. Los RIR son los encargados de gestionar los rangos de red que hay en el mundo, diferenciados por continentes.

Figura 4: Registradores de regiones

Como ejemplo de la información que se puede obtener de estos organismos encargados del registro de direcciones IP analizamos el reciente incidente del TLD (Top Level Domain) de Korea del Norte. Un error en el DNS del dominio .kp provocó una transferencia de zona que propició que supiéramos todos los dominios que cuelgan de .kp, y aunque puede parecer que existan muchos, solo 28 dominios se ofrecen de Korea del Norte al exterior. Por supuesto, la teoría conspiranoica cobra fuerza, pensando que dentro del país tiene su pequeño Internet.

Figura 5: Dominios .kp

Este es solo un ejemplo de que conseguir direcciones IP de máquinas se puede lograr de muchas maneras, incluso no usando la “fuerza bruta” y escanear todo IPv4. En la siguiente dirección URL  encontramos el listando de AS que conectan proveedores con otros y podemos saber el número de redes de las que disponen los proveedores. En el caso de Korea del Norte nos encontramos solo 3 redes con máscara “/24” para todo el país. Solo una palabra: Raro.

Figura 6: Redes en los Autonomous Systems

Encontrar rangos de redes de proveedores y países es algo realmente interesante. Es una forma lógica de hacer las cosas, pero si aun así no encontramos cosas interesantes podemos tirar de Discovery bruto. ZMap es una herramienta interesante que proporciona la posibilidad de recorrer todo el espectro de IPv4 en un tiempo muy razonable. Por otro lado, también comentamos que haciendo hacking con buscadores con motores como Shodan o Censys realizan esos escaneos en bruto, para ofrecer la información a los usuarios que así lo quieran. Es un Discovery pasivo y rápido.

Por último, quisimos hacer hincapié en el mundo IPv6 y su “difícil” descubrimiento. MrLooquer es un servicio, creado por el propio Rafa, junto a Fran Gómez, con el que realizan una fase de descubrimiento más un proceso de banner grabbing e identificación de servicios. Quisimos destacar el concepto de Dual Stack, y es que hoy día las empresas pueden tener sus máquinas y servicios conectados tanto a IPv4 como a IPv6 - y por lo que los ataques de redes de datos suceden en IPv4 & IPv6 -.

Figura 7: MrLooquer

Hay ejemplos curiosos en los que podemos ver como una máquina conectada a IPv4 e IPv6 no tiene los mismos puertos en las diferentes “stacks”. Esto es interesante, ya que para muchos IPv6 es más seguro que IPv4 por el simple hecho de ser más difícil de “encontrar” una dirección IP. Esta afirmación es totalmente errónea, ya que estaríamos cayendo en el concepto de Seguridad por Oscuridad, lo cual nos llevaría al error.

En un ejemplo que mostramos pudimos ver como una máquina conectada a IPv4 disponía de los puertos 80 y 21 abiertos, mientras que en IPv6 tenía el 21, 80 y 3306. Es cierto que hay una prueba realizada por un investigador que configuró una máquina con SSH, usuario “root” y contraseña “password” en IPv4 y en IPv6. En IPv4 tardaron 12 minutos en encontrar la máquina, lanzar fuerza bruta y comprometer la máquina. En el caso de IPv6 no se llegó a localizar la dirección IPv6, por lo que ni mucho menos se llegó a comprometer. Es cierto que puede dar una sensación de seguridad, pero solo es seguridad por oscuridad.

Aplicando un “algo” más

Estas formas de descubrimiento nos permiten conocer máquinas y servicios expuestos en Internet. Muchas de estas máquinas tienen configuraciones erróneas, servicios abiertos y sin autenticación, etcétera. El nivel de exposición es enorme, y cualquier que pase por ahí puede observar y manipular lo que hay dentro.

Figura 8: Resultados en Julio de 2015

¿Y si tenemos la información de máquinas y servicios y podemos detectar vulnerabilidades potenciales? Hablamos de la ponencia “Cómo los malos pueden conquistar el mundo” y mostramos los resultados que se obtuvieron en IPv4 y que se actualizaron el pasado agosto.

Figura 9: Resultados en Agosto 2016

Hicimos una prueba en IPv6. Utilizando la API de MrLooquer y escribiendo un script en Ruby que pudiera detectar las versiones vulnerables de algún software elegido pudimos sacar conclusiones. Detectamos más de 300.000 máquinas con ProFTPd, pero solo 39 máquinas con la versión que queríamos la 1.3.3c, para la que tenemos exploit público. En comparación con IPv4 los números quedaron lejos.

Encontrando pantallas

El artículo Hacking de taxímetros en España vía Shodan de Diego Soto nos llamó mucho la atención. Además, tuvimos la suerte de conocerle en Navaja Negra. Realizamos algunas pruebas basándonos en rangos de redes, como algoritmo o pasos a seguir hicimos:
- Rango de red IPv4 / 16
- Buscar con ZMap puertos 6000 abiertos
- Sobre esas direcciones IP con puerto 6000, es decir servicio X11, abierto lanzar nmap con el script de NSE x11-access, el cual nos indica si ese servidor X11 tiene autenticación o no.
Se descubrieron, tanto en IPv4 como en IPv6, bastantes máquinas con X11 abierto y sin autenticación. Con la herramienta xwd se pueden hacer screenshots sobre dichas máquinas, pero esto lo dejaremos para la gente que asistió a la charla. Además, uno de los elementos pudo ser relacionado con su hardware en el mundo físico, incluso se pudo saber si tenía matrícula o si seguía algún tipo de ruta.

Figura 10: Un taxímetro con X11 abierto

Por otro lado, si se pueden sacar screenshots se pueden ejecutar acciones de forma remota gracias a X11. La herramienta xdotool permite ejecutar pulsaciones de teclado, eventos de ratón, etcétera.

Para ejemplificar el peligro, sin poner a nadie en riesgo, se montó un escenario totalmente real. Una máquina Ubuntu con un servidor X11 expuesto al exterior y sin autenticación. Cabe destacar que la configuración por defecto en la instalación de un Linux es la contraria a la expuesta, pero existe gran cantidad de máquinas en Internet, por alguna razón, con esta horrible configuración. Ideas:
- Con xdotool crearnos un Remote “Rubber Ducky”.
Figura 11: Controlar el teclado y el ratón de un servidor X11 expuesto en Internet 
- Pulsar partes de una GUI y llevar a cabo acciones.
- Proporcionar una shell inversa abriendo un terminal y ejecutando nc.
Figura 12: Ejecutar una shell remota inyectando scripts 
- En definitiva, control total sobre el sistema con X11 expuesto, con la ACL habilitada para cualquier ubicación y sin autenticar.
Figura 13: Control remoto de una aplicación gráfica 

Por último, también realizamos un análisis de VNC. No pensábamos que obtendríamos tantos resultados positivos. Shodan incorpora una aplicación para poder ver todos los VNC abiertos y sin autenticación que están expuestos en IPv4. Preferimos no mostrar lo visto o lo expuesto en Navaja Negra, pero si estás interesado visita: images.shodan.io.

Conclusiones

Las conclusiones preferimos enumerarlas y que sirviesen de resumen de la charla. A día de hoy seguimos opinando igual:
- No pasan más cosas porque no queréis. 
- La motivación expositiva existe y tiene un condicionante claro: la facilidad de accesibilidad. Cualquier, con un conocimiento mínimo, puede aprovecharse, en muchas ocasiones de dicha exposición. 
- La información, sistemas, servicios y aplicaciones están ahí fuera, en Internet, sol ohay que saber por dónde y cómo buscar. 
- En la charla se ha visto que no todo es encontrar máquinas que exponen servicios sin exposición. Además, existen máquinas potencialmente vulnerables o que disponen de configuraciones de seguridad muy débiles. 
- El concepto de ‘Gallinita Ciega’ existe y consiste en la exposición y en la elección aleatoria.
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell

P.D.: Ninguna GUI sufrió ningún daño durante el desarrollo de la charla.

1 comentario: