domingo, 3 de agosto de 2014

Conceptos IPv6 para Ataque en redes de datos (I de II)

Hace ya un tiempo que me leí el libreo de Ataques en redes de datos IPv4 e IPv6, una parte que me encanta en cuanto a seguridad y todo en general, por eso que al acabar de leerme este libro que recomiendo que todo el mundo lea; porque es de lo mejor para aprender sobre las redes de datos-que reitero que me encantan-. Y es que las direcciones IPv6, llevan un tiempo con nosotros; pero no todo el mundo se ha percatado de ello, ese es otro motivo por el que me animo a escribirlo; porque es necesario conocer algunas cosas que he repasado y aprendido en ese libro. Además debo hacer alusión a las medidas IDS para localizar ataques en IPv4- que pocas no hay- pero no pasa lo mismo con IPv6, así que sigo sumando mini-puntos para tener una buena excusa para escribir este post que creo que será largo.

Problemas ha tenido mucha gente con estas direcciones IPv6, y casos recientes hay como el problema que tuvo Kaspersky Labs en el 2013, que era un Bug que permitía a un atacante bloquear todo el equipo de manera remota, siempre y cuando tuviesen ese software instalado. Todo esto lo hacían con herramientas firewall6.

Con esto, lo único que bastaba era enviar una serie de pruebas a cada puerto con parámetros 18,19,20,21 para bloquear por completo el equipo de la víctima-en este caso Kaspeersky-esto se va a realizar con el siguiente comando:

             -firewall6<interface><target><port>18
             -firewall6<interface><target><port>19
             -firewall6<interface><target><port>20
             -firewall6<interface><target><port>21
         
El fallo traía como consecuencia que se hiciesen ataques de denegación del servicio de forma remota {Remote Denial of Service}. Pero esto problema ha sido solucionado ya por Kaspersky, pero ya es una de las historias que contar en cuanto a fallos en IPv6. Y es que ataques como denegación de servicio basado en tormentas de Router Advertisement o uno de los ataques man in the middle que más me gustan tanto explicar, hacer demostraciones, etc como es el MITM basado en el protocolo SLAAC, necesitan una configuración bastante robusta de puertos switch.

Después claro está, es el ser humano; que con su estupidez no se da cuenta de que tienen configurado IPv6, aunque no se lo acaben de creer, y esto son muchos problemas para un administrado; pero a la vez muchas ventajas para un atacante. Pero antes de avanzar mucho más lo primero son una serie de conceptos que todo el mundo debe saber.

Conceptos básicos sobre direcciones IPv6

Conocer el funcionamiento de estas direcciones es fundamental para la buena protección de una red, ya que mucha gente y administradores, siguen revisando la IPv4, cuando realmente la que está funcionando en conexiones como SMB, DNS,etc. desde hace ya tiempo es la IPv6. Y es que es una gran desconocida para la mayoría de técnicos; aunque cuando cualquier "bicho-pata" que entre en el cmd y escriben el comando "ipconfig" siempre sale esa dirección larga con la que todos cuando la ven se tapan los ojos, y que empieza por el famoso fe80:: al principio.

Figura 1: Dirección IPv6 local configurada por defecto en un equipo

Configuración de IPv6 en sistemas Microsoft Windows

Una de las cosas de las que se hablaba en el libro de Ataques en redes de datos IPv4 e IPv6, era la configuración básica de IPv6. Para eso debemos entrar en las propiedades de IPv6 dentro del Sistema Microsoft, aquí es casi igual que en IPv4, solamente con la diferencia de que en IPv6 son 128 bits-escritos en hexadecimal- en grupos de 16 bits (4 valores en hexadecimal).

Para los que no están acostumbrados ni metidos en el mundo de la tecnología les resulte complicado por su estructura, que es algo como fe80::123::0000:0000:0000:0000:00000:1ab0. Es normal que resulte un poco más raro si estás acostumbrado a IPv4, pero todo es ponerse y acostumbrase a los 8 grupos de 4 valores en hexadecimal.

Figura 2: Ventana de configuración IPv6 en un sistema Microsoft Windows

Y como suelo decir, todo tiene un método abreviado desde el "Te quiero mucho" a lo que se escribían en los SMS o en los Whatsapps hoy en día como es "TKM". Pues en IPv6 ocurre exactamente lo mismo, puedes escribir fe80::123::0000:0000:0000:0000:00000:1ab0 que es el "Te quiero mucho" o como es en este caso que hay 4 ceros seguidos podemos abreviarlo con un simple ::, entonces quedaría en fe80:123::1ab0, que sería el "TKM". Pero esto no lo puedes hacer siempre, solamente se puede hacer una vez con cada dirección IPv6 y siempre que se cumpla que posea 4 ceros seguidos. Por eso es común encontrarse cosas como fc00::1 que es una red privativa.

Otra de las cosas que nos encontramos es que en vez de máscara de red, tenemos algo similar, pero que la llamamos Prefijo Subred. Esto se cambió pero no sabía muy bien hasta que me leí el libro donde Juan Luis García Rambla  y Chema Alonso lo explican genial y bastante mejor que yo. Volviendo al motivo por el que se cambió, es porque había bastantes problemas que causó en muchos usuarios e implementaciones de IPv4 el uso de subnetting y supernetting o la asignación de máscaras de red del tipo 255.0.124.255, que fue permitido por el estándar-y por tanto en algunas implementaciones-, pero que no acababa de tener mucho sentido y daba "ataques de locura" a muchos técnicos cuando descubrían esto.

