Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
thc-ipv6 — IPv6-Angriffs-Toolkit | Kitploit
Tools/GitHubGitHub/vanhauser-thc/thc-ipv6
AufklärungSchwachstellenanalyseExploitationIDS/IPS-UmgehungFuzzingNetzwerksicherheitDrahtlose SicherheitPenetrationstestsDienstprogramme & FrameworksRed Teaming
GitHubvanhauser-thc/thc-ipv6

thc-ipv6

1.2k229vor 4 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

IPv6-Angriffs-Toolkit

Repository anzeigen
Teilen

THC-IPV6-ATTACK-TOOLKIT (c) 2005-2022 [email protected] https://github.com/vanhauser-thc/thc-ipv6

root@kitploit:~
	Lizenziert unter AGPLv3 (siehe LICENSE-Datei)

EINLEITUNG

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.

EINSCHRÄNKUNGEN

Dieser Code läuft derzeit nur auf:

  • Linux 2.6.x oder neuer (wegen /proc-Nutzung)
  • Ethernet Aber das bedeutet für alle Linux-Anwender, dass es für 98% eurer Anwendungsfälle funktioniert. Patches sind willkommen! (Fügen Sie „antispam“ in die Betreffzeile ein, um durch meinen Anti-Spam-Schutz zu gelangen, ansonsten wird die E-Mail abgewiesen.)

BAUEN

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

DIE WERKZEUGE

Das THC IPV6 ATTACK TOOLKIT enthält bereits viele effektive Angriffswerkzeuge:

  • parasite6: ICMPv6-Neighbor-Solicitation/Advertisement-Spoofer, macht Sie zum Man-in-the-Middle, ähnlich wie ARP-MitM (und Parasite)
  • alive6: ein effektiver Alive-Scanner, der alle Systeme erkennt, die auf diese Adresse hören
  • dnsdict6: paralleler DNS-IPv6-Wörterbuch-Bruteforcer
  • fake_router6: sich selbst als Router im Netzwerk ankündigen, mit der höchsten Priorität
  • redir6: Datenverkehr intelligent zu sich umleiten (Man-in-the-Middle) mit einem cleveren ICMPv6-Redirect-Spoofer
  • toobig6: MTU-Verringerer mit der gleichen Intelligenz wie redir6
  • detect-new-ip6: neue IPv6-Geräte erkennen, die dem Netzwerk beitreten; Sie können ein Skript ausführen, um diese Systeme automatisch zu scannen usw.
  • dos-new-ip6: neue IPv6-Geräte erkennen und ihnen mitteilen, dass ihre gewählte IP im Netzwerk kollidiert (DOS).
  • trace6: sehr schnelles Traceroute6 mit Unterstützung für ICMP6-Echo-Request und TCP-SYN
  • flood_router6: ein Ziel mit zufälligen Router-Advertisements überfluten
  • flood_advertise6: ein Ziel mit zufälligen Neighbor-Advertisements überfluten
  • fuzz_ip6: Fuzzer für IPv6
  • implementation6: führt verschiedene Implementierungsprüfungen für IPv6 durch
  • implementation6d: Lauschdaemon für implementation6, um hinter einer FW zu prüfen
  • fake_mld6: sich selbst in einer Multicast-Gruppe Ihrer Wahl im Netzwerk ankündigen
  • fake_mld26: dasselbe, aber für MLDv2
  • fake_mldrouter6: gefälschte MLD-Router-Nachrichten
  • fake_mipv6: eine mobile IP stehlen, falls IPSEC nicht für die Authentifizierung benötigt wird
  • fake_advertiser6: sich selbst im Netzwerk ankündigen
  • smurf6: lokaler Smurfer
  • rsmurf6: entfernter Smurfer, derzeit bekanntermaßen nur gegen Linux funktionierend
  • exploit6: bekannte IPv6-Sicherheitslücken, um sie gegen ein Ziel zu testen
  • denial6: eine Sammlung von Denial-of-Service-Tests gegen ein Ziel
  • thcping6: sendet ein handgefertigtes Ping6-Paket
  • sendpees6: ein Tool von [email protected], das Neighbor Solicitation Requests mit vielen CGAs (Krypto-Zeug ;-) erzeugt, um die CPU zu beschäftigen. nett. und etwa 25 weitere Werkzeuge, die Sie entdecken können :-)

Führen Sie die Werkzeuge einfach ohne Optionen aus, sie zeigen dann Hilfe und die Befehlszeilenoptionen an.

DIE BIBLIOTHEK

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.

