
Un utilitaire en ligne de commande pour la création et l'injection de paquets réseau.
Le projet Nemesis est conçu pour être une pile IP humaine portable basée sur la ligne de commande pour les systèmes de type UNIX et Windows. La suite est divisée par protocole et devrait permettre un scripting utile de paquets injectés à partir de scripts shell simples.
La dernière version est toujours disponible sur GitHub à l'adresse
Chaque protocole pris en charge utilise son propre « injecteur » de protocole, accompagné d'une page de manuel expliquant son fonctionnement.
Consultez le ChangeLog pour les détails des versions, et la documentation de chaque injecteur de protocole pour des descriptions détaillées des fonctionnalités disponibles.
Injecter une redirection ICMP malformée
sudo nemesis icmp -S 10.10.10.3 -D 10.10.10.1 -G 10.10.10.3 -i 5
DHCP Discover (doit utiliser sudo et -d pour envoyer avec l'IP source 0.0.0.0) :
sudo nemesis dhcp -d eth0
Rejoindre le groupe IGMP v2 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
Requête IGMP v2, temps de réponse max. 10 s, avec option IP Router Alert
echo -ne '\x94\x04\x00\x00' >RA
sudo nemesis igmp -v -p 0x11 -c 100 -D 224.0.0.1 -O RA
ou
echo -ne '\x94\x04\x00\x00' | sudo nemesis igmp -v -p 0x11 -c 100 -D 224.0.0.1 -O -
Requête IGMP v3, avec option IP Router Alert
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
Paquet TCP aléatoire
sudo nemesis tcp
Test DoS et DDoS
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 est construit autour de libnet. Les builds pour plateforme Windows nécessitent également libpcap. Nemesis <= 1.4 a été construit autour de libnet 1.0 et Nemesis >= 1.5 nécessite libnet 1.1 ou ultérieur.
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
Sur les systèmes GNU/Linux dérivés de Debian et Ubuntu :
sudo apt install libnet1-dev
Ceci installe les en-têtes et la bibliothèque libnet dans un emplacement standard que le script configure trouve facilement. Si votre installation de libnet1 se trouve dans un emplacement non standard, vous pouvez fournir les chemins comme ceci :
configure LDFLAGS=-L/path/to/lib CPPFLAGS=-I/path/to/header
Le système GNU Configure & Build utilise /usr/local comme préfixe d'installation par défaut. Cela suffit généralement, l'exemple ci-dessous installe dans /usr à la place :
tar xf nemesis-1.7.tar.xz
cd nemesis-1.7/
./configure --prefix=/usr
make -j5
sudo make install-strip
nemesis.exe peut être installé n'importe où sur un système Windows. L'astuce est que LibnetNT.dll doit exister soit dans le même répertoire que nemesis.exe, soit dans l'un des répertoires listés dans la variable %PATH%. Sur Windows 2000, ce serait %SystemRoot%\System32
Remarque : la version Windows n'a pas été testée ni essayée depuis plus d'une décennie. YYMV
Si vous souhaitez contribuer, ou simplement essayer les toutes dernières fonctionnalités encore non publiées, vous devez savoir quelques choses sur le système GNU Configure & Build :
configure.ac et un Makefile.am par répertoire sont les fichiers clésconfigure et Makefile.in sont générés par autogen.sh, ils ne sont pas stockés dans GIT mais générés automatiquement pour les archives de versionMakefile est généré par le script configurePour compiler à partir de GIT, vous devez d'abord cloner le dépôt et exécuter le script autogen.sh. Cela nécessite que automake et autoconf soient installés sur votre système.
git clone https://github.com/libnet/nemesis.git
cd nemesis/
./autogen.sh
./configure && make
Les sources GIT sont une cible mobile et ne sont pas recommandées pour les systèmes de production, sauf si vous savez ce que vous faites !
Le projet est actuellement maintenu sur GitHub avec l'intention de servir de point focal pour de nouveaux développements. Si vous avez des correctifs et/ou des idées, veuillez les soumettre via le suivi des problèmes ou sous forme de demandes de tirage (pull requests).