9) Чтение файла записи tcpdump
Вы не можете прочитать содержимое файла, который сохраняет пакеты tcpdump с помощью общих команд, таких как cat или less, то вам нужно использовать параметр -r команды tcpdump
# tcpdump -r packets-record.cap reading from file packets-record.cap, link-type EN10MB (Ethernet) 10:06:25.310077 IP li339-47.members.linode.com.ssh > 169.255.7.5.44284: Flags , seq 1435573932:1435573976, ack 4135958592, win 457, options , length 44 10:06:25.565590 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 0, win 722, options , length 0 10:06:25.565633 IP li339-47.members.linode.com.ssh > 169.255.7.5.44284: Flags , seq 44:160, ack 1, win 457, options , length 116 10:06:25.570384 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 44, win 722, options , length 0 10:06:25.827438 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 160, win 722, options , length 0
11) Захват пакетов, поступающих с удаленного хоста
Чтобы показывать только пакеты, поступающие с определенного IP-адреса, используйте параметр src
# tcpdump -i eth0 -c 5 -ttttnnvvS src host 96.126.114.1 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 2018-04-10 11:27:28.498964 ARP, Ethernet (len 6), IPv4 (len 4), Reply 96.126.114.1 is-at 00:00:0c:9f:f0:06, length 46 2018-04-10 11:28:08.614258 ARP, Ethernet (len 6), IPv4 (len 4), Reply 96.126.114.1 is-at 00:00:0c:9f:f0:06, length 46 2018-04-10 11:28:53.621982 ARP, Ethernet (len 6), IPv4 (len 4), Reply 96.126.114.1 is-at 00:00:0c:9f:f0:06, length 46 2018-04-10 11:29:33.511165 ARP, Ethernet (len 6), IPv4 (len 4), Reply 96.126.114.1 is-at 00:00:0c:9f:f0:06, length 46 2018-04-10 11:30:13.837251 ARP, Ethernet (len 6), IPv4 (len 4), Reply 96.126.114.1 is-at 00:00:0c:9f:f0:06, length 46 5 packets captured 5 packets received by filter 0 packets dropped by kernel
Вы можете видеть пакеты запросов
Совместимость Tcpdump
Чтение пакетов из сетевого интерфейса с помощью команды tcpdump может потребовать специальных привилегий ( чтение сохраненный пакетный файл не требует таких привилегий):
SunOS 3.x или 4.x с NIT или BPF: Вы должны иметь доступ для чтения к / DEV / нит или же DEV / BPF * .
Solaris с DLPI: У вас должен быть доступ на чтение / запись к псевдо-устройству сети, например / DEV / ле , Однако, по крайней мере, в некоторых версиях Solaris этого недостаточно ТСРйитр для захвата в беспорядочном режиме; в тех версиях Solaris, вы должны быть root или ТСРйитр должен быть установлен setuid на root, чтобы захватить в беспорядочном режиме
Обратите внимание, что на многих (возможно, всех) интерфейсах, если вы не выполняете захват в беспорядочном режиме, вы не увидите никаких исходящих пакетов, поэтому захват, не выполненный в беспорядочном режиме, может оказаться не очень полезным.
HP-UX с DLPI: Вы должны быть root или ТСРйитр должен быть установлен setuid на root.
IRIX с snoop: Вы должны быть root или ТСРйитр должен быть установлен setuid на root.
Linux: Вы должны быть root или ТСРйитр должен быть установлен setuid на root.
Ultrix и Digital UNIX / Tru64 UNIX: Любой пользователь может захватить сетевой трафик с помощью ТСРйитр , Тем не менее, ни один пользователь (даже суперпользователь) не может захватывать в режиме promiscuous на интерфейсе, если суперпользователь не включил режим promiscuous-mode на этом интерфейсе, используя pfconfig (8), и ни один пользователь (даже не суперпользователь) не может захватить одноадресный трафик, полученный или отправленный машиной на интерфейсе, если суперпользователь не включил операцию полного копирования на этом интерфейсе, используя pfconfig , так полезным пакетный захват на интерфейсе, вероятно, требует, чтобы на этом интерфейсе была включена работа как в режиме размножения, так и в режиме полного копирования или в обоих режимах.
BSD: Вы должны иметь доступ для чтения к / DEV / BPF * .
Запись журнала в определенный файл
Можно сохранить захваченные пакеты в файле.
По умолчанию при захвате пакетов в файл он сохраняет только 68 байтов данных из каждого пакета.
Остальная часть информации игнорируется.
Вы можете использовать -s, чтобы сообщить tcpdump, сколько байтов для каждого пакета сохранить и указать 0, поскольку длина моментального снимка пакетов указывает tcpdump на сохранение целого пакета.
# tcpdump -i eth0 -c 5 -nn tcp -w packets-record.cap -s 0 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 5 packets captured 5 packets received by filter 0 packets dropped by kernel
Advanced
Now that we’ve seen what we can do with the basics through some examples, let’s look at some more advanced stuff.
More options
Here are some additional ways to tweak how you call .
- : Show the packet’s contents in both hex and ASCII.
- : Same as , but also shows the ethernet header.
- : Show the list of available interfaces
- : Line-readable output (for viewing as you save, or sending to other commands)
- : Be less verbose (more quiet) with your output.
- : Give human-readable timestamp output.
- : Give maximally human-readable timestamp output.
- : Listen on the eth0 interface.
- : Verbose output (more v’s gives more output).
- : Only get x number of packets and then stop.
- : Define the snaplength (size) of the capture in bytes. Use to get everything, unless you are intentionally capturing less.
- : Print absolute sequence numbers.
- : Get the ethernet header as well.
- : Show less protocol information.
- : Decrypt IPSEC traffic by providing an encryption key.
Основные возможности Wireshark
Сетевой трафик преобразуется буквально «на лету». В программу «заложена» структура различных протоколов, поэтому пользователь работает с перехватываемым информационным потоком. Единственное ограничение заключается в списке поддерживаемых стандартов – он ограничивается возможностями библиотеки pcap. Правда, функционал легко расширяется скриптами на языке Lua.
Востребованные функции сетевого анализатора Wireshark:
- Захват пакетов в реальном времени или при чтении из файла.
- Поддержка проводного интерфейса Ethernet, беспроводных IEEE 802.11, PPP и локальных виртуальных интерфейсов.
- Отсеивание сетевых пакетов по большому количеству установленных фильтров, включая расшифровку только VoIP-звонков, HTTPS-трафика.
- Подсвечивание разных протоколов при смешанном трафике, выделение TCP, HTTP, FTP, DNS, ICMP и т.д.
- Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа безопасности и Handshake.
Параллельно программа фиксирует нагрузку на сеть, сохраняет статистику, отображает в реальном времени отправку и получение пакетов, но это уже второстепенные функции. Основной остается перехват трафика. Здесь нужно уточнить, что использование приложения должно согласовываться с владельцем подсети, иначе это вполне сойдет за «хакерскую атаку» с вытекающими последствиями для специалиста.
Wrapping Up
These examples, tips and commands are intended to give you a base understanding of the possibilities. Depending on what you are trying to achieve there are many ways that you could go deeper or combine different capture filters to suit your requirements.
Combining with Wireshark is a powerful combination, particularly when you wish to dig into full application layer sessions as the decoders can assemble the full stream. We recently did a major update to our Wireshark Tutorial.
Thanks for reading, check out the page for more detail and if you have any comments or suggestions please drop me a note using the contact form. Happy Packet Analysis!
Know Your Attack Surface
From Discovery to Vulnerability Identification
USE CASES & MORE INFO
Версии PCAP
Как упоминалось выше, существует множество различных типов файлов PCAP, в том числе:
- Libpcap
- WinPcap
- PCAPng
- Npcap
Каждая версия имеет свои варианты использования, и различные типы инструментов мониторинга сети поддерживают различные формы файлов PCAP. Например, Libpcap — это портативная библиотека c / C ++ с открытым исходным кодом, разработанная для пользователей Linux и Mac OS. Libpcap позволяет администраторам захватывать и фильтровать пакеты. Инструменты перехвата пакетов, такие как tcpdump, используют формат Libpcap.
Для пользователей Windows существует формат WinPcap. WinPcap — это еще одна портативная библиотека для захвата пакетов, предназначенная для устройств Windows. WinpCap также может захватывать и фильтровать пакеты, собранные из сети. Инструменты как Wireshark, Nmap, и фырканье использовать WinPCap для мониторинга устройств, но сам протокол был прекращен.
Pcapng или .pcap Формат файла захвата следующего поколения — это более продвинутая версия PCAP, которая поставляется по умолчанию с Wireshark. Pcapng может захватывать и хранить данные. Тип данных, которые собирает pcapng, включает повышенную точность меток времени, комментарии пользователей и статистику захвата, чтобы предоставить пользователю дополнительную информацию..
Такие инструменты, как Wireshark, используют PCAPng, потому что он может записывать больше информации, чем PCAP. Однако проблема с PCAPng заключается в том, что он не совместим с таким количеством инструментов, как PCAPng..
Npcap — это портативная библиотека для отслеживания пакетов для Windows, созданная Nmap, одним из самых известных поставщиков для отслеживания пакетов. Библиотека работает быстрее и безопаснее, чем WinpCap. Npcap поддерживает Windows 10 и инъекцию захвата пакетов с обратной связью, так что вы можете отправлять и перехватывать петлевые пакеты. Npcap также поддерживается Wireshark.
Практические примеры
Мониторинг http-запросов
$ sudo tshark 'tcp port 80 and (((ip - ((ip&0xf)<>2)) != 0)' -R 'http.request.method == "GET" || http.request.method == "HEAD"'
190.302141 192.168.0.199 -> 74.125.77.104 HTTP GET / HTTP/1.1 190.331454 192.168.0.199 -> 74.125.77.104 HTTP GET /intl/en_com/images/srpr/logo1w.png HTTP/1.1 190.353211 192.168.0.199 -> 74.125.77.104 HTTP GET /images/srpr/nav_logo13.png HTTP/1.1 190.400350 192.168.0.199 -> 74.125.77.100 HTTP GET /generate_204 HTTP/1.1
$ tshark -r sample1.cap -R http.request -T fields -e http.host -e http.request.uri | sed -e ‘s/?.*$//’ | sed -e ‘s#^(.*)t(.*)$#http://12#’ | sort | uniq -c | sort -rn | head
Просмотр списка HTTP-заголовков
$ tshark -r sample1.cap -R http.request -T fields -e http.host -e http.request.uri | sed -e ‘s/?.*$//’ | sed -e ‘s#^(.*)t(.*)$#http://12#’ | sort | uniq -c | sort -rn | head
$ sudo tshark tcp port 80 or tcp port 443 -V -R «http.request»
$ sudo tshark "tcp port 80 or tcp port 443" -V -R "http.request || http.response"
Просмотр списка файлов определенного типа
$ sudo tshark -R "http.response and http.content_type contains image" \ -z "proto,colinfo,http.content_length,http.content_length" \ -z "proto,colinfo,http.content_type,http.content_type" \ -r /tmp/capture.tmp| grep "image/gif"| wc -l
Мониторинг запросов к MySQL
$ sudo tshark -i eth0 -a duration:60 -d tcp.port==3306,mysql -T fields -e mysql.query ’port 3306′
$ sudo tcpdump -i eth0 port 3306 -s 1500 -w tcpdump.out
$ sudo tshark -r tcpdump.out -d tcp.port==3306,mysql -T fields -e mysql.query > query_log.out
$ sudo cat query_log.out | grep -v "^$" | grep -v "^commit" | grep -v "^SET autocommit" | grep -v "^rollback" > query_log_no_blank.out
Используйте wirehark для анализа файла pcap из tcpdump
Нам нужно отфильтровать некоторые желаемые данные, а затем ввести фильтр выражения в поле ввода, как показано на рисунке:
Введите следующие условия фильтрации в Wireshark’s Filter, чтобы упростить анализ источника данных:
tcp.port == 80 // Фильтрация данных TCP с порта 80 udp.port == 12345 // Фильтрация данных UDP с порта 12345 ip.src == 192.168.0.1 // Фильтруем данные, чей исходный IP-адрес 192.168.0.1 ip.dst == 192.168.0.1 // Передаем данные, чей IP-адрес назначения 192.168.0.1 Вышеуказанные условия фильтрации можно комбинировать с и с или, например tcp.port == 80 и ip.src == 192.168.0.1 // Фильтрация номеров TCP из порта 80 и IP-адреса источника 192.168.0.1 udp.port == 12345 или ip.dst == 192.168.0.1 // Фильтрация данных UDP с порта 12345 или данных, чей IP-адрес назначения 192.168.0.1
Как работает tcpdump
Для того, чтобы научиться читать записи tcpdump нужно хотя бы небольшие знания основных протоколов, в частности рассматриваемом ниже протоколе TCP. Хотя если вы хотите максимально использовать tcpdump, без глубокого изучения теории их работы ни коим образом не обойтись. Напомню, что tcpdump – лишь программа для отображения, но не генерирования трафика. Она может только показать то, что происходит в сети и повлиять на трафик она не может.
Для работы в tcpdump нужны полномочия пользователя root. Это связано с тем, что tcpdump необходимо перевести сетевую карту в так именуемый неразборчивый (promiscuous) режим, при котором сетевая карта не проверяет предназначены ли именно ей приобретенные данные, она принимает абсолютно всё.
Схема передачи данных, при котором трафик (Телефонный трафик — в телекоммуникациях — большое количество телефонных разговоров и попыток установления соединения, проходящих через коммутационной оборудования и/или телефонную сеть Транспортный) проходит чрез каждый компьютер свойственна для Ethernet-сетей, основанных прежде всего на концентраторах. Их называют «сетями всеобщего пользования», то есть получив данные от какого-нибудь хоста, концентратор отправляет эти данные на все присоединенные к нему порты не заботясь о том, кому именно они предназначались.
Противоположность такому типу сети – Ethernet-сеть базирующаяся на коммутаторах. Здесь данные передаются только указанному получателю. Коммутатор создает условное соединение между компьютерами, что не позволяет остальным хостам в сети «прослушивать» передаваемые ими этые. Однако, это вовсе не означает, что их невозможно перехватить, правда для этого не обойтись без некоторых хитростей.
Коммутатор работает не столько с ip-адресами сколько с фреймами (единица передачи этих на канальном уровне), для каждого порта которого в его таблице закреплен mac-адрес компьютера в сети. Весьма часто эта таблица является не статичной, а динамически изменяемой. Благодаря этому, существует много способов arp-спуфинга и другой хакерской деятельности по отношению к коммутатору… Так вот, если переполнить эту матрицу mac-адресов, то, скорее всего, коммутатор перейдет в неразборчивый режим, то есть будет себе везти как обычный концентратор, что и позволит tcpdump перехватывать весь трафик.
Еще один момент, какой следует указать, так это то, что tcpdump поддерживает chroot. chroot – это переопределение корневой папки для програмки, пользователя. С ее помощью можно сделать так, чтобы даже в случае взлома программы и приобретенье прав с помощью которой запускается программа, взломщик не сможет выйти за пределы папки узкой chroot-средой. Эта полезная опция, указывается при компиляции Tcpdump.
Синтаксис
Как и любая другая команда, tcpdump имеет свой синтаксис. Зная его, вы сможете задавать все необходимые параметры, которые будут учитываться при выполнении команды. Синтаксис имеет следующий вид:
При использовании команды вам обязательно необходимо указывать интерфейс для отслеживания. Фильтры и опции — это не обязательные переменные, но они позволяют выполнить более гибкую настройку.
Опции
Хоть опцию и не обязательно указывать, перечислить доступные все же нужно. В таблице продемонстрирован не весь их список, а только наиболее популярные, но их с лихвой хватит, чтобы решить большинство поставленных задач.
Опция | Определение |
---|---|
-A | Позволяет отсортировать пакеты с форматом ASCII |
-l | Добавляет функцию прокрутки |
-i | После ввода нужно указать сетевой интерфейс, который будет отслеживаться. Чтобы начать отслеживать все интерфейсы, впишите после опции слово «any» |
-c | Завершает процесс отслеживания после проверки указанного количества пакетов |
-w | Генерирует текстовый файл с отчетом проверки |
-e | Показывает уровень интернет-соединения пакета данных |
-L | Выводит только те протоколы, которые поддерживает указанный сетевой интерфейс |
-C | Создает другой файл во время записи пакета, если его размер больше заданного |
-r | Открывает файл для чтения, который был создан с помощью опции -w |
-j | Для записи пакетов будет использоваться формат TimeStamp |
-J | Позволяет просмотреть все доступные форматы TimeStamp |
-G | Служит для создания файла с логами. Опция требует также указания временного значения, по истечении которого будет создаваться новый лог |
-v, -vv, -vvv | В зависимости от количества символов в опции, вывод команды будет становиться подробнее (увеличение прямо пропорционально количеству символов) |
-f | В выводе показывает имя домена адресов IP |
-F | Позволяет считывать информацию не из сетевого интерфейса, а из указанного файла |
-D | Демонстрирует все сетевые интерфейсы, которые можно использовать |
-n | Деактивирует отображение доменных имен |
-Z | Задает пользователя, под учетной записью которого будут созданы все файлы |
-K | Пропуск анализа контрольных сумм |
-q | Демонстрация краткой информации |
-H | Позволяет обнаружить заголовки 802.11s |
-I | Используется при захвате пакетов в режиме монитора |
Разобрав опции, чуть ниже мы перейдем непосредственно к их применениям. А пока что будут рассмотрены фильтры.
Фильтры
Как говорилось в самом начале статьи, вы можете добавлять в синтаксис tcpdump фильтры. Сейчас будут рассмотрены наиболее популярные из них:
Фильтр | Определение |
---|---|
host | Служит для указания имени хоста |
net | Указывает IP подсети и сети |
ip | Служит для указания адреса протокола |
src | Выводит пакеты, которые были отправлены с указанного адреса |
dst | Выводит пакеты, которые были получены указанным адресом |
arp, udp, tcp | Фильтрация по одному из протоколов |
port | Отображает информацию, относящуюся к определенному порту |
and, or | Служит для объединения нескольких фильтров в команде |
less, greater | Вывод пакетов меньше или больше указанного размера |
Все вышеперечисленные фильтры можно комбинировать между собой, таким образом, в выдаче команды вы будете наблюдать только ту информацию, которую желаете увидеть. Чтобы более детально разобраться в использовании вышеперечисленных фильтров, стоит привести примеры.
How To Install tcpdump on Linux
While most of the time you will find tcpdump preinstalled on your system, some Linux distributions do not ship with the package. Therefore, you may have to manually install the utility on your system.
You can check if tcpdump is installed on your system by using the which command.
If the output displays a directory path (/usr/bin/tcpdump), then your system has the package installed. However if not, you can do it easily using the default package manager on your system.
To install tcpdump on Debian-based distributions such as Ubuntu:
Installing tcpdump on CentOS is easy as well.
On Arch-based distributions:
To install on Fedora:
Note that the tcpdump package requires libcap as a dependency, so make sure you install it on your system as well.
Формат вывода Tcpdump
Выход ТСРйитр зависит от протокола. Ниже приводится краткое описание и примеры большинства форматов.
Заголовки уровня канала, Если задана опция -e, загорается заголовок уровня ссылки. В сетях Ethernet печатаются исходные и целевые адреса, протокол и длина пакета.
В сетях FDDI опция «-e» вызывает ТСРйитр для печати поля «frame control», исходного и целевого адресов и длины пакета. (Поле управления кадрами управляет интерпретацией остальной части пакета. Обычными пакетами (такими как те, которые содержат IP-дейтаграммы) являются «асинхронные» пакеты с приоритетом от 0 до 7: например, `async4». Предполагается, что такие пакеты содержат пакет управления логической связью 802.2 (LLC); заголовок LLC печатается, если он не дейтаграмму ISO или так называемый пакет SNAP.
В сетях Token Ring опция ‘-e’ вызывает ТСРйитр для печати полей «контроля доступа» и «управления кадрами», адресов источника и получателя и длины пакета. Как и в сетях FDDI, предполагается, что пакеты содержат пакет LLC. Независимо от того, указан ли параметр «-e» или нет, информация о маршрутизации источника печатается для пакетов с маршрутизацией с источником.
(N.B .: Следующее описание предполагает знакомство с алгоритмом сжатия SLIP, описанным в RFC-1144.)
На SLIP-каналах распечатывается индикатор направления («I» для входящего, «O» для исходящего), тип пакета и информация о сжатии. Сначала печатается тип пакета. Эти три типа IP , utcp , а также CTCP , Никакая дополнительная информация о ссылках не будет напечатана для IP пакеты. Для TCP-пакетов идентификатор соединения печатается по типу. Если пакет сжимается, его кодированный заголовок печатается. Специальные случаи распечатываются как* S + N а также* SA + N , где N это количество, на которое изменился порядковый номер (или порядковый номер и ack). Если это не особый случай, печатаются ноль или более изменений. Изменение обозначается U (срочный указатель), W (окно), A (ack), S (порядковый номер) и I (идентификатор пакета), затем дельта (+ n или -n) или новое значение (= п). Наконец, печатается количество данных в пакетной и сжатой длине заголовка.
Например, следующая строка показывает исходящий сжатый TCP-пакет с неявным идентификатором соединения; ack изменился на 6, порядковый номер — на 49, а идентификатор пакета — на 6; есть 3 байта данных и 6 байтов сжатого заголовка:
O ctcp * A + 6 S + 49 I + 6 3 (6)
Пакеты Arp / rarp, Выход Arp / rarp показывает тип запроса и его аргументы. Этот формат не требует пояснений. Вот краткий образец, взятый с начала «rlogin» от хоста rtsg принимать гостей CSAM :
arp who-csam tell rtsgarp ответ csam is-at CSAM
В первой строке говорится, что rtsg отправил пакет arp с запросом Ethernet-адреса интернет-хоста csam. Csam отвечает своим Ethernet-адресом (в этом примере адреса Ethernet указаны в шапках и интернет-адресах в нижнем регистре).
Это выглядело бы менее излишним, если бы мы это сделали tcpdump -n :
arp who-has 128.3.254.6 tell 128.3.254.68arp ответ 128.3.254.6 is-at 02: 07: 01: 00: 01: c4
Если бы мы это сделали tcpdump -e , тот факт, что первый пакет передается, а второй — точка-точка, будет видимым:
RTSG Broadcast 0806 64: arp who-csam tell rtsgCSAM RTSG 0806 64: arp ответ csam is-at CSAM
Для первого пакета это говорит, что адресом источника Ethernet является RTSG, конечным пунктом является широковещательный адрес Ethernet, поле типа содержит шестнадцатеричный 0806 (тип ETHER_ARP), а общая длина — 64 байта.
TCP-пакеты (N.B.: Следующее описание предполагает знакомство с протоколом TCP, описанным
Понимание вывода tcpdump
выводит информацию для каждого захваченного пакета в новой строке. Каждая строка включает метку времени и информацию об этом пакете в зависимости от протокола.
Типичный формат строки протокола TCP выглядит следующим образом:
Пойдем по полю и объясним следующую строку:
-
— метка захваченного пакета по местному времени и использует следующий формат: , где — доли секунды с полуночи.
-
— пакетный протокол. В данном случае IP означает Интернет-протокол версии 4 (IPv4).
-
— IP-адрес и порт источника, разделенные точкой ( ).
-
— IP-адрес и порт назначения, разделенные точкой ( ).
-
— поле TCP Flags. В этом примере означает пакет подтверждения push, который используется для подтверждения предыдущего пакета и отправки данных. Другие типичные значения поля флага следующие:
- — ACK (подтверждение)
- — SYN (Начать соединение)
- — PSH (Push-данные)
- — FIN (Завершить соединение)
- — RST (сбросить соединение)
- — SYN-ACK (пакет SynAcK)
-
— Порядковый номер находится в . Он показывает количество данных, содержащихся в пакете. За исключением первого пакета в потоке данных, где эти числа являются абсолютными, все последующие пакеты используются как относительные позиции байтов. В этом примере номер , что означает, что этот пакет содержит байты от 201747193 до 201747301 потока данных. Используйте параметр для вывода абсолютных порядковых номеров.
-
Номер подтверждения — это порядковый номер следующих данных, ожидаемых на другом конце этого соединения.
-
— Номер окна — это количество доступных байтов в приемном буфере.
-
— длина данных полезной нагрузки
Понимание вывода tcpdump
tcpdumpвыводит информацию для каждого захваченного пакета на новой строке. Каждая строка содержит метку времени и информацию об этом пакете, в зависимости от протокола.
Типичный формат строки протокола TCP выглядит следующим образом:
. > .: , , , , ,
Давайте посмотрим поле за полем и объясним следующую строку:
15:47:24.248737 IP 192.168.1.185.22 > 192.168.1.150.37445: Flags , seq 201747193:201747301, ack 1226568763, win 402, options , length 108
- 15:47:24.248737- Отметка времени захваченного пакета указывается по местному времени и использует следующий формат:, hours:minutes:seconds.frac где frac – доли секунды с полуночи.
- IP- Пакетный протокол. В этом случае IP означает интернет-протокол версии 4 (IPv4).
- 192.168.1.185.22- IP-адрес источника и порт, разделенные точкой ( .).
- 192.168.1.150.37445- IP-адрес и порт назначения, разделенные точкой ( .).
- Flags — Поле Флаги TCP. В этом примере означает пакет Push Acknowledgement, который используется для подтверждения предыдущего пакета и отправки данных. Другие типичные значения полей флага:
- – ACK (Подтверждение)
- – SYN (Начать соединение)
- – PSH (Push-данные)
- – FIN (Завершить соединение)
- – RST (Сброс соединения)
- – SYN-ACK (Пакет SynAcK)
- seq 201747193:201747301- Порядковый номер в обозначении first:last. Показывает количество данных, содержащихся в пакете. За исключением первого пакета в потоке данных, где эти числа являются абсолютными, все последующие пакеты используют в качестве относительных позиций байтов. В этом примере это число 201747193:201747301 означает, что этот пакет содержит байты с 201747193 по 201747301 потока данных. Используйте опцию -S для печати абсолютных порядковых номеров.
- ack 1226568763 Номер подтверждения – это порядковый номер следующих данных, ожидаемых другим концом этого соединения.
- win 402 – Номер окна – это количество доступных байтов в приемном буфере.
- options — Варианты TCP. nop или «без операции» – это заполнение, используемое, чтобы сделать заголовок TCP кратным 4 байтам. TS val является отметкой времени TCP и ecrобозначает эхо-ответ. Посетите документацию IANA для получения дополнительной информации о параметрах TCP.
- length 108 – длина данных полезной нагрузки