Jetzt können Sie darüber Erweiterungs-Header setzen: thc_add_hdr_route(my_ipv6_packet, &my_ipv6_packet_len, routers, routerptr); thc_add_hdr_fragment(my_ipv6_packet, &my_ipv6_packet_len, offset, more_frags, id); thc_add_hdr_dst(my_ipv6_packet, &my_ipv6_packet_len, buf, buflen); thc_add_hdr_hopbyhop(my_ipv6_packet, &my_ipv6_packet_len, buf, buflen); thc_add_hdr_nonxt(my_ipv6_packet, &my_ipv6_packet_len, hdropt); thc_add_hdr_misc(my_ipv6_packet, &my_ipv6_packet_len, type, len, buf, buflen); Die Funktionen erklärt: _route: Fügt einen Routing-Forwarding-Header hinzu (wie IP Source Routing) (int) routers - die Anzahl der Router in routerptr (char**) routerptr - eine char[routers + 1]-Struktur mit Router-Zielen im Netzwerkformat. Siehe alive6.c für ein Beispiel. _fragment: Fügt einen Fragment-Header hinzu (int) offset - der Offset, an den die Daten geschrieben werden sollen (Hinweis: setzen Sie den Offset-Ort hier in Bytes, nicht in Byte-Oktetten) (int) more_frags - setzen Sie auf 0, wenn es das letzte Fragment ist, auf 1 bei allen anderen (int) id - eine ID für das Paket (gleich für alle Fragmente) _dst: Fügt einen Destination-Options-Header hinzu (char) buf - ein Zeichenpuffer. Sie müssen diesen Puffer selbst steuern mit dem, was Sie hineinschreiben möchten. (int) buflen - die Länge von buf _hopbyhop: Fügt einen Hop-By-Hop-Header hinzu (char*) buf - ein Zeichenpuffer. Sie müssen diesen Puffer selbst steuern mit dem, was Sie hineinschreiben möchten. (int) buflen - die Länge von buf _nonxt: Gibt an, dass es keinerlei folgende Header mehr gibt (int) hdropt - diese Option wird derzeit ignoriert _misc: Gibt einen sonstigen Header an. Verwenden Sie dies, wenn Sie einen ungültigen oder nicht existierenden Erweiterungs-Header entwerfen möchten. (int) type - die Typ-ID, um den Header zu spezifizieren (int) len - die Länge, die für den Header angegeben werden soll (OPTIONAL - -1 setzt dies auf den korrekten Wert) (char*) buf - ein Zeichenpuffer. Sie müssen diesen Puffer selbst steuern mit dem, was Sie hineinschreiben möchten. (int) buflen - die Länge von buf Diese Funktionen geben (int) 0 bei Erfolg und -1 bei Fehler zurück.

Schließlich können Sie die Stream- oder Dgram-Header hinzufügen. thc_add_icmp6(my_ipv6_packet, &my_ipv6_packet_len, type, code, flags, buf, buflen, checksum); thc_add_tcp(my_ipv6_packet, &my_ipv6_packet_len, source_port, destination_port, sequence_number, ack_number, flags, window_size urgent_pointer, options, optione_length, data, data_length); thc_add_udp(my_ipv6_packet, &my_ipv6_packet_len, source_port, destination_port, checksum, data, data_length); thc_add_data6(my_ipv6_packet, &my_ipv6_packet_len, type, buf, buflen); _icmp6: Fügt einen ICMP6-Paket-Header hinzu (int) type: der ICMP6-Typ (int) code: der ICMP6-Code (int) flags: die ICMP6-Flags (char*) buf - ein Zeichenpuffer. Sie müssen diesen Puffer selbst steuern mit dem, was Sie hineinschreiben möchten. (int) buflen - die Länge von buf _tcp|_udp: Fügt einen TCP- oder UDP-Header hinzu (ushort) source_port: Quellport (ushort) destination_port: Zielport (uint) sequence_number: TCP-Sequenznummer (uint) ack_number: TCP-Bestätigungsnummer (ushort) checksum: UDP-Prüfsumme, 0 = Prüfsumme generieren (bei TCP wird die Prüfsumme immer berechnet) (uchar) flags: TCP-Flags: TCP_SYN, TCP_ACK, TCP_FIN, TCP_RST, TCP_PSH, ... (uint) window_size: TCP-Fenstergröße (uint) urgent_pointer: TCP-Urgent-Pointer (normalerweise 0) (char*) options: TCP-Optionen-Puffer, kann NULL sein (uint) options_length: die Länge des TCP-Optionen-Puffers (char*) data: die Daten, die das Protokoll trägt (uint) data_length: die Länge des Datenpuffers _data6: Fügt einen sonstigen Header hinzu (int) type: die Protokoll-ID (char*) buf - ein Zeichenpuffer. Sie müssen diesen Puffer selbst steuern mit dem, was Sie hineinschreiben möchten. (int) buflen - die Länge von buf Diese Funktionen geben (int) 0 bei Erfolg und -1 bei Fehler zurück.

Wenn Sie fertig sind, erstellen und senden Sie das Paket. thc_generate_pkt(interface, srcmac, dstmac, my_ipv6_packet, &my_ipv6_packet_len); thc_send_pkt(interface, my_ipv6_packet, &my_ipv6_packet_len); oder kombiniert in einer Funktion: thc_generate_and_send_pkt(interface, srcmac, dstmac, my_ipv6_packet, &my_ipv6_packet_len);

