
Kit d'attaque IPv6
THC-IPV6-ATTACK-TOOLKIT (c) 2005-2022 [email protected] https://github.com/vanhauser-thc/thc-ipv6
Sous licence AGPLv3 (voir le fichier LICENSE)
Ce code a été inspiré lorsque j'ai découvert IPv6, en ai appris de plus en plus – et n'ai trouvé aucun outil pour m'amuser (lire : « hacker ») avec. J'ai d'abord essayé d'implémenter des choses avec libnet, mais j'ai constaté que l'implémentation IPv6 n'est que partielle – et nulle. J'ai essayé d'ajouter le code manquant, mais ce n'était pas si simple, j'ai donc économisé du temps et rapidement écrit ma propre bibliothèque.
Ce code ne fonctionne actuellement que sur :
Vous devez avoir libpcap-dev installé pour pouvoir construire les outils. De plus, libssl-dev et libnetfilter-queue-dev sont également recommandés.
Ces derniers peuvent être installés par (Kali, Debian, Ubuntu) : sudo apt-get install libpcap-dev libssl-dev libnetfilter-queue-dev
Vous pouvez construire les outils en exécutant : make all
Vous pouvez installer les outils et les pages de manuel existantes en exécutant : make install
LA THC IPV6 ATTACK TOOLKIT contient déjà de nombreux outils d'attaque efficaces :
Exécutez simplement les outils sans options et ils vous donneront de l'aide et montreront les options de ligne de commande.
La bibliothèque thc-ipv6-lib.c est le cœur et l'âme de tous les outils – et de ceux que vous voudrez peut-être écrire. L'implémentation est si simple qu'il ne faut généralement que 2 à 4 lignes pour créer un paquet IPv6/ICMPv6 complet avec le contenu de votre choix.
Votre structure de base est (thc_ipv6_hdr *) par exemple thc_ipv6_hdr *my_ipv6_packet; int my_ipv6_packet_len; et vous n'aurez jamais à jouer avec ses options/champs.
Lorsque vous voulez construire un paquet IPv6, écrivez simplement : my_ipv6_packet = thc_create_ipv6_extended(interface, prefer, &my_ipv6_packet_len, src6, dst6, ttl, length, label, class, version); si quelque chose échoue, il retourne NULL (uniquement si my_ipv6_packet_len ou dst6 n'existent pas ou si malloc échoue). Les options de thc_create_ipv6_extended sont : (char*) interface - l'interface sur laquelle vous voulez envoyer le paquet (int) prefer - soit PREFER_LINK (pour utiliser l'adresse lien-local), soit PREFER_HOST pour utiliser une adresse IPv6 d'hôte, et PREFER_GLOBAL pour utiliser une adresse IP6 publique (Internet) (par défaut) (int ) &my_ipv6_packet_len - la taille du paquet qui sera créée (unsigned char) src6 - l'IP6 source (OPTIONNEL - sera sélectionnée si NULL) (unsigned char*) dst6 - l'IP6 destination (au format réseau, 16 octets) généralement le résultat de thc_resolve6("ipv6.google.com"); (int) ttl - le TTL du paquet (OPTIONNEL - 0 le mettra à 255) (int) length - la longueur qui sera définie dans l'en-tête (OPTIONNEL - 0 = longueur réelle) (int) label - l'étiquette de flux (0 convient) (int) class - la classe du paquet (0 convient) (int) version - la version IP6 (OPTIONNEL - 0 la mettra à la version 6) Il retourne NULL en cas d'erreur ou une structure allouée via malloc en cas de succès. free() la une fois que vous avez terminé.