Wireshark

Руководство по интерфейсу командной строки Wireshark «tshark»

Руководство по интерфейсу командной строки Wireshark «tshark»
В предыдущих руководствах по Wireshark мы рассмотрели темы от фундаментального до продвинутого уровня. В этой статье мы поймем и рассмотрим интерфейс командной строки для Wireshark, i.е., цирк. Терминальная версия Wireshark поддерживает аналогичные параметры и очень полезна, когда графический интерфейс пользователя (GUI) недоступен.

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

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

Введите следующую команду, чтобы установить tshark в Ubuntu / Debian с помощью apt-get:

[электронная почта защищена]: ~ $ sudo apt-get install tshark -y

Теперь введите tshark -help чтобы перечислить все возможные аргументы с соответствующими флагами, которые мы можем передать команде цирк.

[адрес электронной почты защищен]: ~ $ tshark --help | голова -20
TShark (Wireshark) 2.6.10 (Git v2.6.10 упакованы как 2.6.10-1 ~ ubuntu18.04.0)
Дамп и анализ сетевого трафика.
См. Https: // www.WireShark.org для получения дополнительной информации.
Использование: tshark [параметры]…
Интерфейс захвата:
имя или идентификатор интерфейса (по умолчанию: первый без обратной связи)
фильтр пакетов в синтаксисе фильтра libpcap
-s длина снимка пакета (по умолчанию: соответствующий максимум)
-p не снимайте в беспорядочном режиме
-Снимаю в режиме монитора, если есть
-B размер буфера ядра (по умолчанию: 2 МБ)
тип канального уровня (по умолчанию: первый подходящий)
--тип отметки времени метод отметки времени для интерфейса
-D распечатать список интерфейсов и выйти
-L распечатать список типов iface и выхода на канальном уровне
--list-time-stamp-types распечатать список типов временных меток для iface и выхода
Условия остановки захвата:

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

Выбор сетевого интерфейса:

Чтобы провести захват и анализ в реальном времени в этой утилите, нам сначала нужно выяснить наш рабочий интерфейс. Тип tshark -D и tshark перечислит все доступные интерфейсы.

[электронная почта защищена]: ~ $ tshark -D
1. enp0s3
2. любой
3. lo (петля)
4. nflog
5. nfqueue
6. usbmon1
7. ciscodump (удаленный захват Cisco)
8. randpkt (генератор случайных пакетов)
9. sshdump (удаленный захват SSH)
10. udpdump (удаленный захват UDP-прослушивателя)

Обратите внимание, что не все перечисленные интерфейсы будут работать. Тип ifconfig найти рабочие интерфейсы в вашей системе. В моем случае это enp0s3.

Захват трафика:

Чтобы начать процесс записи в реальном времени, мы будем использовать цирк команда с «»Возможность начать процесс захвата из рабочего интерфейса.

[электронная почта защищена]: ~ $ tshark -i enp0s3

Использовать Ctrl + C чтобы остановить живую съемку. В приведенной выше команде я передал захваченный трафик команде Linux глава для отображения первых нескольких захваченных пакетов. Или вы также можете использовать “-c »Синтаксис для захвата«п » количество пакетов.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -c 5

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

Вы также можете использовать следующую команду для проверки нескольких интерфейсов:

[электронная почта защищена]: ~ $ tshark -i enp0s3 -i usbmon1 -i lo

Между тем, еще один способ получить трафик в реальном времени - использовать номер вместе с перечисленными интерфейсами.

[электронная почта защищена]: ~ $ tshark -i interface_number

Однако при наличии нескольких интерфейсов сложно отслеживать их перечисленные номера.

Фильтр захвата:

Фильтры захвата значительно уменьшают размер захваченного файла. Tshark использует синтаксис Berkeley Packet Filter «», Который также используется tcpdump. Мы будем использовать параметр «-f» для захвата пакетов только с портов 80 или 53 и использовать «-c» для отображения только первых 10 пакетов.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -f "порт 80 или порт 53" -c 10

Сохранение захваченного трафика в файл:

