Захват пакетов с tcpdump: руководство с примерами. Руководство по tcpdump

Что это такое?

Для специалистов по компьютерной безопасности утилита TCPdump может стать главным инструментом. Это важное приложение, связанное с большим количеством нюансов. Многим нравятся инструменты более высокого уровня, но такой подход часто воспринимают как ошибочный.

Программу создали для прослушивания и анализа работы сети. Благодаря дополнительным настройкам программа может проводить анализ для разных пакетов – предназначенных не только для конкретного Mac-адреса. Допустим широковещательный тип.

Доступна утилита TCPdump не только в Linux, но и Windows. Скачать оригинальный клон можно с официального сайта, но продукт платный.Что за утилита

Оборудование для подключения к сети определяет набор возможностей, доступных пользователю. Вот некоторые из них:

  1. «Трюки» с концентраторами. Коммутаторный порт, прослушка которого необходима, соединяют с участием концентратора. Узел-монитор тоже соединяют с коммутатором. Сетевое подключение отличается низкой производительностью, но результаты всё равно есть.
  2. Использование специальных средств или ответвителей. Они включаются в разрыв сетевых подключений. Передают трафик на отдельный порт, в результате чего становится доступным его прослушивание.
  3. Копирование трафика. Поддерживается только некоторыми коммутаторами.
  4. Наблюдение за коммутаторами или свичами, образующие сеть. Коммутатору доступен не только трафик сети, но и весь широковещательный трафик, связанный с сегментом.
  5. Работа в сетях на основе концентраторов.

Доступные функции

Человек может использовать следующий параметр для печати строк tcpdump и libpcap. Кроме того, он способен распечатать сообщение об использовании инструмента, в котором указаны все доступные параметры.

tcpdump -h
tcpdump —help

Список интерфейсов

Интерфейс — это точка соприкосновения компьютера и сети. Человек может использовать следующий параметр для печати списка сетевых интерфейсов, доступных в системе. Он также способен обнаруживать интерфейсы, на которых tcpdump может захватывать пакеты. Каждому сетевому интерфейсу присваивается номер. Это число можно использовать с параметром «- i» для захвата пакетов на конкретном интерфейсе.

Может возникнуть ситуация, когда машина, с которой работает пользователь, не способна перечислить сетевые интерфейсы, на которых она функционирует. Это проблема совместимости, препятствующая выполнению некоторых конкретных команд (ifconfig-a).

tcpdump –list-interface
tcpdump -D

Захват по умолчанию

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

tcpdump

Захват трафика конкретного интерфейса

Пользователь будет захватывать трафик с помощью сети Еthernet, которая известна как «eth0». Этот тип интерфейса обычно соединяется с сетевым кабелем категории 5.

Для выбора этого интерфейса нужно использовать параметр «-i».

tcpdump -i eth0

Количество пакетов

Tcpdump обладает некоторыми удивительными функциями, которые пользователь может использовать, чтобы сделать свой анализ трафика более эффективным. Он способен получить доступ к некоторым из этих функций, используя различные параметры. Человек использует параметр «-c», который поможет ему захватить точное количество данных, которые нужны, и отобразить их. Так будет уточняться объем данных, которые захватил пользователь.

tcpdump -i eth0 -c10

Продвинутые возможности

Мы уже рассмотрели большинство самых важных возможностей tcpdump, но его функциональность намного шире. Например, мы использовали операторы host и port для указания нужных нам адреса и порта для фильтрации вывода, но что, если нам надо увидеть только пакеты, идущие к указанному адресу, но не исходящие с него? Для этого можно использовать оператор src:

# tcpdump -i wlan0 -c 10 -n src 192.168.0.1

Есть и его обратный вариант dst, предназначенный для указания адреса назначения. Как было показано выше, все операторы можно комбинировать с помощью оператора and (мониторинг сетевого трафика, исключая SSH-сессии и DNS-запросы):

# tcpdump -i wlan0 port not 22 and port not 53