thc_generate_and_send_pkt: Erzeugt das echte und endgültige IPv6-Paket und sendet es dann. (char*) interface - das Interface, über das das Paket gesendet werden soll (unsigned char*) srcmac - die zu verwendende Quell-MAC (im Netzwerkformat) (OPTIONAL, die echte MAC wird verwendet, wenn NULL) (unsigned char*) dstmac - die zu verwendende Ziel-MAC (im Netzwerkformat) (OPTIONAL, die echte MAC wird nachgeschlagen, wenn NULL) Die thc_generate_pkt- und thc_send_pkt-Funktionen bieten zusammen die gleiche Funktionalität. Sie verwenden diese normalerweise nur, wenn Sie so etwas tun wie thc_generate_pkt(...); while(1) thc_send_pkt(...); Diese Funktionen geben (int) 0 bei Erfolg und -1 bei Fehler zurück.

Wenn Sie fertig sind, geben Sie den Speicher frei mit: thc_destroy_packet(my_ipv6_packet);

Es gibt einige wichtige Hilfsfunktionen, die Sie benötigen werden: thc_resolve6(destinationstring); Löst die IPv6-Adresse oder den DNS-Namen in eine IPv6-Netzwerkadresse auf. Verwenden Sie dies für dst6 in thc_create_ipv6_extended(). Das Ergebnis muss mit free() freigegeben werden, wenn es nicht mehr benötigt wird. thc_inverse_packet(my_ipv6_packet, &my_ipv6_packet_len); Diese clevere Funktion tauscht Quell- und Zieladresse, tauscht den ICMP-Header-Typ (ECHO REQUEST -> ECHO REPLY usw.) und berechnet die Prüfsumme neu. Wenn Sie keine Ahnung haben, wofür das nützlich sein könnte, gehen Sie und spielen Sie mit Ihrer Xbox :-)

Wenn Sie es sehr schnell machen möchten, gibt es einige vordefinierte ICMPv6- Erzeugungsfunktionen, die impc6-Pakete in nur einer Codezeile senden: thc_ping6(interface, src, dst, size, count); thc_neighboradv6(interface, src, dst, srcmac, dstmac, flags, target); thc_neighborsol6(interface, src, dst, target, srcmac, dstmac); thc_routeradv6(interface, src, dst, srcmac, default_ttl, managed, prefix, prefixlen, mtu, lifetime); thc_routersol6(interface, src, dst, srcmac, dstmac); thc_toobig6(interface, src, srcmac, dstmac, mtu, my_ipv6_packet, my_ipv6_packet_len); thc_paramprob6(interface, src, srcmac, dstmac, code, pointer, my_ipv6_packet, my_ipv6_packet_len); thc_unreach6(interface, src, srcmac, dstmac, icmpcode, my_ipv6_packet, my_ipv6_packet_len); thc_redir6(interface, src, srcmac, dstmac, newrouter, newroutermac, my_ipv6_packet, my_ipv6_packet_len); thc_send_as_fragment6(interface, src, dst, type, buf, buflen, frag_len); Diese tun, was Sie erwarten, also bin ich zu faul^H^H^H^H^Hbeschäftigt, um es genauer zu beschreiben.

Die folgenden Funktionen allokieren Speicher für den Ergebniszeiger, denken Sie also daran, die Ergebniszeiger dieser Funktionen freizugeben, sobald Sie sie nicht mehr benötigen: thc_ipv6_dummymac() thc_ipv62notation() thc_ipv62string() thc_string2ipv6() thc_string2notation() thc_resolve6() thc_get_own_ipv6() thc_get_own_mac() thc_get_multicast_mac() thc_get_mac() thc_lookup_ipv6_mac() thc_look_neighborcache() thc_generate_key() thc_generate_cga() thc_generate_rsa()

Es hilft sehr, wenn Sie sich Beispielverwendungen ansehen. Die besten sind die Werkzeuge aus dem thc-ipv6-Paket, insbesondere implementation6.c und fake_*6.c - viel Spaß, und senden Sie Code zurück, damit die Community weiter darauf aufbauen kann.

ERKENNUNG

Die meisten Werkzeuge können leicht von einem IDS oder einer speziellen Erkennungssoftware erkannt werden. Dies geschieht absichtlich, um die Erkennung missbräuchlicher Nutzung zu erleichtern. Die Werkzeuge geben entweder eine feste Paketsignatur vor oder schnüffeln generisch nach Paketen (z. B. daher auch Antworten auf ICMPv6-Neighbor- Solicitations, die an eine nicht existierende MAC gesendet werden, und sind daher sehr leicht zu erkennen). Wenn Sie das nicht möchten, ändern Sie den Code.

PATCHES, FEHLER, HINWEISE usw.

Senden Sie diese an vh (at) thc (dot) org (und fügen Sie „antispam“ in die Betreffzeile ein) Oder reichen Sie sie über GitHub ein: https://github.com/vanhauser-thc/thc-ipv6

Viel Spaß!

Tool herunterladen