Ключевым моментом на приведенном выше снимке экрана является то, что отображаемая информация не сохраняется, поэтому она менее полезна. Мы используем аргумент «», Чтобы сохранить захваченный сетевой трафик в test_capture.pcap в / tmp папка.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -w / tmp / test_capture.pcap

Тогда как, .pcap это расширение типа файла Wireshark. Сохранив файл, вы сможете позже просмотреть и проанализировать трафик на машине с графическим интерфейсом Wireshark.

Рекомендуется сохранить файл в /tmp поскольку эта папка не требует никаких прав на выполнение. Если вы сохраните его в другой папке, даже если вы запускаете tshark с правами root, программа откажет в разрешении по соображениям безопасности.

Давайте рассмотрим все возможные способы:

  • применять ограничения на сбор данных, например, при выходе цирк или автоматическая остановка процесса захвата, и
  • вывод ваших файлов.

Параметр автостопа:

Вы можете использовать «»Параметр для включения доступных флагов, таких как размер файла и файлы. В следующей команде мы используем параметр autostop с продолжительность флаг, чтобы остановить процесс в течение 120 секунд.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -a продолжительность: 120 -w / tmp / test_capture.pcap

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

[электронная почта защищена]: ~ $ tshark -i enp0s3 -a размер файла: 50 -w / tmp / test_capture.pcap

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

Выходной параметр захвата:

Захват вывода, он же аргумент кольцевого буфера ««, Имеет те же флаги, что и автостоп. Однако использование / вывод немного отличается, я.е., флаги продолжительность а также размер файла, поскольку он позволяет переключать или сохранять пакеты в другой файл после достижения указанного ограничения по времени в секундах или размере файла.

Приведенная ниже команда показывает, что мы захватываем трафик через наш сетевой интерфейс enp0s3, и захватить трафик с помощью фильтра захвата «”Для TCP и DNS. Мы используем опцию кольцевого буфера «-b» с размер файла флаг для сохранения каждого файла размера 15 Кб, а также используйте аргумент autostop, чтобы указать количество файлов, используя файлы вариант, чтобы он останавливал процесс захвата после создания трех файлов.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер файла: 15 -a файлы: 2 -w / tmp / test_capture.pcap

Я разделил свой терминал на два экрана, чтобы активно отслеживать создание трех .файлы pcap.

Перейти к вашей / tmp папку и используйте следующую команду во втором терминале для отслеживания обновлений каждую секунду.

[электронная почта защищена]: ~ $ watch -n 1 "ls -lt"

Теперь вам не нужно запоминать все эти флаги. Вместо этого введите команду tshark -i enp0s3 -f «порт 53 или порт 21» -b размер файла: 15 -a в вашем терминале и нажмите Вкладка. Список всех доступных флагов будет доступен на вашем экране.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер файла: 15 -a
продолжительность: файлы: размер файла:
[электронная почта защищена]: ~ $ tshark -i enp0s3 -f "порт 53 или порт 21" -b размер файла: 15 -a

Чтение .Файлы pcap:

Самое главное, вы можете использовать «»Параметр для чтения test_capture.pcap и направьте его в глава команда.

[электронная почта защищена]: ~ $ tshark -r / tmp / test_capture.pcap | глава

Информация, отображаемая в выходном файле, может быть немного подавляющей. Чтобы избежать ненужных подробностей и лучше понять какой-либо конкретный IP-адрес назначения, мы используемвозможность прочитать файл захваченного пакета и использовать ip.адрес фильтр для перенаправления вывода в новый файл с «" вариант. Это позволит нам просмотреть файл и уточнить наш анализ, применив дополнительные фильтры.

