Разработчик(и) | Джордан Риттер |
---|---|
Стабильный релиз | 1.47 [1] / 7 сентября 2017 г. ( 7 сентября 2017 ) |
Репозиторий |
|
Написано в | С |
Операционная система | Linux , Solaris , illumos FreeBSD , NetBSD , OpenBSD , Mac OS X , дополнительные системы *NIX , Windows |
Тип | Анализатор пакетов |
Лицензия | BSD-стиль [2] |
Веб-сайт | https://github.com/jpr5/ngrep [3] |
ngrep ( network grep ) — сетевой анализатор пакетов, написанный Джорданом Риттером . Он имеет интерфейс командной строки и использует библиотеку pcap и библиотеку GNU regex .
ngrep поддерживает логику Berkeley Packet Filter ( BPF ) для выбора сетевых источников, пунктов назначения или протоколов, а также позволяет сопоставлять шаблоны или регулярные выражения в полезной нагрузке пакетов с использованием синтаксиса GNU grep , отображая данные пакетов в удобном для человека виде.
ngrep — это приложение с открытым исходным кодом, и исходный код доступен для загрузки с сайта ngrep на GitHub . Его можно скомпилировать и перенести на несколько платформ, он работает во многих UNIX-подобных операционных системах : Linux , Solaris , illumos , BSD , AIX , а также работает в Microsoft Windows . [4]
ngrep похож на tcpdump , но он может искать регулярное выражение в полезной нагрузке пакета и показывать соответствующие пакеты на экране или консоли. Он позволяет пользователям видеть весь незашифрованный трафик, проходящий по сети, переводя сетевой интерфейс в режим promiscuous mode .
ngrep с соответствующим синтаксисом фильтра BPF может использоваться для отладки взаимодействий с простыми текстовыми протоколами, такими как HTTP , SMTP , FTP , DNS и т. д., или для поиска определенной строки или шаблона с использованием синтаксиса регулярных выражений grep . [5] [6]
ngrep также можно использовать для захвата трафика в сети и сохранения файлов дампа pcap или для чтения файлов, созданных другими приложениями-анализаторами, такими как tcpdump или wireshark .
ngrep имеет различные параметры или аргументы командной строки. Страница man ngrep в UNIX-подобных операционных системах показывает список доступных параметров.
В этих примерах предполагается, что eth0 является используемым сетевым интерфейсом.
ngrep -l -q -d eth0 -i "^GET |^POST " tcp и порт 80
ngrep -l -q -d eth0 -i "User-Agent: " tcp и порт 80
ngrep -l -q -d eth0 -i "" udp и порт 53
Для захвата необработанного сетевого трафика с интерфейса требуются специальные привилегии или привилегии суперпользователя на некоторых платформах, особенно в Unix-подобных системах. Поведение ngrep по умолчанию заключается в сбросе привилегий на этих платформах и запуске под определенным непривилегированным пользователем.
Как и tcpdump, ngrep можно использовать для конкретной цели — перехвата и отображения сообщений другого пользователя или компьютера, или целой сети.
Привилегированный пользователь, запускающий ngrep на сервере или рабочей станции, подключенной к устройству, настроенному на зеркалирование портов на коммутаторе , маршрутизаторе или шлюзе , или подключенному к любому другому устройству, используемому для захвата сетевого трафика в локальной , городской или глобальной сети , может просматривать всю незашифрованную информацию, связанную с идентификаторами входа, паролями или URL-адресами , а также содержимое веб-сайтов, просматриваемых в этой сети.