Также можно использовать or (или) и except (не). Кроме того, tcpdump понимает диапазоны портов:

# tcpdump -i wlan0 -c 10 -n portrange 21-23

Умеет отфильтровывать пакеты по их размеру:

# tcpdump -i wlan0 -c 10 -n > 32 and <= 128

И понимает маски подсетей:

# tcpdump -i wlan0 c 10 -n src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16

Одна из самых интересных возможностей tcpdump — это умение фильтровать пакеты по содержанию конкретных битов или байтов в заголовках протоколов. Для этого используется такой формат: proto[expr:size], где proto — протокол, expr — смещение в байтах от начала заголовка пакета, а size — необязательное поле, указывающее на длину рассматриваемых данных (по умолчанию 1 байт). Например, чтобы отфильтровать только пакеты с установленным флагом SYN (инициация TCP-рукопожатия), следует использовать такую запись:

# tcpdump ‘tcp[13]==2’

Как это работает? Очень просто. 13 байт TCP-заголовка содержит флаги, ровно восемь штук, по биту на каждый. Под флаг SYN отведен второй бит. Приведенная запись просто проверяет факт установки этого бита. Кстати, более читаемый вид этой записи будет выглядеть так:

# tcpdump ‘tcp[tcpflags] & tcp-syn != 0’  

Практическое использование

Утилиту tcpdump принято использовать для двух целей: для отладки сети, сетевых приложений и новых протоколов и для обучения основам TCP/IP. Мы пойдем другим путем и воспользуемся возможностями tcpdump для выявления фактов сканирования хоста и проведения сетевых атак.

На рис. 1 показано, как выглядит классический TCP-скан портов, выполненный утилитой Nmap, в логах tcpdump. Хорошо видно, как Nmap с адреса 192.168.0.100 пытается установить TCP-соединение с разными портами, посылая SYN-пакет (S в поле флагов). Сначала идет проба порта 8888, в ответ приходит RST-пакет, а это значит, что порт не прослушивается ни одним сервисом, далее проба порта 587 с тем же результатом. Наконец, Nmap посылает SYN-пакет на 22-й порт (SSH) и получает ответ в виде пакета SYN-ACK:

192.168.0.100.43337 > 192.168.0.111.22: Flags [S], seq 2610024277, … 192.168.0.111.22 > 192.168.0.100.43337: Flags [S.], seq 3496707239, ack 2610024278, … 192.168.0.100.43337 > 192.168.0.111.22: Flags [.], ack 1, …

Порт открыт, и теперь Nmap может успешно закрыть соединение с помощью отправки RST-пакета и перейти к следующим портам. Однако он поступает умнее: посылает подтверждение приема ACK-пакета и сразу переходит к следующим портам. Такое поведение позволяет обойти некоторые системы обнаружения вторжений, но человека, вооруженного сниффером, так просто не проведешь.

Обрати внимание также на номера перебираемых портов, они не генерируются рандомно, а подбираются с учетом наибольшей распространенности. Это значит, что производится быстрое сканирование, а если точнее, Nmap, скорее всего, запущен вообще без каких-либо флагов.

Рис. 1. Классическое TCP-сканирование
Рис. 1. Классическое TCP-сканирование

Теперь рассмотрим другой метод обнаружения открытых портов — SYN-сканирование (nmap -sS). Такой вид скана принято называть скрытым, потому что во время его никогда не устанавливается полное TCP-соединение, а значит, информация о факте соединения не попадает в логи. Вывод tcpdump для такого вида скана представлен на рис. 2. Он очень похож на лог обычного TCP-сканирования, однако реакция сканера на открытые порты теперь другая:

192.168.0.100.48585 > 192.168.0.111.22: Flags [S], seq 1679394613, … 192.168.0.111.22 > 192.168.0.100.48585: Flags [S.], seq 625029896, ack 1679394614, … 192.168.0.100.48585 > 192.168.0.111.22: Flags [R], seq 1679394614, … Рис. 2. Скрытое SYN-сканирование
Рис. 2. Скрытое SYN-сканирование