[электронная почта защищена]: ~ $ tshark -r / tmp / test_capture.pcap -w / tmp / redirected_file.pcap ip.dst == 216.58.209.142
[электронная почта защищена]: ~ $ tshark -r / tmp / redirected_file.pcap | голова
1 0.000000000 10.0.2.15 → 216.58.209.142 TLSv1.2370 прикладных данных
2 0.000168147 10.0.2.15 → 216.58.209.142 TLSv1.2669 Данные приложения
3 0.011336222 10.0.2.15 → 216.58.209.142 TLSv1.2 5786 Данные приложения
4 0.016413181 10.0.2.15 → 216.58.209.142 TLSv1.2 1093 Данные приложения
5 0.016571741 10.0.2.15 → 216.58.209.142 TLSv1.2 403 Данные приложения
6 0.016658088 10.0.2.15 → 216.58.209.142 TCP 7354 [сегмент TCP повторно собранного PDU]
7 0.016738530 10.0.2.15 → 216.58.209.142 TLSv1.2948 прикладных данных
8 0.023006863 10.0.2.15 → 216.58.209.142 TLSv1.2 233 Данные приложения
9 0.023152548 10.0.2.15 → 216.58.209.142 TLSv1.2669 Данные приложения
10 0.023324835 10.0.2.15 → 216.58.209.142 TLSv1.2 3582 Данные приложения

Выбор полей для вывода:

Команды выше выводят сводку каждого пакета, которая включает различные поля заголовка. Tshark также позволяет просматривать указанные поля. Чтобы указать поле, мы используем «-Поле T»И извлекаем поля по нашему выбору.

После "-Поле T», Мы используем параметр« -e »для печати указанных полей / фильтров. Здесь мы можем использовать фильтры отображения Wireshark.

[электронная почта защищена]: ~ $ tshark -r / tmp / test_capture.pcap -T поля -e кадр.номер -e ip.src -e ip.dst | глава
1 10.0.2.15 216.58.209.142
2 10.0.2.15 216.58.209.142
3 216.58.209.142 10.0.2.15
4 216.58.209.142 10.0.2.15
5 10.0.2.15 216.58.209.142
6 216.58.209.142 10.0.2.15
7 216.58.209.142 10.0.2.15
8 216.58.209.142 10.0.2.15
9 216.58.209.142 10.0.2.15
10 10.0.2.15 115.186.188.3

Захват зашифрованных данных рукопожатия:

Пока что мы научились сохранять и читать выходные файлы с использованием различных параметров и фильтров. Теперь мы узнаем, как HTTPS инициализирует сеанс tshark. Веб-сайты, доступ к которым осуществляется через HTTPS вместо HTTP, обеспечивают безопасную или зашифрованную передачу данных по проводам. Для безопасной передачи шифрование Transport Layer Security запускает процесс установления связи, чтобы начать обмен данными между клиентом и сервером.

Давайте запишем и разберем рукопожатие TLS с помощью tshark. Разделите свой терминал на два экрана и используйте wget команда для получения html-файла из https: // www.WireShark.org.

[электронная почта защищена]: ~ $ wget https: // www.WireShark.org
--2021-01-09 18:45:14 - https: // www.WireShark.org /
Подключение к www.WireShark.org (www.WireShark.org) | 104.26 год.10.240 |: 443… подключено.
HTTP-запрос отправлен, ожидает ответа… 206 Частичное содержимое
Длина: 46892 (46 КБ), осталось 33272 (32 КБ) [text / html]
Сохранение в: 'index.html '
индекс.html 100% [++++++++++++++ ================================ ==>] 45.79K 154KB / s в 0.2 с
2021-01-09 18:43:27 (154 КБ / с) - 'индекс.html 'сохранен [46892/46892]

На другом экране мы будем использовать tshark для захвата первых 11 пакетов с помощью символа «-c”Параметр. При выполнении анализа отметки времени важны для реконструкции событий, поэтому мы используем «-т ад»Таким образом, что tshark добавляет метку времени к каждому захваченному пакету. Наконец, мы используем команду host для захвата пакетов с общего хоста айпи адрес.

