
Ein Kommandozeilen-Tool zum Erstellen und Injizieren von Netzwerkpaketen.
Das Nemesis-Projekt ist als ein kommandozeilenbasiertes, portables menschliches IP-Stack für UNIX-ähnliche und Windows-Systeme konzipiert. Die Suite ist nach Protokollen unterteilt und soll nützliches Scripting injizierter Pakete aus einfachen Shell-Skripten ermöglichen.
Die neueste Version ist immer auf GitHub verfügbar unter
Jedes unterstützte Protokoll verwendet seinen eigenen Protokoll-"Injektor", der von einer Manpage mit Erläuterungen zu seiner Funktionalität begleitet wird.
Siehe das ChangeLog für Versionsdetails und die Dokumentation für jeden Protokollinjektor für tiefgehende Beschreibungen der verfügbaren Funktionalität.
Injiziere fehlerhafte ICMP-Weiterleitung
sudo nemesis icmp -S 10.10.10.3 -D 10.10.10.1 -G 10.10.10.3 -i 5
DHCP-Discovery (muss sudo und -d verwenden, um mit Quell-IP 0.0.0.0 zu senden):
sudo nemesis dhcp -d eth0
IGMP v2 Beitritt für Gruppe 239.186.39.5
sudo nemesis igmp -v -p 22 -S 192.168.1.20 -g 239.186.39.5 -D 239.186.39.5
IGMP v2 Abfrage, max. Antwortzeit 10 Sek., mit Router Alert IP-Option
echo -ne '\x94\x04\x00\x00' >RA
sudo nemesis igmp -v -p 0x11 -c 100 -D 224.0.0.1 -O RA
oder
echo -ne '\x94\x04\x00\x00' | sudo nemesis igmp -v -p 0x11 -c 100 -D 224.0.0.1 -O -
IGMP v3 Abfrage, mit Router Alert IP-Option
echo -ne '\x03\x64\x00\x00' > v3
sudo nemesis igmp -p 0x11 -c 100 -i 0.0.0.0 -P v3 -D 224.0.0.1 -O RA
Zufälliges TCP-Paket
sudo nemesis tcp
DoS- und DDoS-Tests
sudo nemesis tcp -v -S 192.168.1.1 -D 192.168.2.2 -fSA -y 22 -P foo
sudo nemesis udp -v -S 10.11.12.13 -D 10.1.1.2 -x 11111 -y 53 -P bindpkt
sudo nemesis icmp redirect -S 10.10.10.3 -D 10.10.10.1 -G 10.10.10.3 -qR
sudo nemesis arp -v -d eth0 -H 0:1:2:3:4:5 -S 10.11.30.5 -D 10.10.15.1
Nemesis baut auf libnet auf. Windows-Plattform-Builds benötigen ebenfalls libpcap. Nemesis <= 1.4 basierte auf libnet 1.0 und Nemesis >= 1.5 benötigen libnet 1.1 oder höher.
curl -sS https://deb.troglobit.com/pubkey.gpg | sudo apt-key add -
echo "deb [arch=amd64] https://deb.troglobit.com/debian stable main" | sudo tee /etc/apt/sources.list.d/troglobit.list
sudo apt-get update && sudo apt-get install nemesis
Auf Debian- und Ubuntu-basierten GNU/Linux-Systemen:
sudo apt install libnet1-dev
Dies installiert die libnet-Header und -Bibliothek an einem Standardort,
den das configure-Skript leicht finden kann. Sollte Ihre libnet1-Installation
sich an einem nicht standardmäßigen Ort befinden, können Sie die Pfade wie folgt angeben:
configure LDFLAGS=-L/path/to/lib CPPFLAGS=-I/path/to/header
Das GNU Configure & Build-System verwendet /usr/local als
Standard-Installationspräfix. Normalerweise ist dies ausreichend, das folgende
Beispiel installiert stattdessen nach /usr:
tar xf nemesis-1.7.tar.xz
cd nemesis-1.7/
./configure --prefix=/usr
make -j5
sudo make install-strip
nemesis.exe kann überall auf einem Windows-System installiert werden. Die Einschränkung
ist, dass LibnetNT.dll entweder im selben Verzeichnis wie nemesis.exe oder in einem
der in der %PATH%-Variable aufgeführten Verzeichnisse vorhanden sein muss. Unter Windows 2000
wäre das %SystemRoot%\System32
Hinweis: Der Windows-Build wurde seit über einem Jahrzehnt nicht getestet. YYMV
Wenn Sie einen Beitrag leisten möchten oder einfach die neuesten, aber noch nicht veröffentlichten Funktionen ausprobieren möchten, müssen Sie ein paar Dinge über das GNU Configure & Build-System wissen:
configure.ac und ein pro Verzeichnis Makefile.am sind die Schlüsseldateienconfigure und Makefile.in werden aus autogen.sh generiert,
sie werden nicht in GIT gespeichert, sondern automatisch für die
Release-Tarballs generiertMakefile wird vom configure-Skript generiertUm aus GIT zu bauen, müssen Sie zunächst das Repository klonen und das
autogen.sh-Skript ausführen. Dazu müssen automake und autoconf auf Ihrem
System installiert sein.
git clone https://github.com/libnet/nemesis.git
cd nemesis/
./autogen.sh
./configure && make
GIT-Quellen sind ein sich bewegendes Ziel und werden für Produktionssysteme nicht empfohlen, es sei denn, Sie wissen, was Sie tun!
Das Projekt wird derzeit auf GitHub verwaltet, mit der Absicht, als zentraler Anlaufpunkt für neue Entwicklungen zu dienen. Wenn Sie Patches und/oder Ideen haben, reichen Sie diese bitte über den Issue-Tracker oder als Pull-Requests ein.