Видно, что после получения одобрительного пакета SYN-ACK сканер не завершает установку соединения, а сразу обрывает его, уходя от попадания в логи. На рис. 3 можно видеть результат UDP-сканирования. Здесь все очень просто, Nmap перебирает порты с возможными UDP-сервисами, посылая на каждый из них пакет нулевой длины. Если порт закрыт, ОС посылает в ответ сообщение ICMP unreachable:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, length 0 16:41:48.798346 IP 192.168.0.111 > 192.168.0.100: ICMP 192.168.0.100 udp port 18869 unreachable, length 36 Рис. 3. UDP-сканирование
Рис. 3. UDP-сканирование

В противном случае порт считается открытым. Еще один метод сканирования: null-сканирование с помощью отправки пакетов, не содержащих ни одного установленного флага (nmap -sN). Реакция на такие пакеты может быть разной в зависимости от используемой ОС, но, как видно по следующему листингу, Linux отвечает на них посылкой RST-пакетов:

192.168.0.100.39132 > 192.168.0.111.256: Flags [], win 3072, length 0 192.168.0.111.256 > 192.168.0.100.39132: Flags [R.], …

Также атакующий может применять Xmas-сканирование, при котором пакеты имеют установленные флаги FIN, URG и PUSH (пакет как бы светится флагами, как новогодняя елка):

192.168.0.100.35331 > 192.168.0.111.5544: Flags [FPU], seq 3998959601, win 4096, urg 0, length 0 192.168.0.111.5544 > 192.168.0.100.35331: Flags [R.], seq 0, ack 3998959602

Как видно, реакция на такие пакеты идентичная. ACK-сканирование (-sA) будет выглядеть в логах tcpdump как отправка множества пакетов с установленным флагом ACK и ответ на них в виде посылки пакетов RST. Однако, если в системе установлен брандмауэр, ответных сообщений приходить не будет, и Nmap сможет понять, фильтруется ли порт.

С помощью tcpdump можно также отследить и различные виды флуда. Например, классический ICMP-флуд в логах будет выглядеть так:

16:43:06.008305 IP 192.168.0.100 > 192.168.0.111: ICMP type-#68, length 1032 16:43:06.008383 IP 192.168.0.100 > 192.168.0.111: ICMP type-#34, length 1032 16:43:06.008714 IP 192.168.0.100 > 192.168.0.111: ICMP type-#183, length 1032 16:43:06.008831 IP 192.168.0.100 > 192.168.0.111: ICMP type-#192, length 1032

Особую важность здесь имеет поле, содержащее время приема пакета. Ни одно нормальное приложение не будет слать множество ICMP-сообщений за промежуток времени, равный одной тысячной секунды. Другие виды флуда (например, SYN) определяются точно таким же образом.

Взаимодействие с другими программами

Одно из самых важных достоинств tcpdump заключается в том, что формат его отчетов за время существования программы фактически стал стандартом для всех снифферов и сегодня его понимают все более или менее серьезные инструменты анализа трафика. Например, tcpdump можно использовать для генерации дампа на удаленной машине, а затем отправить его на локальную и провести анализ с помощью wireshark:

$ ssh root@example.ru tcpdump -w — ‘port !22’ | wireshark -k -i —

Здесь мы использовали опцию -w — для записи дампа в стандартный вывод и перенаправили его wireshark, работающему на локальной машине. Таким же образом можно проанализировать трафик с помощью snort:

$ ssh root@example.ru «tcpdump -nn -i eth1 -w -» | snort -c /etc/snort/snort.conf -r —

Перенаправив вывод программы на вход grep, можно найти различные проблемы в работе сети, например выявить пакеты с неправильной контрольной суммой, вывести информацию о которой можно с помощью флага -vv:

# tcpdump -nnvv -r dump.cap tcp | grep -v «tcp sum ok» | wc –l  