Это рукопожатие очень похоже на рукопожатие TCP. Как только трехэтапное рукопожатие TCP завершается в первых трех пакетах, пакеты с четвертого по девятый следуют несколько схожему ритуалу рукопожатия и включают строки TLS для обеспечения зашифрованной связи между обеими сторонами.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -c 11 -t ad host 104.26 год.10.240
Захват на enp0s3
1 2021-01-09 18:45:14.174524575 10.0.2.15 → 104.26 год.10.240 TCP 74 48512 → 443 [SYN] Seq = 0 Win = 64240 Len = 0 MSS = 1460 SACK_PERM = 1 TSval = 2488996311 TSecr = 0 WS = 128
2 2021-01-09 18:45:14.279972105 104.26 год.10.240 → 10.0.2.15 TCP 60 443 → 48512 [SYN, ACK] Seq = 0 Ack = 1 Win = 65535 Len = 0 MSS = 1460
3 2021-01-09 18:45:14.280020681 10.0.2.15 → 104.26 год.10.240 TCP 54 48512 → 443 [ACK] Seq = 1 Ack = 1 Win = 64240 Len = 0
4 2021-01-09 18:45:14.280593287 10.0.2.15 → 104.26 год.10.240 TLSv1 373 Клиент Привет
5 2021-01-09 18:45:14.281007512 104.26 год.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 1 Ack = 320 Win = 65535 Len = 0
6 2021-01-09 18:45:14.390272461 104.26 год.10.240 → 10.0.2.15 TLSv1.3 1466 Server Hello, Change Cipher Spec
7 2021-01-09 18:45:14.390303914 10.0.2.15 → 104.26 год.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 1413 Win = 63540 Len = 0
8 2021-01-09 18:45:14.392680614 104.26 год.10.240 → 10.0.2.15 TLSv1.3 1160 Данные приложения
9 2021-01-09 18:45:14.392703439 10.0.2.15 → 104.26 год.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 2519 Win = 63540 Len = 0
10 2021-01-09 18:45:14.394218934 10.0.2.15 → 104.26 год.10.240 TLSv1.3 134 Изменить спецификацию шифра, данные приложения
11 2021-01-09 18:45:14.394614735 104.26 год.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 2519 Ack = 400 Win = 65535 Len = 0
Захвачено 11 пакетов

Просмотр всего пакета:

Единственным недостатком утилиты командной строки является то, что у нее нет графического интерфейса, поскольку она становится очень удобной, когда вам нужно искать большой объем интернет-трафика, а также предлагает панель пакетов, которая отображает все сведения о пакете в мгновенное. Тем не менее, все еще можно проверить пакет и вывести всю информацию о пакете, отображаемую на панели пакетов графического интерфейса.

Чтобы проверить весь пакет, мы используем команду ping с параметром «-c» для захвата одного пакета.

[электронная почта защищена]: ~ $ ping -c 1 104.26 год.10.240
ПИНГ 104.26 год.10.240 (104.26 год.10.240) 56 (84) байтов данных.
64 байта из 104.26 год.10.240: icmp_seq = 1 ttl = 55 время = 105 мс
--- 104.26 год.10.240 статистика пинга ---
1 пакет передан, 1 получен, потеря пакетов 0%, время 0 мс
rtt min / avg / max / mdev = 105.095/105.095/105.095/0.000 мс

В другом окне используйте команду tshark с дополнительным флагом для отображения всей информации о пакете. Вы можете заметить различные разделы, отображающие информацию о кадрах, Ethernet II, IPV и ICMP.

