
IPv6-Angriffs-Toolkit
THC-IPV6-ATTACK-TOOLKIT (c) 2005-2022 [email protected] https://github.com/vanhauser-thc/thc-ipv6
Lizenziert unter AGPLv3 (siehe LICENSE-Datei)
Dieser Code entstand, als ich mit IPv6 in Berührung kam, immer mehr darüber lernte – und dann keine Werkzeuge fand, um damit herumzuspielen (lies: „hacken“). Zuerst versuchte ich Dinge mit libnet zu implementieren, stellte dann aber fest, dass die IPv6-Implementierung nur teilweise vorhanden ist – und schlecht. Ich versuchte, den fehlenden Code hinzuzufügen, aber das war nicht so einfach, also sparte ich mir die Zeit und schrieb schnell meine eigene Bibliothek.
Dieser Code läuft derzeit nur auf:
Sie müssen libpcap-dev installiert haben, um die Werkzeuge bauen zu können. Zusätzlich werden libssl-dev und libnetfilter-queue-dev empfohlen.
Diese können installiert werden mit (Kali, Debian, Ubuntu): sudo apt-get install libpcap-dev libssl-dev libnetfilter-queue-dev
Sie können die Werkzeuge durch Ausführen von bauen: make all
Sie können die Werkzeuge und vorhandenen Handbuchseiten installieren durch: make install
Das THC IPV6 ATTACK TOOLKIT enthält bereits viele effektive Angriffswerkzeuge:
Führen Sie die Werkzeuge einfach ohne Optionen aus, sie zeigen dann Hilfe und die Befehlszeilenoptionen an.
Die Bibliothek thc-ipv6-lib.c ist das Herz und die Seele aller Werkzeuge – und derer, die Sie vielleicht schreiben möchten. Die Implementierung ist so einfach, dass es normalerweise nur 2–4 Zeilen braucht, um ein vollständiges IPv6/ICMPv6-Paket mit dem gewünschten Inhalt zu erstellen.
Ihre grundlegende Struktur, die Sie verwenden, ist (thc_ipv6_hdr *) z. B. thc_ipv6_hdr *my_ipv6_packet; int my_ipv6_packet_len; und Sie müssen nie mit seinen Optionen/Feldern spielen.
Wann immer Sie ein IPv6-Paket erstellen möchten, schreiben Sie einfach: my_ipv6_packet = thc_create_ipv6_extended(interface, prefer, &my_ipv6_packet_len, src6, dst6, ttl, length, label, class, version); Wenn etwas fehlschlägt, gibt es NULL zurück (nur wenn my_ipv6_packet_len oder dst6 nicht existieren oder malloc fehlschlägt). Die Optionen für thc_create_ipv6_extended sind: (char*) interface - das Interface, über das Sie das Paket senden möchten (int) prefer - entweder PREFER_LINK (um die Link-Local-Adresse zu verwenden) oder PREFER_HOST, um eine Host-IPv6-Adresse zu verwenden, und PREFER_GLOBAL, um eine öffentliche (Internet-)IPv6-Adresse zu verwenden (Standard) (int ) &my_ipv6_packet_len - die Größe des Pakets, das erstellt wird (unsigned char) src6 - die Quell-IPv6 (OPTIONAL - wird ausgewählt, falls NULL) (unsigned char*) dst6 - die Ziel-IPv6 (im Netzwerkformat, 16 Byte lang) normalerweise das Ergebnis von thc_resolve6("ipv6.google.com"); (int) ttl - der TTL des Pakets (OPTIONAL - 0 setzt dies auf 255) (int) length - die Länge, die im Header gesetzt wird (OPTIONAL - 0 = echte Länge) (int) label - der Flow-Label (0 ist in Ordnung) (int) class - die Klasse des Pakets (0 ist in Ordnung) (int) version - die IPv6-Version (OPTIONAL - 0 setzt dies auf Version 6) Gibt NULL bei Fehlern oder eine mit malloc belegte Struktur bei Erfolg zurück. free() sie, wenn Sie damit fertig sind.