ngrep

Network Analysis v1.49.0 · 08.02.2026 активный

Network grep — применяет POSIX-расширенные регулярные выражения к полезной нагрузке сетевых пакетов в реальном времени или из PCAP; поддерживает BPF-фильтры и незаменим для отладки прикладных протоколов.

v1.49.0
08.02.2026 current
Добавлен 26.06.2026 · Обновлён 26.06.2026 · Network Analysis
Установка
# Kali / Debian / Ubuntu
sudo apt install ngrep

# macOS
brew install ngrep

# Из исходников
git clone https://github.com/jpr5/ngrep
cd ngrep && ./configure && make && sudo make install

# Пример: поиск паролей в трафике
sudo ngrep -d eth0 'password' tcp port 80

# Захват HTTP GET-запросов
sudo ngrep -W byline 'GET' tcp port 80
переведено ИИ

ngrep 1.49.0 (2.7.2026) Build

ngrep — это как GNU grep, применённый к сетевому уровню. Это инструмент на основе PCAP, который позволяет задавать расширенное регулярное или шестнадцатеричное выражение для поиска совпадений в полезной нагрузке пакетов. Он поддерживает множество протоколов, включая IPv4/6, TCP, UDP, ICMPv4/6, IGMP и Raw, на широком спектре типов интерфейсов, а также понимает логику фильтров BPF точно так же, как и более распространённые инструменты перехвата пакетов, такие как tcpdump и snoop.

Что нового

  • Разрешение имён контейнеров для Docker/Podman (флаг -r)
  • Поддержка отображения данных в кодировке UTF8 при указании -u
  • Обновление до PCRE2 (по умолчанию в сборках MacOS/homebrew и Windows)
  • Добавлен дополнительный уровень тишины для определённых сценариев фильтрации
  • Обновление до последних autotools для ngrep и regex-0.12 (2.72, 2023)
  • Обновление man-страницы: исправлены отсутствующие опции и опечатки
  • Исправление определения типов BPF DLT_ в libpcap (например, DLT_LINUX_SLL)
  • Добавлена возможность указания расположения заголовочных файлов PCRE2
  • Устранены различные нефатальные предупреждения при сборке (например, pcap_lookupdev объявлен устаревшим)
  • Исправлен ./configure --disable-tcpkill
  • Очистка исходного кода (удалены старые файлы, неиспользуемые переменные, отсутствующие ссылки и т.д.)
  • WinXX: -d теперь принимает имя устройства (например, \Device\...)
  • WinXX: Удалён хак delay_socket, вместо него используется Sleep()
  • WinXX: Сборка с PCRE2 по умолчанию
  • WinXX: Добавлен новый выделенный скрипт сборки (build.ps1)
  • WinXX: Сборка для архитектур CPU x86_64 и ARM64

Установка

Docker

Простейший способ запуска ngrep — через Docker:

docker pull ghcr.io/jpr5/ngrep:latest
docker run --rm --net=host --cap-add=NET_RAW ghcr.io/jpr5/ngrep:latest -q 'GET|POST' tcp port 80

Подробные инструкции по использованию Docker см. в DOCKER.

Готовые бинарные файлы

Скачайте предсобранные бинарные файлы на странице Releases.

Сборка из исходного кода

Инструкции по сборке см. в INSTALL.

Как использовать

ngrep первоначально был разработан для:

  • отладки взаимодействий с протоколами, использующими открытый текст, таких как HTTP, IMAP, DNS, SIP и т.д.
  • обнаружения и анализа аномальных сетевых коммуникаций, таких как взаимодействия между вредоносным ПО, зомби и вирусами
  • хранения, чтения и повторной обработки дамп-файлов pcap при поиске определённых шаблонов данных

Кроме того, его можно использовать для сбора учётных данных в открытом виде, например при HTTP-аутентификации Basic, аутентификации FTP или POP3. Как и любой полезный инструмент, ngrep может использоваться как во благо, так и во вред.

Посетите EXAMPLES, чтобы узнать больше о том, как работает ngrep и как его можно использовать для просмотра различных интересных вещей.

Рабочие платформы

ngrep был широко портирован на множество платформ, но со временем доступ к ним сократился. Приведённый ниже список является исходным; актуальный список подтверждённых рабочих платформ можно найти в наших автосборках, которые включают наиболее популярные ОС, компиляторы и архитектуры процессоров.

  • Linux 2.0+ (RH6+, SuSE, TurboLinux, Debian, Gentoo, Ubuntu, Mandrake, Slackware)/x86, RedHat/alpha, Cobalt (Qube2), Linux/MIPS
  • Solaris 2.5.1, 2.6/SPARC, Solaris 7, Solaris 8/SPARC, Solaris 9/SPARC
  • FreeBSD 2.2.5, 3.1, 3.2, 3.4-RC, 3.4-RELEASE, 4.0, 5.0
  • OpenBSD 2.4 (после обновления pcap до 0.2), 2.9, 3.0, 3.1+
  • NetBSD 1.5/SPARC
  • Digital Unix V4.0D (OSF/1), Tru64 5.0, Tru64 5.1A
  • HPUX 11
  • IRIX
  • AIX 4.3.3.0/PowerPC
  • BeOS R5
  • Mac OS X 10+
  • GNU HURD
  • Windows 95, 98, NT, 2000, XP, 2003/x86, 7, 8, 8.1, 10

Поддержка, отзывы и исправления

Если вам нужна помощь, конструктивная обратная связь или вы хотите отправить исправление, пожалуйста, посетите проект ngrep на GitHub и воспользуйтесь доступными там онлайн-инструментами. Это поможет автору лучше управлять различными запросами и исправлениями, чтобы ничто не было упущено (к, сожалению, случалось в прошлом).

  • Проблемы: https://github.com/jpr5/ngrep/issues
  • Исправления: https://github.com/jpr5/ngrep/pulls

Пожалуйста, ознакомьтесь с CREDITS, чтобы увидеть частичный список многих людей, которые помогли сделать ngrep тем, чем он является сегодня. Также обратите внимание, что ngrep распространяется под простой лицензией в стиле BSD, хотя в зависимости от используемой при компиляции библиотеки регулярных выражений вы получите либо GPL (GNU regex), либо BSD (PCRE2).

Обращение к сопровождающим пакетов в дистрибутивах

На протяжении десятилетий (!) ngrep был де-факто включён во многие популярные дистрибутивы, несколько из которых имеют выделенных сопровождающих пакетов. Многие из них с пользой для дела обрабатывали сообщения о проблемах от пользователей своих дистрибутивов и даже создавали исправления для ngrep — но я редко об этом узнавал. Каждые несколько лет мне приходится искать, какие отчёты об ошибках и исправления могут существовать, часто в сложных системах отслеживания, специфичных для поставщиков, чтобы я мог внедрить их на благо всех. А иногда я не нахожу их все.

Если вы являетесь сопровождающим пакетов для ОС или дистрибутива и занимаетесь обработкой отчётов об ошибках или написанием исправлений для ngrep, пожалуйста, по крайней мере копируйте меня в переписку, чтобы я мог отслеживать (и, возможно, исправлять) проблему. В идеале пришлите мне ссылку на исправление или запрос на слияние, чтобы я мог его проверить и включить.

Я так считаю: в конце концов это мой код, и моя ответственность, но я не могу быть везде и видеть всё. Мне нужна ваша помощь, чтобы делать хорошо свою работу.

Благодарю вас от всего сердца за всё, что вы сделали, и за всё, что ещё сделаете. 🙏

Комментарии
Войдите, чтобы оставить комментарий