
Инструмент для формирования сетевых пакетов в Linux.
Pig (что можно понять как Packet intruder generator — генератор вторжений пакетов) — это инструмент для создания пакетов в Linux.
Вы можете использовать Pig для тестирования ваших IDS/IPS и прочих средств.
Pig содержит набор готовых известных сигнатур атак, который можно расширить более специфичными вещами в соответствии с вашими требованиями.
На данный момент можно создавать сигнатуры IPv4 с транспортным уровнем на основе TCP, UDP и ICMP.
Также можно создавать сигнатуры на основе протокола ARP, а также собирать пакет, начиная с его кадра Ethernet.
Если вы попали сюда по моей статье в 2600 из выпуска SPRING 2016 issue,
продолжайте читать следующие разделы документации, потому что этот маленький Pig с тех пор развивался.
Это очень просто:
[email protected]:~/src# git clone https://github.com/rafael-santiago/pig pig
[email protected]:~/src# cd pig
[email protected]:~/src/pig# git submodule update --init
Для сборки pig нужно использовать Hefesto. После выполнения
шагов по установке Hefesto в вашей системе перейдите в подкаталог pig с именем src и выполните
следующую команду:
[email protected]:~/src/pig/src# hefesto
После этой команды вы должны найти бинарный файл pig по пути src/bin. Вы можете использовать бинарник относительно
src/bin или установить его.
Если по какой-то причине у вас возникли проблемы со сборкой, попробуйте прочитать некоторые замечания в BUILD.md.
Для установки нужно находиться внутри подкаталога src и выполнить:
[email protected]:~/src/pig/src# hefesto --install
Для удаления, находясь в подкаталоге src, выполните:
[email protected]:~/src/pig/src# hefesto --uninstall
Файлы Pigsty — это обычные текстовые файлы, в которых можно определить набор сигнатур пакетов. Существует определённый синтаксис,
который необходимо соблюдать. Вот пример файла pigsty:
[ signature = "Hello",
ip.version = 4,
ip.ihl = 5,
ip.tos = 0,
ip.src = 192.30.70.10,
ip.dst = 192.30.70.3,
ip.protocol = 17,
udp.dst = 1008,
udp.src = 32000,
udp.payload = "Hello!!" ]
В основном все данные сигнатуры должны находиться между квадратными скобками: [ ... ].
Внутри этой области информация задаётся по схеме поле = данные.
Если у вас есть опыт работы с компьютерными сетями, то большинство полей, перечисленных в Таблице 1,
вероятно, имеют для вас ясное значение. Вы должны использовать эти поля для создания своих сигнатур.
Таблица 1: Поля сигнатур pig.