Админские штучки

Возможность фильтрации пакетов по данным, содержащимся в заголовке, которую мы рассмотрели в начале первого раздела, очень удобно использовать для отладки различных протоколов и поиска сетевых проблем. Например, мы можем применить ее для отлова сетевых пакетов, передаваемых по протоколу Cisco Discovery Protocol, по которому маршрутизаторы Cisco обмениваются информацией о топологии и состоянии сети:

# tcpdump -nn -v -i eth0 -s 1500 -c 1 ‘ether[20:2] == 0?2000’

Таким же образом можно отловить все пакеты, передаваемые по протоколу DHCP (DISCOVER, REQUEST, INFORM), чтобы выявить проблемы подключения клиентов:

# tcpdump -i eth0 -vvv -s 1500 ‘((port 67 or port 68) and (udp[8:1] = 0x1))’

Или поймать пакеты, передаваемые в рамках POP3-аутентификации:

# tcpdump -i eth0 «tcp port pop3 and ip[40] = 85 and ip[41] = 83» -s 1500 -n

Сетевой grep

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

Например, чтобы найти параметры, передаваемые методами GET и POST в рамках HTTP-сессии, можно использовать следующую команду:

# ngrep -l -q -d eth0 «^GET |^POST » tcp and port 80

Выявляем бездельников:

# ngrep -i ‘game*|p0rn|adult’ -W byline -d eth0 > slackers.txt

Анализируем SMTP-трафик на всех сетевых интерфейсах:

# ngrep -i ‘rcpt to|mail from’ tcp port smtp

Принцип работы

Перед началом использования утилиты TCPdump надо разобраться в том, какие она поддерживает сетевые интерфейсы. Для выполнения основных задач понадобятся права суперпользователя. Потому в первых командах важно указывать параметр, который обозначается как sudo и имя администратора, после нажатия Enter ввести  пароль.

Сочетание клавиш Ctrl + C останавливает работу того или иного заданного параметра. Все перехваченные пакеты будут отображаться в выводе практически сразу.

Формат перехвата имеет следующий вид:Формат перехвата

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

  • временные метки;
  • протокол;
  • IP адрес отправителя;
  • адрес адресата;
  • характеристики других разновидностей;
  • измеряемый байтами размер пакетов.

—V – опция, позволяющая легко контролировать подробность вывода информации. Например, дополнительно отображаются сведения, связанные с протоколом IP.

Что может узнать пользователь конкретно:

  1. Длина поля заголовка.
  2. Версия протокола TCP.
  3. Время жизни пакета TLL.

Проверка контрольных сумм выводится при использовании команды –vv. В некоторых случаях подробно отображается содержимое пакетов.

После использования опций легко указывать фильтры, которые применяют для тех или иных пакетов. Вот лишь основные параметры, используемые при отсеивании:

  1. Несколько видов протоколов, включая udp, tcp, decnet, rarp, arp, ip6, ip. wlan, tr, fddi, ether.
  2. DST – параметр, связанный с получателем.
  3. SRC – отправитель.
  4. Port – указание адреса порта.
  5. Net – адреса сетей, подсетей.
  6. Proto – указание протокола.
  7. IP – ip адрес.
  8. Host – имя хоста.

Для получения желаемого результата разрешается комбинировать различные команды друг с другом.

Описание синтаксиса

Приведём несколько примеров использования TCPdump в Linux, способных заметно упростить использование приложения, для пользователей любого уровня.

Из пакета приложение принимает стандартно только первые 6896 байт. Добавление опции –s <число> позволяет получить более подробную информацию, когда возникает необходимость. Число обозначает, сколько байтов планирует перехватить тот или иной пользователь. Захват всех производится при указании комбинации –s 0 (ноль).

У самой команды синтаксис такой: $ tcpdump опции -i интерфейс фильтры

