Ésta es la segunda entrada de una serie de artículos que tratan de ser un estudio práctico sobre ataques de Hacking en entornos LAN sobre el protocolo IPv6.
————————————————————————
# Hacking IPv6 I – Breve introducción al protocolo IPv6
# Hacking IPv6 II – Interceptación de tráfico mediante envenenamiento de caché (MITM) – (1ª parte)
# Hacking IPv6 III – Interceptación de tráfico mediante envenenamiento de caché (MITM) – (2ª parte)
# Hacking IPv6 IV – Redirección de tráfico IPv6 mediante el uso de mensajes Router Advertisment(RA)
# Hacking IPv6 V- DoS mediante mensajes Neighbor Solicitation (NS)
# Hacking IPv6 VI – Conclusiones
————————————————————————
En el primer artículo de la serie estuvimos viendo algunos conceptos básicos sobre el protocolo IPv6, necesarios para entender el resto de entregas.
Recordemos que estos artículos no pretenden ser un estudio en profundidad sobre ataques en entornos IPv6. Simplemente intentan ser un primer acercamiento a este nuevo protocolo que todavía resulta ser un gran desconocido para mucha gente. El enfoque de estos artículos es principalmente didáctico para ayudar a entender y aclarar algunos conceptos sobre IPv6.
En este artículo entraremos de lleno sobre el primero de los ataques que veremos a lo largo de las distintas entregas. Este ataque consiste en un ataque de envenenamiento de caché mediante mensajes ICMPv6.
IPv6 es un protocolo de capa 3 del modelo OSI que llegó hace algún tiempo y se presenta como la alternativa a IPv4. En entornos IPv4, cualquier dispositivo que se conecte una red Ethernet, y que desee comunicarse con otro dispositivo de la red, necesita conocer al menos, su dirección de capa de enlace (o dirección MAC).
Los ataques de envenenamiento de caché, consisten en hacer creer a una víctima que la dirección de capa de enlace de un determinado dispositivo de la red, es otra distinta de la que realmente es. El ataque más conocido es el ataque MITM, que conlleva que un atacante pueda interceptar las comunicaciones entre dos dispositivos.
En IPv4, los ataques MITM se realizan mediante mensajes ARP especialmente manipulados. En IPv6, estos ataques se realizan empleando mensajes ICMPv6.
Veamos cómo utilizar ICMPv6 para la ejecución de estos ataques. En condiciones normales, cuando un dispositivo A desea comunicarse con otro dispositivo B, lo primero que debe hacer A es enviar a la red (a una determinada dirección multicast), un mensaje ICMPv6 de tipo “Neighbor Solicitation” preguntando por dirección MAC de B. Acto seguido, B contestará con un mensaje “Neighbor Advertisment” incluyendo en su contenido su dirección MAC de capa de enlace. El dispositivo A guardará en su propia caché esta información durante un tiempo, y la utilizará para construir en adelante los paquetes en Capa 2 que vayan dirigidos a B.
Los ataques de tipo MITM en entornos IPv6, se basan en enviar cada cierto tiempo mensajes de tipo “Nieghbor Advertisment” con información especialmente manipulada hacia las víctimas. El fin último del envío de estos mensajes, es introducir información maliciosa en la caché de las víctimas. De esta forma, las víctimas enviarán sin saberlo el tráfico hacia el atacante.
Después de esta breve introducción teórica sobre los ataques de envenenamiento de caché, pasemos a la parte práctica.
El entorno sobre el que realizaremos el ataque es el siguiente.
Esta es la primera entrega de una serie de artículos donde se estudiarán diversas técnicas de hacking sobre el protocolo IPv6 en entornos LAN.
Estas entradas pretenden ser una guía didáctica para comenzar a conocer algunos detalles prácticos del protocolo IPv6 con sus riesgos y amenazas. Siempre, por supuesto, desde un punto de vista de Hacking Ético.
Los distintos artículos se irán publicando periódicamente cada varios días. El índice de entradas es el siguiente:
Todas las entradas (menos esta) tratarán de presentar la información de la forma más práctica posible, ya que creo que es la mejor forma de entender cómo funcionan las cosas. En estos artículos no se considerarán aspectos de seguridad relacionados con la tunelización de tráfico IPv6 e IPv4, el uso de IPsec, o SEcureNeighborDiscovery (SEND).
Comencemos pues con una introducción a los conceptos principales del protocolo.
Introducción a IPv6
En esta entrada me limitaré a presentar información sobre los conceptos necesarios para entender las entradas que se publicarán más adelante. Si en cualquier momento necesitáis más información sobre el protocolo, podéis encontrarla fácilmente en Internet en multitud de sitios donde se explica el protocolo en profundidad.
Todo apunta a que IPv6 podría empezar a desplegarse en breve en diferentes entornos, sobre todo debido al reciente agotamiento del rango de direcciones públicas IPv4 por parte de IANA. Es posible que con la ayuda de los fabricantes, las distintas operadoras comiencen pronto a usar este protocolo en entornos residenciales. Siendo así, no sería raro que dentro de unos meses comenzaran a distribuirse routers ADSL a los clientes con soporte IPv6 y que comenzara a asignarse direcciones públicas (o rangos de direcciones) IPv6 a estos clientes para aprovisionar sus conexiones. Otro entorno donde puede irrumpir pronto IPv6, es la red LAN de cualquier empresa o cualquier centro universitario que decida en un determinado momento, comenzar a implementar este protocolo. Antes o después, IPv6 acabará desplazando a IPv4, o al menos, esa es la idea.
De hecho, hoy en día, multitud de equipos ya soportan IPv6 para sus comunicaciones. Si vosotros mismos utilizáis un sistema operativo basado en Linux, es posible que ya tengáis una interfaz enviando tráfico IPv6. Y si utilizáis WindowsVista o Windows 7, en ese caso,vuestro equipo ya tiene soporte para IPv6 y estará enviando tráfico IPv6 aunque no lo sepáis.
Teniendo en cuenta los escenarios anteriores, vamos a comenzar con unos conceptos básicos sobre IPv6 que nos ayudarán a entender el resto de las entradas:
Direcciones IPv6
Las direcciones IPv6 tienen una longitud de 128 bits. Ejemplo:
Es innegable que el mercado de los dispositivos móviles es un bocado muy apetitoso para los gigantes del mundo de las IT. La prueba de ello es la aparición y asentamiento en unos pocos años de nuevos sistemas operativos móviles como Android, iOS de Apple o el nuevo Windows Phone 7 que intenta abrirse un hueco entre la “gran G” y la manzana más deseada por muchos.
Si bien es cierto que existen otras opciones en el mercado (Symbian, BlackBerry, Maemo…) las nuevas plataformas para los SmartPhone tiene nombres y apellidos bien conocidos por todos.
Recientemente ha sido liberado un nuevo sistema operativo para sistemas empotrados. Se podría pensar que no deja de ser otro esfuerzo inútil o una batalla ya perdida conforme está el mercado hoy en día, pero este nuevo sistema tiene varias peculiaridades. Comencemos a analizarlo y a ver que hay de nuevo.
Que es PYXIS2
Un sistema operativo Open Source y gratuito escrito utilizando el framework de Microsoft (.Net Micro FrameWork) y escrito en lenguaje C# (para los que no lo conozcáis este framework de Microsoft puede correr en multitud de sistema integrados)
Aunque todavía en una fase algo temprana el sistema proporciona un escritorio, menú de inicio y todas las cosas a las que estamos acostumbrados:
¿Qué hay de novedoso en PYXIS2?
A simple vista no nos aporta nada. Pero si investigamos un poco nos sorprende una cosa que los distingue del resto: Nos podemos hacer nuestro propio dispositivo pieza a pieza! Sí, como suena. En la web podemos encontrar el hardware compatible y donde comprarlo. Los precios son bastante razonables. Encontrareis una lista de precios en la web de uno de los fabricantes: http://www.ghielectronics.com
Además la plataforma se integra perfectamente con las suites de desarrollo de Microsoft, no solamente con las versiones de pago, las ediciones Express serán suficiente para empezar a cacharrear.
En la web del proyecto podéis encontrar documentación sobre cómo instalar y poner en marchar este sistema. No es necesario disponer del hardware físico, con el Visual Studio Express y el código del proyecto podréis hacerlo funcionar en el simulador que integra.
¿Qué incorpora?
Al igual que el resto de fabricantes podemos encontrar las opciones más comunes para cualquier sistema móvil:
Navegación por archivos
Configuraciones de conexión de red
Accesos directos de escritorio al más puro estilo Windows
Asistentes para la instalación de aplicaciones
Un Market Place, que pretende imitar al resto de plataformas
Configuración de la interfaz de usuario
Multitarea, cosa que no pueden decir todos! (Todavía estamos a la espera de que WP7 la incorpore)
Actualizaciones automáticas
Aquí os dejamos un video demostración para que lo apreciéis mejor:
Conclusión
Aunque el sistema realmente está algo verde y le falta mucho por andar, recuerda mucho a los primeros pasos de Android y a todos esos rumores y especulaciones que afirmaban que ese sistema operativo no iba a llegar a nada (espero que esta gente no invierta en bolsa ).
Tal vez compararlo con sistemas operativos orientados a teléfonos móviles pueda parecer que no encaja y que no son comparables, pero la mayoría empezaron así. Ya que incorporar las funciones para telefonía móvil es un paso.
El proyecto no pinta mal, lo seguiremos de cerca para ver como evoluciona y si resulta otro intento fallido más o da el paso a algo que de que hablar.
El segundo y tercer día de la Rooted ha tenido de todo. Herramientas, técnicas, ideas, resultados e incluso un pequeño laboratorio, veamos:
Raúl Siles nos presentó su propuesta para renombrar los conocidos XSS, WCI. Además nos mostró como se enfada la vaca de BeEf.
Jaime Peñalba nos mostró las bondades de los WarGame. Como las protecciones y normas.
Sergi Álvarez y Roi Martín presentaron Radare2. La cantidad de funcionalidades y opciones de esta herramienta hicieron que los 50 minutos de charla se quedaran realmente cortos.
Deloitte, como patrocinador, no quiso quedarse atrás y mostró como con poco dinero y algo más de tiempo podemos ver lo que otros ven gracias al maravilloso mundo de las “ondas”.
Chema Alonso y Alejandro Martín presentaron DUST. Desde aquí os animamos a probarlo y a contribuir enla medida de lo posible. Más información en el lado del mal.
Alejandro Ramos sabe muy bien que hacer con una buena tarjeta gráfica sin necesidad de utilizar ningún juego.
Eloi Sanfelix mostró lo “indie” que puede llegar a ser el hacking que realiza sobre hardware.
José Ramón Palanco con NoSQL Security. [Iniqua FAIL] Por desgracia no pudimos asistir… esperamos los videos!
David Pérez y José Pico nos mostraron un trailer de su Lab, y en 50 minutos pudimos ver como una llamada al servicio de atención al cliente de un banco se convertía en una llamada al “infierno” (los videos van a ser muy divertidos).
Joxean Koret nos enseñó la poca seguridad de los sgbd y animó a los asistentes a interesarse por ellos. Unos resultados llamativos…
Vins Villaplana nos llevó de la mano por la capa 2. Menos mal que alguien se acordó un poco más de las redes y los protocolos… entre tanto malware.
Gabriel Gonzalez nos mostró su idea titulada Man in Remote. Y que a pesar de parecer del lado oscuro, no es más que una solución para poder gestionar a cualquier otra persona su DNIe .
Hernan Ochoa nos mostró todo el trabajo realizado para completar su herramienta: WCE v1.0
[::RF::] mostró algunas ideas que necesitan tu ayuda…
Marisol Salanova puso la nota discordante y desconectó al público de los ceros y los unos. Interesante viaje por la intimidad pública disponible en la red.
Rubén Santamarta cerró el congreso mostrando como realizar un “hipotético” ataque sobre sistemas SCADA. Todo un mundo por descubrir…
Nosotros nos quedamos de estas magnificas conferencias, con lo aportado por los ponentes, con las herramientas que nos han presentado y también con la sensación que en la Rooted hasta los patrocinadores asustan con el nivel mostrado. Por todo ello agradecemos a los organizadores que hacen posible el congreso.