Ahora lo que podría darse es que si tuviéramos dos direcciones IPv6 tales como las siguientes:

     -A: fc00::2000:0001/96
     -B: fc00::2001:0001/112

Ahora al hacer un Ping en IPv6 de A hacía B obtendríamos un Time-Out y al hacer un un Ping de B hacía A lo que tendríamos es un Host unvalaible (inaccesible), ya que A no podría entrar nunca dentro de B, pero que esta si puede entrar en la misma red que A.

Lo que se nos puede plantear a continuación que queramos interconectar las redes IPv6 al igual que se hace en IPv4, hay que utilizar una Puerta de Enlace y que alguien "le dé cariño" y le abra la puerta para que se pueda interconectar esta dirección IPv6 local. Esta Puerta de Enlace o Gateway, se configura en las propiedades del protocolo de red, exactamente igual que los servidores IPv6 que se utilizarán para la resolución de nombres DNS.

Una cosa que debe quedar clara es que estos servidores DNS no son los que se van a utilizar para resolver los nombres a direcciones IPv6, sino que serán los propios servidores DNS los que se utilizarán para resolver todo cuando se utilice el protocolo IPv6, es decir, también se utilizarán estos servidores cuando haya que resolver un registro DNS de tipo A cuando se utilice en la red local el protocolo IPv6.

Direcciones Well-Known en IPv6

Ya casi para acabar esta primera parte de este post sobre IPv6 y que mejor acabar hablando sobre esto, y es que además de las direcciones de Enlace  o Vínculo Local, en la familia IPv6 hay una buena cantidad de direcciones que deben ser conocidas-como sucede en IPv4-, por eso toca hablar sobre unas direcciones que no mucha gente conoce, cosa que no pasa con las direcciones de Enlace o Vínculo Local, pero son necesarios para entender los entornos de ataques:

        -  ::/128:  Es una dirección con todos los bits a 0. Es la dirección IPv6 indefinida.


        -  ::/0:  Es la dirección de red IPv6 para describir la ruta por defecto en una tabla de enrutamiento. Es equivalente a la dirección IPv4 0.0.0.0.

        -  ::1/128: Localhost en IPv6. Equivalente a 127.0.0.1 (IPv4).

        -  fe80::/10: Direcciones de vínculo o enlace local. No son enrutables pero generan una red local efectiva en el rango fe80::/64. La parte de Host se suele calcular a partir de la dirección MAC de la tarjeta.

        -   ff02::/16: Direcciones de redes IPv6 Multicast. Equivalentes a las  (224.X) en redes IPv4.

        -   fc00::/7: Son las direcciones para redes IPv6 privadas. Estas direcciones tampoco son enrutables en Internet y son equivalentes a 10.X, 172.16.X y 192.168.X en redes IPv4

        -   ::ffff:0:0/96: Direcciones IPv4 mapeadas en IPv6. Se utilizan para conversiones e interconexiones de protocolos IPv4 e IPv6.

        -   64:ff9b::/96: Direcciones IPv6 generadas automáticamente a partir de IPv4. Se utilizan para cuando sea necesario hacer nuevas direcciones IPv6 y se quiera generar a partir de la dirección IPv4 de la máquina.

        -   2002::/16: Indica que es una red 6 to 4 mapeada y utilizará la dirección IPv4 192.88.99.X como gateway para la interconexión.

Además de estas direcciones, hay algunas reservadas para propósitos especiales, como son las siguientes:

        -    2001::/32: Usado por el protocolo de túneles Teredo que permite hacer tunneling IPv6 sobre redes IPv4 en Internet. Este sistema es el que se utiliza a la hora de implementar Direct Access en Windows Server 2008 R2 y Windows 7.

        -    2001:2::/48: Asignado a Benchmarking Methodology Working Group (BMWG) para comparativas (benchmarking) en IPv6 (similar a la red 198.18.0.0/15 para comparativas en IPv4). 

        -    2001:10::/28: ORCHID (Overlay Routable Cryptographic Hash Identifiers). Direcciones IPv6 no-enrutables usadas para identificadores criptográficos Hash. 

        -    2001:db8::/32: Direcciones utilizadas para documentación o ejemplos IPv6. Similar a las redes 192.0.2.0/24, 198.51.100.0/24 y 203.0.113.0/24 en IPv4.

Pues hasta aquí es la primera parte de este post dedicado a IPv6, ahora con todo lo que te he explicado de lo que he entendido del libro Ataques en redes de datos IPv4 e IPv6 más lo que yo ya sabía de antes, te toca a tí practicar y estudiar todo lo que se ha visto aquí. Próximamente estará la segunda parte, pero no sé cuando que el verano es para todos je je je. También debo reiterar en que no todo es mío, mucho de aquí son cosas del libro Ataques en redes de datos IPv4 e IPv6 -que me encantó, porque me gusta mucho IPv6- que yo he leído y tratado de explicar un poco esto, además otras cosas son que yo he ido estudiando y aprendiendo sobre esto y que quería explicaros porque es bastante necesario para entender ataques como el MITM con el protocolo SLAAC que se le realizó a "rafa1".

Saludos Malvados y Buen domingo!

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...