Resultados 1 al 2 de 2

Hacking en redes de datos IPv6: Conceptos básicos IPv6

  1. #1 Hacking en redes de datos IPv6: Conceptos básicos IPv6 
    HH Administrator Avatar de LUK
    Fecha de ingreso
    Oct 2001
    Ubicación
    SpaÑa
    Mensajes
    5.284
    Descargas
    223
    Uploads
    250
    El protocolo IPv6 lleva ya mucho tiempo entre nosotros, y aunque aún mucha gente se empeña en revisar las configuraciones IPv4 en una red de empresa, lo que realmente está funcionando en las conexiones SMB, DNS o incluso web de la Intranet, es protocolo IPv6.

    Conocer su funcionamiento es fundamental para la protección de una red, ya que muchos de los sistemas de protección IDS están configurados para detectar la mayoría de los ataques en redes IPv4, pero no hacen lo mismo con los ataques IPv6.

    En este artículo voy a explayarme un poco hablando de este protocolo que debería haber entrado hace mucho tiempo en nuestra vida cotidiana, y sin embargo sigue siendo un gran desconocido para muchos técnicos, a pesar de que al realizar un ipconrfig salga esa dirección fe80:: al principio de todo.


    Figura 1: Direccción IPv6 de enlace local en una configuración por defecto

    Antes de comenzar con los ataques IPv6 es necesario familiarizarse con todos los conceptos fundamentales de este protocolo, así que habrá que asentar algunas cosas al principio.

    Configuración básica de IPv6 en sistemas Microsoft Windows

    Si entramos en las propiedades del protocolo IPv6 de un sistema Microsoft Windows, lo primero que encontraremos es una pantalla de configuración más o menos similar a la de IPv4, con la única diferencia de que las direcciones IP serán de 128 bits, que se escriben en hexadecimal separadas en grupos de 16 bits, es decir, cuatro valores hexadecimales. Esto hace que las direcciones IPv6 queden escritas de una forma similar a fe80:123:0000:0000:0000:0000:0000:1ab0. Es un poco más raro, pero no tanto, 8 grupos de 4 valores hexadecimales.

    Para que sea más fácil de escribir y recordar, cuando hay una lista de grupos de cuatro ceros seguidos, se puede utilizar el acortador ::, reduciendo la dirección anterior a algo como: fe80:123::1ab0. Esta reducción se puede utilizar una única vez por cada dirección IPv6 y solo para grupos de 4 ceros consecutivos. Es por eso que será muy común encontrar cosas como fc00::1 en una dirección IPv6 de una red privada.


    Figura 2: Ejemplo de configuración de IPv6 en Windows

    En segundo lugar, aunque no se llama máscara de red, tenemos algo muy similar llamado Prefijo de Subred. Este termino se ha cambiado debido a las cantidades de problemas que causó en muchos usuarios e implementaciones de IPv4 el uso de subnetting, supernetting o la asignación de máscaras de red del tipo 255.0.124.255, algo que fue permitido por el estándar - y por tanto en algunas implementaciones -, pero que no acababa de tener mucho sentido y volvía loco a muchos técnicos cuando descubrían su existencia.

    En IPv6 el prefijo tiene la misma función, gestionar la visibilidad de red y utilizarse para hacer subnetting y supernetting, pero todos los unos van seguidos y al principio por definición en el estándar. De esta forma, si tuviéramos dos direcciones IPv6 - sin utilizar una Puerta de Enlace en la red - tales como estas:
    A: fc00::2000:0001/96
    B: fc00::2001:0001/112
    Al hacer un ping en IPv6 de A a B obtendríamos un Time-Out y al hacer un ping de B a A tendríamos una respuesta de Host inaccesible, debido a que A no entra dentro de la misma red que B, pero B si está dentro de la misma red que A.

    Para interconectar las redes IPv6, igual que en IPv4, hay que utilizar una Puerta de Enlace o Gateway, que se configura en las propiedades del protocolo de red, igual que los servidores IPv6 que se van a utilizar para la resolución de nombres. Estos servidores DNS no son los que se van a utilizar para resolver los nombres a direcciones IPv6 sino que serán los servidores DNS 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 de Vínculo o Enlace Local en IPv6

    Conocidos los parámetros a configurar, hay que entender también que en IPv6, tanto si se realiza una configuración manual de las direcciones IPv6 como si se deja en Automático - configuración por defecto en equipos Windows y Mac OS X - las tarjetas de red con soporte para IPv6 tendrán asociada una dirección de vínculo local.



    Figura 3: Configuración por defecto en Mac OS X

    Esta dirección se genera automáticamente y es anunciada por la red para evitar duplicidad de la misma usando el protocolo NDP (Neighbor Discovery Protocol). Esta duplicidad de direcciones no debería darse de forma habitual, ya que el algoritmo de generación de la misma depende de la dirección MAC de la tarjeta, pero para evitar cualquier situación indeseada se hace uso de un sistema que garantice su unicidad y que resuelva estos conflictos.

    Esta dirección es del rango fe80::/10 y es equivalente al rango 169.254.1.X - 169.254.254.X de IPv4. La única diferencia es que en la práctica las direcciones 169.254.X.X no se suelen utilizar en IPv4 y en IPv6 estas direcciones se van a utilizar con mucha frecuencia.

    Por supuesto, estas direcciones no son enrutables, pero sí que son utilizadas para comunicarse con el router o cualquier servidor de la organización que se encuentre en la red local. Si no has tocado nada de la configuración por defecto, tendrás una de estas direcciones asociadas y podrás utilizarla para hacer ping a cualquier equipo de tu red local con una dirección IPv6 de Enlace-Local.



    Figura 4: Ping a un nombre NETBios utilizando direcciones IPv6 de Vínculo Local

    Direcciones Well-Known en IPv6

    Además de las direcciones de Enlace o Vínculo Local, en IPv6 hay una buena cantidad de direcciones que deben ser conocidas, así que toca describir las más importantes aquí para entender luego los entornos de ataque:
    ::/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.
    Hasta aquí esta primera tanda de conceptos básicos. Ya seguiremos viendo más cosas en la segunda parte. Mientras tanto ve estudiando y probando esto, que te va a hacer falta para continuar con las siguientes partes. Si quieres aprender más, ya sabes que puedes comprar el libro de Ataques en redes de datos IPv4 & IPv6.

    Saludos Malignos! @ Un informático en el lado del mal: Hacking en redes de datos IPv6: Conceptos básicos IPv6 (1)
    [][][] LUK [][][]
    hackhispano.com
    Citar  
     

  2. #2 Hacking en redes de datos IPv6: Conceptos básicos IPv6 (2) 
    HH Administrator Avatar de LUK
    Fecha de ingreso
    Oct 2001
    Ubicación
    SpaÑa
    Mensajes
    5.284
    Descargas
    223
    Uploads
    250
    Una de las preguntas que debes realizarte es: "si en mi equipo tengo instalado IPv4 e IPv6 por defecto, ¿qué protocolo va a utilizar el sistema operativo? En este apartado vamos a responder a esa pregunta y a cómo se resuelven las direcciones de los integrantes de la comunicación.

    Precedencia de protocolos

    En los entornos actuales, lo más probable es que el protocolo IPv6 conviva junto con el protocolo IPv4 - y puede que incluso algún otro - así que el sistema operativo deberá elegir ente IPv4 según algunas normas. Estas normas se definen mediante un algoritmo de precedencia definido en el RFC 3484 y en el más reciente de Septiembre de 2012 RFC 6724, titulado "Default Address Selection for Internet Protocol version 6 (IPv6)" en el que se explica cuáles son las normas para elegir IPv6 o IPv4 en un entorno mixto.



    Figura 5: RFC 6724


    El documento explica dos algoritmos basados en la dirección de origen y la dirección de destino para elegir un protocolo u otro. Estos algoritmos tienen en cuenta cosas como la existencia o no de puertas de enlace, ya que puede que el origen sea una dirección IPv4, el destino sea una dirección IPv4, pero esta se encuentra en otra red y sólo existe una puerta de enlace para IPv6, por lo que se podría elegir un encapsulado de direcciones IPv4 sobre IPv6 para poder enrutar el tráfico.

    En un sistema Microsoft Windows se puede consultar esta configuración en todo momento por medio del comando netsh interface ipv6 show prefix, donde se mostrará por pantalla una tabla de prioridades con valores similares a la que se puede ver a continuación.



    Figura 6: Tabla de precedencia por defecto en un Microsoft Windows 7


    El algoritmo de precedencia da prioridad a IPv6 sobre IPv4 si es posible establecer una comunicación con este protocolo, pero en cualquier momento se puede modificar este comportamiento haciendo uso de los siguientes comandos netsh.
    netsh interface ipv6 show prefixpolicies: Muestra la tabla local de políticas
    netsh interface ipv6 add prefixpolicies:Añade nuevas entradas a la tabla
    netsh interface ipv6 set prefixpolicies:Configura entradas en la tabla
    netsh interface ipv6 delete prefixpolicies: Borra entradas en la tabla
    Ejemplo:

    netsh interface ipv6 set prefixpolicies prefix=2001::/32 precedence=15 label=5

    Además, este comportamiento no interfiere para nada en la elección que haya realizado anteriormente una aplicación o un usuario de forma explícita, por lo que solo es una regla de comportamiento para cuando no se ha establecido una restricción previa.

    Descubrimiento de vecinos con Neighbor Discovery Protocol

    Para descubrir los vecinos de una red IPv6 no existe el protocolo ARP o RARP, y todo se basa en mensajes ICMPv6. El protocolo para descubrimiento de vecinos se llama Neighbor Discovery Protocol e implementa 5 tipos de mensajes distintos. De ellos, los equivalentes a ARP serían los mensajes Neighbor Solicitation (NS), donde se pide la resolución de una dirección MAC asociada a una dirección IPv6 y Neighbor Advertisement (NA), donde se contesta con la dirección MAC de la dirección IPv6 buscada.

    Lo normal es que estos mensajes sean enviados a una dirección multicast y que conteste el vecino que tenga la dirección IPv6 que se busca, pero también pueden ser mensajes unicast enviados a una dirección concreta a la que se interroga.



    Figura 7: Descubrimiento de vecinos con mensaje NS multicast y respuesta unicast NA


    Todas las direcciones MAC asociadas a direcciones IPv6 quedarán almacenadas en una Tabla de vecinos que puede ser consultada con el comando netsh interface ipv6 show neighbor.



    Figura 8: Tabla de vecinos en iPv6


    Como os podréis imaginar ya, estos mensajes tendrán una gran importancia en varios de los ataques que vamos a describir en IPv6 de D.O.S. y Man in the middle.

    Resolución de nombres a direcciones IP en ámbito local

    En el caso de los sistemas Microsoft Windows, cuando se realiza la resolución de nombres, para poder funcionar con IPv4 e IPv6 se incluyó el protocolo LLMNR (Link-Local Multicast Name Resolution), descrito en el RFC 4795, un protocolo que utilizando multicast permite resolver las direcciones IPv4 y/o IPv6 asociadas a un nombre de dominio. Este sistema permite realizar búsquedas locales o mediante el uso de resolución de registros A y/o AAAA con un servidor DNS.


    Figura 9: Resolución de srv por LLMNR usando multicast IPv6, IPv4 y DNS

    Utilizando la resolución de nombres con LLMNR, la búsqueda de direcciones MAC de vecinos con NDP y a la tabla de precedencia, los sistemas Microsoft Windows construyen la comunicación entre equipos con IPv6.

    Configuración de equipos IPv6 en la red

    Para configurar el protocolo IPv6 de los equipos de una red existen diferentes alternativas. La primera de ellas sería realizar una Configuración Estática o manual, en la que se configuran la dirección IPv6, la Puerta de enlace y los servidores DNS de forma individual y manual - o mediante un script - en cada equipo.

    La segunda forma de configurar es utilizar un servidor DHCPv6 para configurar todas las propiedades IPv6 de los equipos de un ámbito de red IPv6. Estos servidores DHCPv6 están soportados en los servidores Windows Server 2008, Windows Server 2008 R2 y Windows Server 2012. Al igual que se hacía en IPv4 se pueden configurar dirección IPv6, prefijo de red - o máscara -, puerta de enlace por defecto o servidores DNS a utilizar.


    Figura 10: Servidor DHCPv6 en Windows Server 2008. Configuración de DNS

    La tercera forma de configurar equipos en la red es mediante el protocolo Neighbor Discovery Protocol y los mensajes RS (Router Solicitation), RA (Router Advertisiment) y Redirect, junto con el funcionamiento SLAAC (Stateless Address Auto Configurator) de los equipos. La idea es que un equipo puede conectarse automaticamente en una red con IPv6 si conoce algún router de conexión. Para ello, el equipo realiza una petición RS en busca de una puerta de enlace.

    Todos los routers de la red le contestarán con un RA dándole a SLAAC la información necesaria para que el equipo se autoconfigure una dirección IPv6 que le permita tener conectividad a través del router. Si hay más de un router en la red, y el equipo elige un router como primer salto erróneo, este le contestará con un mensaje NDP de tipo Redirect informándole de cuál es la mejor ruta, para que actualice su tabla de enrutamiento.

    Por supuesto, tanto DHCPv6 y SLAAC van a poder ser utilizados para realizar ataques D.O.S. y Man in the middle en las redes IPv6, como veremos más adelante, con esquemas de Rogue DHCPv6 Servers o Rogue Routers.

    DNS Autodiscovery

    Cuando un equipo se conecta a la red IPv6 a través de una configuración SLAAC existe el problema de que no se pueden configurar los servidores DNS y todas las peticiones de resolución se reducen a LLMNR de tipo difusión en busca de posibles servidores en la red de vínculo local. Sin embargo, si el servidor fuera externo es necesario contar con un servicio de resolución de nombres DNS en la red IPv6. Para ello, cuando no se configura ningún servidor, los equipos Microsoft Windows buscan automáticamente tres direcciones IPv6 establecidas por el estándar IPv6 DNS Autodiscovery.


    Figura 11: Direcciones IPv6 de los DNS Autodiscovery

    Si una empresa no quiere usar DHCPv6, puede configurar un DNS en una de esas direcciones IPv6 y junto con un router IPv6 enviando mensajes RA para que los clientes se autoconfiguren, podrá tener la red funcionando.

    Saludos Malignos! @ Un informático en el lado del mal: Hacking en redes de datos IPv6: Conceptos básicos IPv6 (2)
    [][][] LUK [][][]
    hackhispano.com
    Citar  
     

Temas similares

  1. IPv6
    Por Artavi en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 1
    Último mensaje: 02-02-2017, 20:03
  2. Hacking en redes de datos IPv6: Neighbor Spoofing
    Por LUK en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 0
    Último mensaje: 11-02-2013, 10:15
  3. Respuestas: 0
    Último mensaje: 25-05-2012, 13:33
  4. ipv6
    Por sable en el foro VULNERABILIDADES
    Respuestas: 2
    Último mensaje: 09-12-2004, 18:41
  5. IPv6
    Por |RooT| en el foro HARDWARE
    Respuestas: 0
    Último mensaje: 19-06-2003, 01:46

Marcadores

Marcadores