Главное – не забывать о передаче интерфейса, который будет использован. Если указания по этому отсутствуют – автоматически программа использует первый элемент из списка. Благодаря фильтрам становится проще отсеивать пакеты, не представляющие интереса для конечного пользователя. Программа поддерживает следующий набор основных ключей:

  1. Z – обозначение пользователя, от имени которого происходит создание для всех файлов.
  2. W – запись в файл для вывода.
  3. Q – команда, позволяющая вывести минимальное количество информации.
  4. Более подробный вывод предполагает применение команд –v, —vv, —vvv.
  5. R – для считывания пакетов, созданных с помощью команды w.
  6. N – отменяет отображение доменных имён.
  7. L – для вывода поддерживаемых протоколов, через которые подключают интерфейс.
  8. L – к выводу добавляют функцию прокрутки.
  9. K – после использования контрольные суммы проверяться не будут.
  10. J – просмотр доступных временных меток (TimeStamp).
  11. Маленькая j устанавливает формат Time Stamp в отношении созданных пакетов.
  12. I – переключение режима монитора, который будет действовать для всех пакетов.
  13. Маленькая i задаёт имя интерфейса при перехвате пакетов. Пакеты могут захватываться со всех интерфейсов, достаточно задать параметр any.

Основные команды и фильтры

Вставка фильтров – главная особенность, характерная для синтаксиса tcpdump. Следующее описание приводят для самых популярных вариантов:

  1. Less, greater – пакеты выводятся больше или меньше по сравнению с указанным размером.
  2. And, Or – объединение сразу нескольких фильтров внутри одной команды.
  3. Port – для отображения информации, связанной с определённым портом.
  4. Arp, upd, tcp – фильтрация с использованием одного из протоколов.
  5. Dst – для вывода с указанным адресом.
  6. SRC – выводит пакеты, отправителем которых признан конкретный адрес.
  7. IP – описание адреса протокола.
  8. NET – описание IP главной сети и подсети.
  9. HOST – чтобы указать имя хоста.

Допустимо создавать комбинации, включающие сразу несколько фильтров. Благодаря этому в выдаче информации пользователь видит только то, что действительно представляет интерес.

Примеры использования

Вариантов применения утилиты множество. Можно рассмотреть лишь наиболее интересные и популярные.

  Что делать, если не выключается компьютер или ноутбук

Программа tcpdump. Различия tcpdump и Wireshark

tcpdump — это самый мощный и широко используемый сниффер пакетов с интерфейсом командной строки. Эта программа представляет собой анализатор пакетов, который используется для захвата или фильтрации разнообразных сетевых пакетов: несмотря на название, данный инструмент может захватывать и фильтровать не только пакеты TCP/IP, но и всё семейство IP протоколов (icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, tcp), семейство протоколов Ethernet (ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl, moprc, iso, stp, ipx, netbeui). Дополнительно программа поддерживает работу с пакетами беспроводных сетей (IEEE 802.11, то есть Wi-Fi и другие), поддерживает IPv6 и имеет очень гибкую систему фильтров.

Программа анализирует (или захватывает) пакеты на указанном интерфейсе, но также может работать сразу со всеми интерфейсами. Она доступна в операционных системах на основе Linux/Unix. Программа умеет не только анализировать живой поток данных, но и умеет их сохранять для последующего анализа в tcpdump или с использованием Wireshark (сетевой анализатор протоколов с графическим пользовательским интерфейсом), которая поддерживает формат файлов tcpdump pcap.

Различия tcpdump и Wireshark

Программа Wireshark также предназначена для захвата и анализа сетевых пакетов. У программы Wireshark имеется графический интерфейс и вариант с интерфейсом командной строки; у tcpdump только интерфейс командной строки

Программа Wireshark поддерживает два вида фильтров:

  • фильтры захвата
  • фильтры отображения

