Одминский блог
Блог о технологиях, технократии и методиках борьбы с граблями
Использование утилиты tcpdump
Tcpdump чрезвычайно удобный сетевой анализатор, очень помогающий в работе как сетевым администраторам, так и безопасникам. Естественно что для получения максимальной информации при работе с tcpdump, просто необходимо иметь представления о стеке протоколов TCP/IP. Для удобства можно использовать более удобные и интеллектуальные программы, например Wareshark, но часто возникают ситуации когда на тестируемую машину не представляется возможным установить дополнительные сервисы, и тогда tcpdump просто незаменим, не будит же админ, ради анализа пакетов, ставить на unix’овый сервак X-Windows тем более что в большинстве unix’овых систем, утилита tcpdump идет по умолчанию.
Понимание протокола TCP/IP дает широкое пространство для использование анализатора и устранения неисправностей и неполадок в работе сети, за счет разбора пакетов. Поскольку оптимальное использование данной утилиты требует хорошего понимания сетевых протоколов и их работы, то получается забавная ситуация, в которой инженеру в любом случае необходимо знать и понимать механизмы передачи данных в сети. т.ч. tcpdump полезна во все отношениях: как устранения неисправностей, так и самообразования.
Ниже приводятся несколько опций, которые помогут наиболее полно и подробно использовать эту утилиту, тем более что все эти опочки и ключики довольно легко забываются, и данные примеры весьма полезны, для освежевания памяти.
Первый используемый ключик -n который запрещает попытки преобразования адресов в доменные имена, тем самым выдавая нам чистые IP адреса с портами.
Второй это -X который задает для каждого пакета вывод как hex (шестнадцатеричная система) так и ASCII содержимого пакета.
И последняя опция это -S которая заменяет вывод относительной TCP нумерации, на абсолютную. Смысл в том, что при относительной нумерации некоторые проблемы могут скрыться от вашего внимания.
Нужно понимать, что основное преимущество tcpdump перед другими утилитами заключается в том, что в ней возможен подробный и ручной разбор пакетов. Также нужно помнить что по умолчанию tcpdump использует только первые 68 байт пакета, т.ч. если необходимо видеть больше, то следует использовать ключ -s number , где number количество байт которые следует захватить. В случае задания number 0 , произойдет полный захват пакета, поэтому лучше использовать значение 1514, что даст полный захват стандартного, для сетей Ethernet, пакета.
Список наиболее часто используемых ключей:
-c : задается проверка размера файла захвата перед каждой очередной записью захваченного пакета, если размер больше, то файл сохраняется и запись идет в новый файл
-e : выводится ethernet заголовок (канальный уровень) в каждой строке дампа
-i any : прослушивание всех интерфейсов, на случай если вам необходим весь трафик.
-n : запрещает преобразование адресов в доменные или символьные имена
-nn : запрещает преобразование адресов и портов в доменные или символьные имена
-q : Красткий вывод информации, за счет уменьшения вывода информации о протоколе.
-X : выводит как hex так и ASCII содержимое пакета
-v, -vv, -vvv : задает вывод дополнительной информации о захваченных пакетах, что дает возможность более широкого анализа.
Несколько примеров для использования:
# Стандартный вывод пакетов
tcpdump -nS
# Расширенный стандартный вывод
tcpdump -nnvvS
# Глубокий разбор пакета
tcpdump -nnvvXS
# Наиболее подробная информация о трафике
tcpdump -nnvvXSs 1514
Выражения позволяют производить более целевое сканирование и задавать типы трафика. Умение использовать выражения делает tcpdump весьма продуктивным инструментом, в рукам сисадмина. Существует три основных типа выражений: type, dir, and proto.
Опции выражжения type бывают host, net и port.
Для выражения направления задаваемого dir существующие опции src, dst, src or dst, и src and dst.
Несколько стандартных выражений:
host // анализ трафика на основе IP адреса ( также работает с символьными именами, если не задано -n)
tcpdump host 1.2.3.4
src, dst // анализ трафика только для определенного назначения или передатчика
tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6
net // захват трафика принадлежащего определенной сети
tcpdump net 1.2.3.0/24
proto // работает с tcp, udp, и icmp. Нужно помнить что proto не упоминается
tcpdump icmp
port // анализ трафика с определенного порта (входящего или исходящего)
tcpdump port 3389
src, dst port // фильтр базируется на входящем или исходящем порту
tcpdump src port 1025
tcpdump dst port 3389
Но наиболее сильным инструментом являются операнды, позволяющие задавать условия для выражений и опций, для более подробного вычленения информации об анализируемом трафике.
AND
and or &&
OR
or or ||
EXCEPT
not or !
TCP трафик с ресурса 10.15.123.33 с портом назвачения 3379:
# tcpdump -nnvvS tcp and src 10.15.123.33 and dst port 3379
Трафик переходящий из сети 192.168 с назначением на сети 10 или 172.16:
# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
Non-ICMP трафик с точкой назначения 192.168.0.2 и из сети 172.16:
# tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/16 and not icmp
Трафик с хостов Eros or Ares , но не идущий на стандартный SSH порт (для данного выражения требуется разрешение имен):
# tcpdump -vv src eros or ares and not dst port 22
Как видно из приведенных примеров, мы можем строить любые выражения, для любых целей. Также, используя сложный синтаксис, из анализа мы можем исключать любой тип трафика.
Также следует помнить о том, что мы можем строить запросы, включающие группы и пулы опций, заданных в одном запросе. Но для того чтобы утилита tcpdump обращала на них внимание их нужно помещать в скобки, беря выражение в одиночные кавычки:
Трафик идущий с хоста 10.0.2.4 на порты назначения 3379 или 22:
# tcpdump ‘src 10.0.2.4 and (dst port 3379 or 22)’
Также возможно производить фильтрацию на основе TCP флагов, например для вычленения SYN или RST пакетов:
Анализировать все URG пакеты:
# tcpdump ‘tcp[13] & 32 != 0′
Анализировать все ACK пакеты:
# tcpdump ‘tcp[13] & 16 != 0′
Анализировать все PSH пакеты:
# tcpdump ‘tcp[13] & 8 != 0′
Анализировать все RST пакеты:
# tcpdump ‘tcp[13] & 4 != 0′
Анализировать все SYN пакеты:
# tcpdump ‘tcp[13] & 2 != 0′
Анализировать все FIN пакеты:
# tcpdump ‘tcp[13] & 1 != 0′
Анализировать все SYN-ACK пакеты:
# tcpdump ‘tcp[13] = 18′
Нужно помнить что фильтр обрабатывает данный запрос следующим образом, проверяет 13 байт заголовка TCP пакета и заданный байт флага, на соответствие условию, например:
tcpdump ‘tcp[13] & 2 != 0′ – просмотр и сравнение 13 и 2 байтов заголовка, на условие что данные не равны 0, т.е. заданы 1.
Анализ специализированного трафика:
Анализировать весь IPv6 трафик:
# tcpdump ip6
Анализировать весь трафик с имеющимися флагами SYN и RST:
# tcpdump ‘tcp[13] = 6′
Анализировать весь трафик с имеющимся “evil bit”:
# tcpdump ‘ip[6] & 128 != 0′
Естественно что приведенные примеры не могут охватить всю полноту использования столь мощного инструмента как tcpdump, поэтому как обычно, лучшим другом сисадмина был и остается:
# man man
надеюсь что данная статья сможет несколько облегчить непростой опыт общения с этой замечательной программой
linux-notes.org
Установка и использование tcpdump
tcpdump — мощный анализатор командной строки и Libpcap, портативная библиотека для захвата сетевого трафика. Tcpdump выводит описание содержимого пакетов на сетевом интерфейсе, которые соответствуют логическое выражение. Он также может быть запущен с ключом -w, который вызывает его, чтобы сохранить пакетные данные в файл для последующего анализа, и / или с -r флагом, который вызывает его для чтения из сохраненного файла пакета. С помощью этой утилиты можно перехватывать и так же анализировать сетевой трафик который проходит через ПК на котором запущенна данная программа.
Хотелось бы поговорить в данной теме «установка и использование tcpdump» об установке tcpdump, а так же как им пользоваться и для чего он нужен.
С помощью tcpdump можно:
- Можно делать отладку сетевых приложений.
- Можно производить отладку сети или сетевого оборудования в целом.
Чтобы установить tcpdump на debian/ubuntu/linux mint нужно выполнить:
Для того чтобы установить tcpdump на RedHat/CentOS/Fedora используйте:
Для того чтобы установить tcpdump на MacOS используйте.
Использование tcpdump.
Чтобы проверить работает ли у нас tcpdump можно выполнить команду:
Существует довольно много ключей для использования самой утилиты tcpdump, приведу список распространенных:
основные ключи для использования tcpdump
Если нужно узнать какими пакетами обменивается 21 сервера ( например your_server_1 и your_server_2), то для этого служит команда:
Если нужно отслеживать только исходящие пакеты из хоста, то выполните:
Если нужно отслеживать только входящие пакеты из хоста, то выполните:
Так же можно прослушивать исходящие или входящие пакеты с сервера и по определенному порту для этого просто добавьте порт который нужно прослушивать ( в основном используется 80, 8080).
См. список интерфейсов, по которым tcpdumt можете слушать:
Слушать интерфейс eth0:
Слушать на любом доступном интерфейсе (Требуется ядро Linux версии 2.2 или выше):
Вывод всего на экран (все что выполняется программой):
Вывод много чего на экран (все что выполняется программой):
Вывод очень много всего на экран (все что выполняется программой):
Выводить не сильно много информации когда идет захват пакетов (не как стандартный):
Ограничить захват пакетов до 100:
Записать все данные (перехваченные пакеты) в файл с именем capture.cap:
Записать все данные (перехваченные пакеты) в файл с именем capture.cap и вывести на экран в режиме реального времени:
Вывод пакетов с файла capture.cap:
Вывод пакетов с файла capture.cap используя максимально много информации:
Вывод IP и порты вместо доменов идет захват пакетов:
Захват любых пакетов , где хост назначения — 192.138.1.1. Вывод ИП и порты на экран:
Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:
Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:
Захват пакетов где сеть 192.138.1.0/24. Вывод ИП и порты на экран:
Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:
Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:
Захват пакетов с порта 23. Вывод ИП и порты на экран:
Захват пакетов с портов 1 по 1023. Вывод ИП и порты на экран:
Захватывать только TCP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:
Захватывать только UDP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:
Захват пакетов с destination где ИП 192.138.1.1 и destination порт которого 23. Вывод на экран:
Захват пакетов с destination где ИП 192.138.1.1 и destination по портам 80 или 443. Выводим на экран:
Захват любых ICMP пакетов:
Захват любых ARP пакетов:
Захват любых ICMP или ARP пакетов:
Захват любых пакетов которые broadcast или multicast:
Захват больших пакетов (500 байт) а не стандартных 68б:
Захват всех байт данных в пакете:
Просмотр «тяжелых пакетов»:
Захват пакетов ICMP с ping и pong:
Вывод без многих вариантов:
Основные коммуникации (очень подробный режим), можно увидеть хороший объем трафика, с многословием:
Глубокий взгляд на трафик, добавляет -X для полезной нагрузки:
Просмотр тяжелого пакета и увеличивает snaplength, захватывая весь пакет:
Вы можете также фильтровать на основе определенных частей пакета, а также объединить несколько условий в группы. Это полезно при поиске только SYNs или РСТ, например, и последний для еще более расширенный изоляцией трафика.
Показать мне все URGENT (URG) пакеты:
Показать мне всеACKNOWLEDGE (ACK) пакеты:
Показать мне все PUSH (PSH) пакеты:
Показать мне все RESET (RST) пакеты:
Показать мне все SYNCHRONIZE (SYN) пакеты:
Показать мне все FINISH (FIN) пакеты:
Показать мне все SYNCHRONIZE/ACKNOWLEDGE (SYNACK) пакеты:
Захват TCP Flags используя tcpflags:
Пакеты с RST и SYN флагами (проверка):
Траффик с ‘Evil Bit'(проверка):
На этом я завершу свою статью «установка и использование tcpdump», надеюсь все ясно и понятно. Спасибо за использование моего интернет ресурса http://linux-notes.org
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
TCPDUMP for Windows
Утилита командной строки для прослушивания сетевого трафика в среде ОС Windows.
tcpdump.exe — Windows-клон известного UNIX-сниффера tcpdump, скомпилированный из оригинального исходного кода проекта tcpdump.org вместе с Packet Sniffer SDK, собственной технологией перехвата сетевого трафика Microolap Technologies.
Решаемые задачи
- Перехват и анализ сетевого трафика с любого из имеющихся на системе сетевых интерфейсов;
- Фильтрация трафика по огромному набору фильтров пакетов по таким критериям, как: протокол, хост, порт, диапазоны адресов и портов, MAC-адрес, размер пакета;
- Автоматизация задач по анализу сетевого трафика;
- Запись трафика в PCAP-файлы, фильтрация ранее записанных PCAP-файлов.
Более подробно применение TCPDUMP for Windows описано в разделе Примеры применения.
Ссылки на различную документацию по tcpdump находятся в разделе Документация и ссылки.
Как это выглядит
Достаточно запустить (например, с флешки) tcpdump.exe — единственный исполняемый файл — и указать необходимый набор параметров.
Никакие драйверы предварительно устанавливать не требуется, перезапуск машины также не требуется — нужно только запустить tcpdump.exe с правами администратора.
TCPDUMP for Windows работает в любой из следующих сред выполнения:
Эти свойства программы обеспечивает наша собственная технология перехвата трафика — библиотека Packet Sniffer SDK, разработку которой мы ведём и поддерживаем с 1998 года.
Вывод tcpdump.exe полностью соответствует выводу UNIX-версии.
Лицензирование и цена
Microolap TCPDUMP for Windows поставляется с лицензией, допускающей бесплатное использование только в личных некоммерческих целях. Для коммерческого использования необходимо приобрести лицензию.
Стоимость коммерческой лицензии по безналичному расчёту для организаций составляет 14 900 ₽.
Лицензирование происходит по принципу “одна лицензия — один специалист”, количество машин не ограничивается.
Стоимость лицензии окупается за 10-15 сэкономленных человеко-часов специалиста, который получит возможность использовать привычный tcpdump не только в *nix среде, но и в Windows.
Другие способы оплаты доступны через сервис MyCommerce/Share-It.