
Утилита командной строки для создания и инъекции сетевых пакетов
Проект Nemesis предназначен для создания портативного человеческого IP-стека на базе командной строки для систем, подобных UNIX, и Windows. Набор разбит по протоколам и должен позволять удобно создавать сценарии инжекции пакетов из простых shell-скриптов.
Последняя версия всегда доступна на GitHub по адресу
Каждый поддерживаемый протокол использует собственный «инжектор» протокола, сопровождаемый man-страницей, объясняющей его функциональность.
Сведения о релизах см. в ChangeLog, а подробные описания доступных функций — в документации для каждого инжектора протокола.
Инжекция некорректного ICMP-редиректа
sudo nemesis icmp -S 10.10.10.3 -D 10.10.10.1 -G 10.10.10.3 -i 5
DHCP Discover (требуется sudo и -d для отправки с исходным IP 0.0.0.0):
sudo nemesis dhcp -d eth0
Присоединение к группе 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
Запрос IGMP v2, макс. время ответа 10 с, с 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
или
echo -ne '\x94\x04\x00\x00' | sudo nemesis igmp -v -p 0x11 -c 100 -D 224.0.0.1 -O -
Запрос IGMP v3 с 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
Случайный TCP-пакет
sudo nemesis tcp
Тестирование DoS и 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 построен на основе libnet. Для сборки на платформе Windows также требуется libpcap. Nemesis <= 1.4 был построен на libnet 1.0, а для Nemesis >= 1.5 требуется libnet 1.1 или новее.
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
В системах GNU/Linux на основе Debian и Ubuntu:
sudo apt install libnet1-dev
Это устанавливает заголовочные файлы и библиотеку libnet в стандартное расположение, которое скрипт configure легко находит. Если ваша установка libnet1 находится в нестандартном месте, вы можете указать пути следующим образом:
configure LDFLAGS=-L/path/to/lib CPPFLAGS=-I/path/to/header
Система GNU Configure & Build использует /usr/local в качестве префикса установки по умолчанию. Обычно этого достаточно, следующий пример устанавливает в /usr:
tar xf nemesis-1.7.tar.xz
cd nemesis-1.7/
./configure --prefix=/usr
make -j5
sudo make install-strip
nemesis.exe можно установить в любом месте системы Windows. Нюанс заключается в том, что LibnetNT.dll должна находиться либо в том же каталоге, что и nemesis.exe, либо в любом из каталогов, перечисленных в переменной %PATH%. В Windows 2000 это было бы %SystemRoot%\System32
Примечание: сборка для Windows не тестировалась и не проверялась более десяти лет. YYMV
Если вы хотите внести свой вклад или просто попробовать последние, еще не выпущенные функции, вам нужно знать несколько вещей о системе GNU Configure & Build:
configure.ac и Makefile.am в каждом каталоге — ключевые файлыconfigure и Makefile.in генерируются из autogen.sh, они не хранятся в GIT, а автоматически генерируются для tarball'ов релизовMakefile генерируется скриптом configureЧтобы собрать из GIT, сначала клонируйте репозиторий и запустите скрипт autogen.sh. Для этого в вашей системе должны быть установлены automake и autoconf.
git clone https://github.com/libnet/nemesis.git
cd nemesis/
./autogen.sh
./configure && make
Исходники GIT являются движущейся целью и не рекомендуются для производственных систем, если вы не знаете, что делаете!
В настоящее время проект поддерживается на GitHub с намерением служить центром для новой разработки. Если у вас есть патчи и/или идеи, пожалуйста, отправляйте их через трекер проблем или как pull request'ы.