Фильтры захвата Wireshark идентичны фильтрам tcpdump. В Wireshark и tcpdump фильтры захвата применяются для фильтрации данных, которые будут сохранены в файл (или выведены на экран). Что касается фильтров отображения Wireshark, то они не влияют на количество захваченных и сохранённых данных, а используются только для фильтрации показываемой информации. Фильтры отображения Wireshark и фильтры захвата tcpdump/Wireshark поддерживают:

  • Трафик протоколов канального уровня
  • Трафик протоколов межсетевого уровня
  • Трафик протоколов транспортного уровня
  • Фильтры для Wi-Fi фреймов

Фильтры отображения Wireshark поддерживают все возможности фильтров захвата, а также дополнительно:

  • Трафик протоколов прикладного уровня (HTTP, DNS, SSH, FTP, SMTP, RDP, SNMP, RTSP, GQUIC, CDP, LLMNR, SSDP и многие другие)

Кроме того, программа Wireshark имеет больше инструментов для анализа сетевых данных и наглядности их отображения.

Итак, программа Wireshark больше подходит для анализа трафика протоколов прикладного уровня и анализа связанных потоков данных.

Что касается tcpdump, то она будет работать в условиях отсутствия графического окружения. Также эта программа отлично подходит для захвата сетевого трафика и его фильтрации по заданным критериям. Tcpdump тоже может применяться для выполнения разного рода анализа и тестирования сетевых настроек.

Как выглядит вывод tcpdump?

tcpdump позволяет вам проверять заголовки пакетов TCP / IP.

Он выводит одну строку для каждого пакета, и команда продолжает работать, пока вы не нажмете Ctrl + C для завершения.

Давайте рассмотрим одну строку для примера из вывода:

20:58:26.765637 IP 10.0.0.50.80 > 10.0.0.1.53181: Flags [F.], seq 1, ack 2, win 453, options [nop,nop,TS val 3822939 ecr 249100129], length 0Каждая строка включает в себя:

  • Метка времени Unix (20: 58: 26.765637)
  • протокол (IP)
  • имя хоста или IP-адрес источника и номер порта (10.0.0.50.80)
  • имя хоста или IP адрес и номер порта (10.0.0.1.53181)
  • Флаги TCP (Флаги [F.]).Флаги указывают на состояние соединения. Может включать более одного значения, как в этом примере [F.] для FIN-ACK.Это поле может иметь следующие значения:
  • S – SYN.Первый шаг в установлении связи.
  • F – FIN.Завершение соединения.
  • ,– ACK.Пакет подтверждения получен успешно.
  • P – Push.Сообщает получателю обрабатывать пакеты, а не буферизировать их.
  • R – RST.Связь прервана.
  • Порядковый номер данных в пакете.(след. 1)
  • Номер подтверждения (подтверждение 2)
  • Размер окна (победа 453).Количество байтов, доступных в приемном буфере.Далее следуют параметры TCP.
  • Длина полезных данных.(длина 0)

Установка

В дистрибутивах на основе Debian tcpdump можно установить с помощью команды APT:

# apt install tcpdump -yВ дистрибутивах на основе RPM tcpdump может быть установлен с YUM:yum install tcpdump -y

Или используя DNF, если RHEL 8

# dnf install tcpdump -y

Опции команды tcpdump

Для запуска tcpdump вы должны быть пользователем root.

Инструмент включает в себя множество опций и фильтров.

Запуск tcpdump без каких-либо опций захватит все пакеты, проходящие через интерфейс по умолчанию.

Чтобы увидеть список сетевых интерфейсов, доступных в системе и по которым tcpdump может захватывать пакеты:

# tcpdump -D

или

# Tcpdump —list-interfaces1.eth0 2.nflog (Linux netfilter log (NFLOG) interface) 3.nfqueue (Linux netfilter queue (NFQUEUE) interface) 4.eth1 5.any (Pseudo-device that captures on all interfaces) 6.lo [Loopback]

Это особенно полезно в системах, в которых нет команды для вывода списка интерфейсов.

Для захвата пакетов, проходящих через определенный интерфейс, используйте флаг -i с именем интерфейса.