[электронная почта защищена]: ~ $ tshark -i enp0s3 -c 1 -V host 104.26 год.10.240
Кадр 1: 98 байтов на проводе (784 бита), захвачено 98 байтов (784 бита) на интерфейсе 0
Идентификатор интерфейса: 0 (enp0s3)
Название интерфейса: enp0s3
Тип инкапсуляции: Ethernet (1)
Время прибытия: 9 янв.2021 г., 21:23:39.167581606 ПКТ
[Сдвиг по времени для этого пакета: 0.000000000 секунд]
Эпоха: 1610209419.167581606 секунд
[Разница во времени от предыдущего захваченного кадра: 0.000000000 секунд]
[Разница во времени относительно предыдущего кадра: 0.000000000 секунд]
[Время с момента обращения или первого кадра: 0.000000000 секунд]
Номер кадра: 1
Длина кадра: 98 байтов (784 бит)
Длина захвата: 98 байтов (784 бит)
[Рамка отмечена: ложь]
[Фрейм игнорируется: ложь]
[Протоколы во фрейме: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Назначение: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Адрес: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG бит: локально управляемый адрес (НЕ является заводской настройкой по умолчанию)
… 0… = IG бит: индивидуальный адрес (одноадресный)
Источник: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Адрес: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Идентификатор интерфейса: 0 (enp0s3)
Название интерфейса: enp0s3
Тип инкапсуляции: Ethernet (1)
Время прибытия: 9 янв.2021 г., 21:23:39.167581606 ПКТ
[Сдвиг по времени для этого пакета: 0.000000000 секунд]
Эпоха: 1610209419.167581606 секунд
[Разница во времени от предыдущего захваченного кадра: 0.000000000 секунд]
[Разница во времени относительно предыдущего кадра: 0.000000000 секунд]
[Время с момента обращения или первого кадра: 0.000000000 секунд]
Номер кадра: 1
Длина кадра: 98 байтов (784 бит)
Длина захвата: 98 байтов (784 бит)
[Рамка отмечена: ложь]
[Фрейм игнорируется: ложь]
[Протоколы во фрейме: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Назначение: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Адрес: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG бит: локально управляемый адрес (НЕ является заводской настройкой по умолчанию)
… 0… = IG бит: индивидуальный адрес (одноадресный)
Источник: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Адрес: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
… 0… = LG бит: глобально уникальный адрес (заводская установка по умолчанию)
… 0… = IG бит: индивидуальный адрес (одноадресный)
Тип: IPv4 (0x0800)
Интернет-протокол версии 4, Src: 10.0.2.15, летнее время: 104.26 год.10.240
0100… = Версия: 4
… 0101 = Длина заголовка: 20 байтов (5)
Поле дифференцированных услуг: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00… = Кодовая точка дифференцированных услуг: По умолчанию (0)
… 00 = явное уведомление о перегрузке: транспорт без поддержки ECN (0)
Общая длина: 84
Идентификация: 0xcc96 (52374)
Флаги: 0x4000, не фрагментировать
0… = зарезервированный бит: не установлен
.1… = Не фрагментировать: Установить
… 0… = Больше фрагментов: не задано
… 0 0000 0000 0000 = Смещение фрагмента: 0
Время жить: 64
Протокол: ICMP (1)
Контрольная сумма заголовка: 0xeef9 [проверка отключена]
[Статус контрольной суммы заголовка: неподтвержденный]
Источник: 10.0.2.15
Назначения: 104.26 год.10.240
Протокол управляющих сообщений Интернета
Тип: 8 (запрос эхо (пинга))
Код: 0
Контрольная сумма: 0x0cb7 [правильно]
[Статус контрольной суммы: хорошо]
Идентификатор (BE): 5038 (0x13ae)
Идентификатор (LE): 44563 (0xae13)
Порядковый номер (BE): 1 (0x0001)
Порядковый номер (LE): 256 (0x0100)
Отметка времени из данных icmp: 9 января 2021 г., 21:23:39.000000000 ПКТ
[Отметка времени из данных icmp (относительная): 0.167581606 секунд]
Данные (48 байт)
0000 91 8e 02 00 00 00 00 00 10 11 12 13 14 15 16 17…
0010 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27… !"# $% & '
0020 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 () *+,-./ 01234567
Данные: 918e020000000000101112131415161718191a1b1c1d1e1f…
[Длина: 48]

Заключение:

Самым сложным аспектом анализа пакетов является поиск наиболее актуальной информации и игнорирование бесполезных битов. Несмотря на то, что графические интерфейсы просты, они не могут способствовать автоматическому анализу сетевых пакетов. В этой статье вы узнали самые полезные параметры tshark для захвата, отображения, сохранения и чтения файлов сетевого трафика.

Tshark - очень удобная утилита, которая читает и записывает файлы захвата, поддерживаемые Wireshark. Комбинация фильтров отображения и захвата вносит большой вклад при работе над сценариями использования расширенного уровня. Мы можем использовать способность tshark печатать поля и манипулировать данными в соответствии с нашими требованиями для углубленного анализа. Другими словами, он способен делать практически все, что делает Wireshark. Самое главное, он идеально подходит для удаленного сниффинга пакетов с использованием ssh, что является темой другого дня.

Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...
Установите последнюю версию эмулятора Dolphin для Gamecube и Wii в Linux
Эмулятор Dolphin позволяет вам играть в выбранные вами игры Gamecube и Wii на персональных компьютерах (ПК) Linux. Являясь свободно доступным игровым...
Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...