- Wireshark в Linux. Консольный анализатор сетевого трафика Tshark
- Установка Tshark
- Перехват, чтение и сохранение пакетов
- Фильтры
- Фильтры перехвата
- Фильтры отображения
- Форматирование
- Вывод статистических данных
- Список IP-соединений
- Защищённые соединения
- Заключение
- Похожие записи:
- Как установить Wireshark в Linux
- Инструкции Ubuntu
- Инструкции Debian
- Инструкции Arch Linux
- Инструкции Fedora
- Инструкции OpenSUSE
- Инструкции по Flatpak
Wireshark в Linux. Консольный анализатор сетевого трафика Tshark
Tshark — мощный анализатор трафика для интерфейса командной строки, который входит в состав известной утилиты Wireshark. Он работает аналогично Tcpdump, но благодаря большому количеству декодеров и фильтров позволяет анализировать информацию протоколов различного уровня и отображать ее в разнообразных видах и форматах.
Tshark может использоваться для анализа трафика в реальном времени или из файлов pcap/pcapng и позволяет своевременно устранять и предупреждать возможные проблемы и угрозы безопасности.
Tshark — приложение командной строки, обладающее всеми возможностями Wireshark, но без графического интерфейса. Это очень удобно, когда требуется автоматизированное выполнение задач, например, запланированный в cron перехват пакетов, отправка данных в sed, awk, perl, базу данных или по электронной почте.
Установка Tshark
Как уже отмечалось, утилита входит в пакет Wireshark. Установить его можно с помощью менеджера пакетов apt-get или yum.
Перехват, чтение и сохранение пакетов
При запуске без параметров Tshark, как и tcpdump начнёт перехватывать весь сетевой трафик на всех интерфейсах.
Если на вашей машине несколько интерфейсов, вам может потребоваться указать, какой именно должен использоваться. Для получения списка доступных интерфейсов укажите опцию -D:
Выбрав нужный интерфейс, укажите его имя или номер при помощи опции -i, например:
Теперь, когда мы научились перехватывать пакеты, нам может потребоваться сохранить их для дальнейшего изучения. Для этого используется опция -w. Следующая команда будет перехватывать пакеты с интерфейса eth0 и сохранять их в файл /tmp/traffic.pcap:
tshark -i eth0 -w /tmp/traffic.pcap
Для анализа пакетов из ранее сохранённого файла вместо их перехвата с интерфейса укажите имя файла с опцией -r. Для чтения из файлов не требуется привилегий суперпользователя.
Надо отметить, что утилита также читает и анализирует файлы снятые tcpdump.
По умолчанию Tshark выполняет разрешение имён. Для лучшего понимания откуда пакет пришел и куда отправлен можно отключить его при помощи опции -n. Тогда вместо доменных имен, в дампе трафика будут ip адреса.
Фильтры
При работе Tshark в сильно загруженной сети результаты могут выводиться слишком быстро и переполнять экран, существенно затрудняя чтение. Для решения этой проблемы в Tshark есть два вида фильтров.
Фильтры перехвата
Это традиционные pcap/bpf фильтры, определяющие, какие пакеты будут перехватываться на интерфейсе. Фильтры аналогичны фильтрам tcpdump, поэтому подробно мы их в этой статье рассматривать не будем. Желающие могут прочитать о них в статье про tcpdump
Перехват пакетов, связанных с узлом 192.168.1.100, на портах 80 или 53.
tshark -i 2 -f "host 192.168.1.100 and (dst port 53 or 80)"
Игнорировать групповые и широковещательные пакеты:
tshark -i eth3 -f "not broadcast and not multicast"
Фильтры отображения
Фильтры отображения задаются опцией -Y. Их синтаксис такой же как и в графической программе wireshark. Рассмотрим наиболее популярные
Просмотр всех соединений с адреса 192.168.1.1
tshark -i eth0 -Y "ip.addr==192.168.1.1"
Отображение HTTP-запросов на TCP-порт 8800
tshark -i eth0 -Y "tcp.port== 8800 and http.request"
Исключить отображение пакетов ICMP и ARP:
tshark -i eth0 -Y "not arp or icmp"
Повторная передача пакетов(retransmision)
tshark -i eth0 -Y "tcp.analysis.retransmission"
Более подробно о фильтрах можно прочитать на официальном сайте https://www.wireshark.org/
Форматирование
Иногда требуется отображение более или менее подробной информации о пакетах. Tshark позволяет определить, где и как выводить эту информацию. Для этого используются следующие опции.
Опция -V используется для подробного режима Tshark и отображения такой информации, как номер кадра, поле протокола, данные или флаги пакета.
Опция -O аналогична -V, но выводит информацию о конкретном протоколе.
Для вывода данных в различном формате применяется опция -T, это может быть полезно, если вам требуется строго определенная информация, например, при выводе данных Tshark в базу данных.
tshark -i wlan0 -O icmp -T fields -e frame.number -e data
При выборе полей для опции -T нужно как минимум один раз указать опцию -e, которая задаёт поля для вывода. Для отображения нескольких полей ее можно использовать несколько раз.
tshark -r nmap_OS_scan_succesful -Y "tcp.ack" -T fields -e frame.number -e ip.src -e tcp.seq -e tcp.ack -e tcp.flags.str -e tcp.flags -e tcp.analysis.acks_frame
Полный список возможных полей для отображения с флагом -e можно получить при помощи опции -G:
При помощи флага -E осуществляется дополнительное форматирование. Можно отображать/скрывать заголовки,устанавливать символ кавычек и т.д. Например, следующая команда устанавливает эти опции и помещает результат в файл формата CSV:
tshark -r captured.cap -T fields -e frame.number -e frame.encap_type -e frame.protocols -e frame.len -e ip.addr -E separator=, -E quote=d > outfile.csv
Вывод статистических данных
Для создания статистических отчетов используется опция -z, после которой указывается тип отчета.
Отчёт по протоколам SMB, DNS и IP:
tshark -i ens1 -z smb,srt -z dns,tree -z http,tree -z hosts
Список IP-соединений
tshark -r cap.pcap -z conv,ip
Полный список доступных отчетов можно получить, указав опцию -z help:
Защищённые соединения
Tshark позволяет анализировать и зашифрованные соединения, например, SSL. В следующем примере показано HTTP-соединение через SSL.
Мы отображаем пакеты с TCP-порта 443, указывая Tshark выводить подробную информацию о протоколе HTTP, выполнять сегментацию для SSL, осуществлять поиск приватного ключа в файле server-x.key формата PEM и сохранять информацию для отладки в файле debug-ssl.log.
tshark -r encrypted-packets.pcap -Y "tcp.port == 443" -O http \ -o "ssl.desegment_ssl_records: TRUE" \ -o "ssl.desegment_ssl_application_data: TRUE" \ -o "ssl.keys_list: 127.0.0.1,443,http,server-x.key" \ -o "ssl.debug_file: debug-ssl.log"
Заключение
Мы рассмотрели использование Tshark для перехвата пакетов в сети. Эта утилита очень полезна для выяснения источников проблем, отладки сетевых служб, анализа безопасности и общего состояния сети. Tshark обладает очень широкими возможностями, но мы рассмотрели наиболее важные и характерные примеры. Для дальнейшего изучения и получения максимально подробной информации об этой утилите можно обратиться к официальной документации.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
Как установить Wireshark в Linux
Wireshark — это инструмент анализа пакетов с открытым исходным кодом, доступный для Linux и других платформ. Он используется для проверки сетевых пакетов на предмет устранения неполадок, разработки и безопасности. Инструмент Wireshark поддерживает практически все операционные системы, включая Ubuntu, Debian, Arch Linux, Fedora, OpenSUSE и даже Flatpak. Чтобы установить Wireshark в Linux, откройте терминал, нажав Ctrl + Alt + T или Ctrl + Shift + T, и следуйте инструкциям ниже.
Инструкции Ubuntu
В Ubuntu лучший способ использовать Wireshark — включить сторонний PPA. Причина в том, что PPA будет доставлять обновления быстрее, чего не может обеспечить операционная система Ubuntu.
Чтобы включить сторонний PPA, перейдите в терминал и используйте команду add-apt-repository.
sudo add-apt-repository ppa:wireshark-dev/stable
Когда PPA добавлен в Ubuntu, пришло время использовать команду обновления, так как она требуется для загрузки файла выпуска для репозитория программного обеспечения Wireshark.
После использования команды обновления вы, несомненно, заметите, что есть обновления программного обеспечения, готовые к установке. Важно установить эти ожидающие обновления, чтобы Wireshark работал наилучшим образом.
Чтобы установить обновления программного обеспечения, выполните команду обновления.
Поскольку все обновлено, можно безопасно установить последнюю версию Wireshark на Ubuntu.
sudo apt install wireshark
Инструкции Debian
Для пользователей Debian доступны готовые к установке пакеты Wireshark в репозитории программного обеспечения «Debian Main». Чтобы заставить его работать в вашей системе, используйте команду Apt-get ниже в окне терминала.
sudo apt-get install wireshark
Имейте в виду, что пакеты Wireshark, доступные пользователям Debian, ужасно устарели. Причина того, почему программа устарела, заключается в том, что Debian Linux предоставляет обновления программного обеспечения и новые функции гораздо медленнее, чем другие операционные системы.
Если вас не устраивает, что выпуск Wireshark для Debian Linux не является чем-то новым, вы можете включить Debian Backports, чтобы получить более современные версии.
Не хотите включать Debian Backports, но по-прежнему хотите более новую версию Wireshark? Попробуйте вместо этого следовать инструкциям Flatpak в этом руководстве.
Инструкции Arch Linux
И командная строка, и версия Qt Wireshark доступны пользователям Arch Linux в репозитории программного обеспечения «Сообщество». Чтобы установить программное обеспечение на свой компьютер Arch, вы должны вручную включить «Сообщество», так как не во всех дистрибутивах он включен по умолчанию.
Чтобы включить «Сообщество», получите root в своем терминале с помощью su.
После получения root откройте файл /etc/pacman.conf в текстовом редакторе Nano.
Прокрутите текстовый редактор до тех пор, пока не найдете «Сообщество» и удалите символ # перед ним, а также строки непосредственно под ним. После этого сохраните изменения, нажав Ctrl + O, и выйдите, нажав Ctrl + X.
Выполните повторную синхронизацию Pacman, чтобы вы могли добавить пакеты сообщества в базу данных программы на вашем ПК.
Наконец, установите последнюю версию Wireshark.
Инструкции Fedora
На данный момент приложение Wireshark готово к использованию в Fedora Linux, благодаря его включению в репозиторий программного обеспечения «Fedora i386» и «Fedora x86_64». Чтобы заставить его работать в вашей системе, запустите окно терминала и загрузите его с помощью диспетчера пакетов DNF.
sudo dnf install wireshark
Инструкции OpenSUSE
На странице загрузки веб-сайта Wireshark разработчики заявляют, что они поддерживают OpenSUSE Linux, но, к сожалению, прямой ссылки на пакет нет.
Несмотря на очевидное пренебрежение со стороны разработчика Wireshark к пользователям OpenSUSE Linux, программа доступна в большом количестве репозиториев программного обеспечения с разными версиями.
На данный момент последней стабильной версией для Leap 15, Leap 42.3 и Tumbleweed является версия 2.4. Установка не требует особых действий. Просто запустите окно терминала и используйте установщик Zypper.
sudo zypper install wireshark
Wireshark 2.4 — полезный выпуск для обычных пользователей, но если вы используете OpenSUSE и нуждаетесь в последних функциях, вам необходимо включить стороннее хранилище сетевых утилит.
Примечание: в настоящее время установить Wireshark 3 можно только на OpenSUSE Leap 15. 42.3 и Tumbleweed в настоящее время не поддерживаются.
Чтобы добавить репозиторий сетевых утилит, используйте команду zypper addrepo.
sudo zypper addrepo https://widehat.opensuse.org/opensuse/repositories/network:/utilities/openSUSE_Leap_15.0/ network-utilities
После настройки нового репо используйте обновление.
Наконец, установите Wireshark
Инструкции по Flatpak
Wireshark находится в магазине приложений Flathub как пакет Flatpak, поэтому, если вы используете дистрибутив Linux, который разработчики Wireshark не поддерживают, вы можете легко установить приложение с помощью следующих команд.
Примечание: использование Flatpak в Linux требует включения среды выполнения Flatpak. Если вы не знаете, как установить эту среду выполнения, ознакомьтесь с нашим подробным руководством по этому вопросу.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub org.wireshark.Wireshark