Без -i tcpdump подберет первый сетевой интерфейс, с которым столкнулся.

# tcpdump -i eth1tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes 01:06:09.278817 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 1, length 64 01:06:09.279374 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 4761, seq 1, length 64 01:06:10.281142 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 2,

Флаг -v увеличивает количество информации, которую вы видите о пакетах, -vv дает вам еще больше деталей.

По умолчанию tcpdump резолвит IP-адреса в имена хостов, а также использует имена сервисов вместо номеров портов

Если DNS не работает или вы не хотите, чтобы tcpdump выполнял поиск имен, используйте параметр -n.

# tcpdump -nlistening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100 04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0 04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36 04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0 04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, len

Чтобы захватить только определенное количество строк, скажем, 5, используйте флаг -c:

#tcpdump -c 504:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100 04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0 04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36 04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0 04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, length 100 5 packets capturedВывод tcpdump по умолчанию использует временные метки Unix.Для захвата пакетов с удобочитаемой отметкой времени:# tcpdump -tttt2020-07-06 04:30:12.203638 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186734102:2186734138, ack 204107103, win 37232, length 36 2020-07-06 04:30:12.203910 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 36, win 65535, length 0 2020-07-06 04:30:12.204292 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 36:72, ack 1, win 37232, length 36 2020-07-06 04:30:12.204524 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 72, win 65535, length 0 2020-07-06 04:30:12.204658 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 72:108, ack 1, win 37232, length 36

Использование фильров tcpdump

Если фильтры не применяются вовсе, отображаются все заголовки пакетов.

Обычно используемые фильтры – это port, host, src, dst, tcp, udp, icmp.

Как пользоваться TCPDUMP

tcpdump — это самый мощный и широко используемый анализатор пакетов или анализатор пакетов, который используется для захвата или фильтрации пакетов TCP / IP, которые были получены или переданы по сети на определенном интерфейсе. Он доступен в большинстве операционных систем на базе Linux / Unix. tcpdump также дает нам возможность сохранять захваченные пакеты в файле для последующего анализа.

Он сохраняет файл в формате pcap, который можно просмотреть командой tcpdump или инструментом с открытым исходным кодом на основе GUI, называемым Wireshark (Network Protocol Analyzier), который считывает файлы формата tcappump pcap. Прежде чем разобрать основные команды и понять как пользоваться TCPDUMP, нам нужно установить эту функцию.

Как установить tcpdump в Linux

Многие дистрибутивы Linux уже поставляются с инструментом tcpdump, если в случае, если у вас его нет в системах, вы можете установить его с помощью следующей команды Yum.

# yum install tcpdump

Как только инструмент tcpdump установлен в системах, вы можете продолжить просмотр следующих команд с помощью своих примеров.

Команды для TCPDUMP

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

Теперь давайте перейдем к основам того, как пользоваться TCPDUMP.

Источники

  • http://composs.ru/chto-za-utilita-tcpdump-i-kak-ej-polzovatsya/
  • https://zen.yandex.ru/media/cisoclub/rukovodstvo-po-tcpdump-5f6113da8169a87816d44f0c
  • https://xakep.ru/2012/02/06/tcpdump-network-audit/
  • https://vk.com/@thntofff-rukovodstvo-po-tcpdump-chast-12
  • https://itsecforu.ru/2020/07/08/%F0%9F%96%A7-%D0%BA%D0%B0%D0%BA-%D0%B7%D0%B0%D1%85%D0%B2%D0%B0%D1%82%D0%B8%D1%82%D1%8C-%D0%B8-%D0%BF%D1%80%D0%BE%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81/
  • https://linuxinsider.ru/kak-polzovatsya-tcpdump/

Примеры Использования Команды Tar в Linux. Как извлечь или распаковать файл tar.xz в Linux
Группы пользователей в Linux: создаем группы, добавляем и удаляем из них пользователей. Добавляем пользователей в группу в Linux

ITandLife.ru