Network grep — применяет POSIX-расширенные регулярные выражения к полезной нагрузке сетевых пакетов в реальном времени или из PCAP; поддерживает BPF-фильтры и незаменим для отладки прикладных протоколов.
# 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 — это как GNU grep, применённый к сетевому уровню. Это инструмент на основе PCAP, который позволяет задавать расширенное регулярное или шестнадцатеричное выражение для поиска совпадений в полезной нагрузке пакетов. Он поддерживает множество протоколов, включая IPv4/6, TCP, UDP, ICMPv4/6, IGMP и Raw, на широком спектре типов интерфейсов, а также понимает логику фильтров BPF точно так же, как и более распространённые инструменты перехвата пакетов, такие как tcpdump и snoop.
-r)-uDLT_ в libpcap (например, DLT_LINUX_SLL)pcap_lookupdev объявлен устаревшим)./configure --disable-tcpkill-d теперь принимает имя устройства (например, \Device\...)delay_socket, вместо него используется Sleep()build.ps1)Простейший способ запуска 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-аутентификации Basic, аутентификации FTP или POP3. Как и любой полезный инструмент, ngrep может использоваться как во благо, так и во вред.
Посетите EXAMPLES, чтобы узнать больше о том, как работает ngrep и как его можно использовать для просмотра различных интересных вещей.
ngrep был широко портирован на множество платформ, но со временем доступ к ним сократился. Приведённый ниже список является исходным; актуальный список подтверждённых рабочих платформ можно найти в наших автосборках, которые включают наиболее популярные ОС, компиляторы и архитектуры процессоров.
Если вам нужна помощь, конструктивная обратная связь или вы хотите отправить исправление, пожалуйста, посетите проект ngrep на GitHub и воспользуйтесь доступными там онлайн-инструментами. Это поможет автору лучше управлять различными запросами и исправлениями, чтобы ничто не было упущено (к, сожалению, случалось в прошлом).
Пожалуйста, ознакомьтесь с CREDITS, чтобы увидеть частичный список многих людей, которые помогли сделать ngrep тем, чем он является сегодня. Также обратите внимание, что ngrep распространяется под простой лицензией в стиле BSD, хотя в зависимости от используемой при компиляции библиотеки регулярных выражений вы получите либо GPL (GNU regex), либо BSD (PCRE2).
На протяжении десятилетий (!) ngrep был де-факто включён во многие популярные дистрибутивы, несколько из которых имеют выделенных сопровождающих пакетов. Многие из них с пользой для дела обрабатывали сообщения о проблемах от пользователей своих дистрибутивов и даже создавали исправления для ngrep — но я редко об этом узнавал. Каждые несколько лет мне приходится искать, какие отчёты об ошибках и исправления могут существовать, часто в сложных системах отслеживания, специфичных для поставщиков, чтобы я мог внедрить их на благо всех. А иногда я не нахожу их все.
Если вы являетесь сопровождающим пакетов для ОС или дистрибутива и занимаетесь обработкой отчётов об ошибках или написанием исправлений для ngrep, пожалуйста, по крайней мере копируйте меня в переписку, чтобы я мог отслеживать (и, возможно, исправлять) проблему. В идеале пришлите мне ссылку на исправление или запрос на слияние, чтобы я мог его проверить и включить.
Я так считаю: в конце концов это мой код, и моя ответственность, но я не могу быть везде и видеть всё. Мне нужна ваша помощь, чтобы делать хорошо свою работу.
Благодарю вас от всего сердца за всё, что вы сделали, и за всё, что ещё сделаете. 🙏