Установка, настройка и анализ сетевого трафика с помощью Wireshark

WiresharkWiresharkBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

К концу этой лабораторной работы вы сможете захватывать и анализировать сетевые пакеты в вашей системе, получив практический опыт работы с этим важным инструментом.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/installation -.-> lab-415947{{"Установка, настройка и анализ сетевого трафика с помощью Wireshark"}} wireshark/interface -.-> lab-415947{{"Установка, настройка и анализ сетевого трафика с помощью Wireshark"}} wireshark/packet_capture -.-> lab-415947{{"Установка, настройка и анализ сетевого трафика с помощью Wireshark"}} wireshark/packet_analysis -.-> lab-415947{{"Установка, настройка и анализ сетевого трафика с помощью Wireshark"}} wireshark/commandline_usage -.-> lab-415947{{"Установка, настройка и анализ сетевого трафика с помощью Wireshark"}} end

Установка Wireshark

В этом шаге мы установим Wireshark в нашей системе Ubuntu. Wireshark — это мощный анализатор сетевых протоколов, который позволяет захватывать и анализировать сетевой трафик. Это важный инструмент для всех, кто интересуется сетевой безопасностью и анализом трафика. Хорошая новость заключается в том, что Wireshark доступен в репозиториях Ubuntu, а это значит, что мы можем легко установить его с помощью системы управления пакетами, предоставляемой Ubuntu.

Сначала давайте обновим информацию о репозитории пакетов. Репозиторий пакетов — это как каталог всего программного обеспечения, доступного для вашей системы Ubuntu. Обновляя его, мы гарантируем, что у нас есть доступ к последним версиям программного обеспечения. Для этого нам нужно открыть терминал. Вы можете открыть терминал, щелкнув значок терминала на панели задач или нажав Ctrl+Alt+T. Как только терминал откроется, введите следующую команду:

sudo apt update

Команда sudo используется для выполнения команд с правами администратора. apt — это инструмент управления пакетами в Ubuntu, а update — это команда для обновления информации о репозитории пакетов. При выполнении этой команды вы должны увидеть вывод, подобный этому:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,234 kB]
...
Reading package lists... Done

Этот вывод показывает, что система получает самую свежую информацию о доступных пакетах из репозиториев.

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

sudo apt install wireshark -y

Команда install сообщает apt установить указанный пакет, которым в данном случае является wireshark. Опция -y используется для автоматического ответа "yes" на все запросы во время процесса установки.

В процессе установки вам будет представлено диалоговое окно конфигурации с вопросом, разрешить ли пользователям, не являющимся суперпользователями, захватывать пакеты. Разрешение пользователям, не являющимся суперпользователями, захватывать пакеты может быть полезно, если вы хотите запускать Wireshark, не всегда используя права администратора. Используйте клавиши со стрелками, чтобы выбрать "Yes" (или нажмите y) и нажмите Enter, чтобы подтвердить свой выбор.

Wireshark Configuration Dialog

Примечание: Если вы пропустили этот запрос или вам нужно изменить этот параметр позже, вы можете перенастроить Wireshark с помощью следующей команды:

sudo dpkg-reconfigure wireshark-common

Команда dpkg-reconfigure используется для перенастройки уже установленного пакета.

После завершения установки вы должны увидеть вывод, указывающий на то, что установка прошла успешно. Чтобы убедиться, что Wireshark установлен правильно, мы можем проверить его версию. Выполните следующую команду в терминале:

wireshark --version

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

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Copyright 1998-2022 Gerald Combs <[email protected]> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.15.3, with libpcap, with GLib 2.72.0, with zlib 1.2.11,
with SMI 0.4.8, with c-ares 1.18.1, with Lua 5.2.4, with GnuTLS 3.7.3 and PKCS #11
support, with Gcrypt 1.9.4, with MIT Kerberos, with MaxMind DB resolver,
with nghttp2 1.43.0, with brotli, with LZ4, with Zstandard, with Snappy,
with libxml2 2.9.13, with libssh 0.9.6, with NGHTTP3 0.7.0, with NGTCP2 0.8.0.

Отлично! Wireshark теперь установлен в вашей системе.

Настройка разрешений на захват трафика Wireshark

В этом шаге мы настроим необходимые разрешения для Wireshark для захвата сетевых пакетов. Как новичок, вы можете задаться вопросом, зачем нам это нужно. Дело в том, что по умолчанию захват пакетов требует прав root (суперпользователя). Это мера безопасности, поскольку захват сетевых пакетов может потенциально раскрыть конфиденциальную информацию. Однако запуск Wireshark от имени root — не лучшая идея с точки зрения безопасности. Если в Wireshark есть уязвимость, злоумышленник может получить полный доступ к системе, если он запущен от имени root. Поэтому мы настроим Wireshark так, чтобы ваша обычная учетная запись пользователя могла безопасно захватывать пакеты.

Сначала нам нужно проверить, существует ли группа wireshark в системе. Группа wireshark — это специальная группа, которую мы будем использовать для управления разрешениями на захват пакетов. Чтобы проверить, существует ли эта группа, мы будем использовать команду getent. getent — это утилита, которая извлекает записи из различных системных баз данных, таких как база данных групп в данном случае. Запустите следующую команду в своем терминале:

getent group wireshark

Если ничего не отображается, это означает, что группа еще не существует, и нам нужно ее создать. Мы будем использовать команду groupadd для создания группы wireshark. Команда groupadd используется для создания новой группы в системе. Выполните следующую команду:

sudo groupadd wireshark

Команда sudo используется для выполнения команды groupadd с правами администратора. Вам будет предложено ввести свой пароль, если вы недавно не использовали sudo.

Далее нам нужно предоставить правильные разрешения для исполняемого файла захвата пакетов (dumpcap). dumpcap — это компонент, который фактически захватывает пакеты для Wireshark. Мы изменим групповое владение исполняемого файла dumpcap на группу wireshark. Таким образом, исполняемый файл dumpcap будет связан с группой wireshark, и мы сможем управлять его разрешениями через эту группу. Выполните следующую команду:

sudo chgrp wireshark /usr/bin/dumpcap

Команда chgrp используется для изменения группового владения файлом или каталогом. В этом случае мы меняем групповое владение исполняемого файла /usr/bin/dumpcap на группу wireshark.

После изменения группового владения мы установим необходимые разрешения для исполняемого файла dumpcap. Мы будем использовать команду chmod для установки разрешений. Команда chmod используется для изменения разрешений файла или каталога. Выполните следующую команду:

sudo chmod 4755 /usr/bin/dumpcap

Эта команда устанавливает setuid-бит (set user ID) на исполняемом файле. Setuid-бит позволяет исполняемому файлу выполняться с разрешениями владельца (root) независимо от того, кто его запускает. Разрешение 4755 можно разбить на следующие части:

  • 4 - Устанавливает setuid-бит. Это означает, что когда исполняемый файл выполняется, он будет работать с разрешениями владельца (root).
  • 7 - Владелец (root) имеет разрешения на чтение, запись и выполнение. Это позволяет владельцу читать, изменять и запускать исполняемый файл.
  • 5 - Группа имеет разрешения на чтение и выполнение. Это позволяет членам группы wireshark читать и запускать исполняемый файл.
  • 5 - Другие имеют разрешения на чтение и выполнение. Это позволяет другим пользователям в системе читать и запускать исполняемый файл.

Наконец, нам нужно добавить нашего текущего пользователя в группу wireshark. Добавив нашего пользователя в группу wireshark, наш пользователь получит необходимые разрешения для использования исполняемого файла dumpcap. Мы будем использовать команду gpasswd для добавления нашего пользователя в группу. Команда gpasswd используется для администрирования файлов /etc/group и /etc/gshadow. Выполните следующую команду:

sudo gpasswd -a $USER wireshark

Переменная $USER — это переменная оболочки, которая содержит имя пользователя текущего пользователя. Вы должны увидеть вывод, указывающий на то, что пользователь был добавлен в группу:

Adding user labex to group wireshark

Чтобы эти изменения вступили в силу, вам нужно выйти из системы и снова войти в нее или перезагрузить систему. Однако для этой лабораторной работы мы можем использовать более простой подход, запустив новую оболочку с обновленным членством в группе. Мы будем использовать команду newgrp для запуска новой оболочки с активной группой wireshark. Команда newgrp используется для изменения текущего идентификатора группы (group ID). Выполните следующую команду:

newgrp wireshark

Эта команда запускает новую оболочку с активной группой wireshark, не требуя полного выхода из системы.

Давайте убедимся, что наш пользователь теперь является частью группы wireshark. Мы будем использовать команду groups для перечисления всех групп, к которым принадлежит наш пользователь. Выполните следующую команду:

groups

Вы должны увидеть wireshark в списке групп:

wireshark sudo ssl-cert labex public

Теперь, когда наш пользователь является частью группы wireshark и исполняемый файл dumpcap имеет правильные разрешения, Wireshark должен быть в состоянии захватывать пакеты без необходимости в правах root.

Запуск Wireshark

В этом шаге мы запустим Wireshark и познакомимся с его начальным интерфейсом. Wireshark — это мощный инструмент для анализа сетевого трафика, и он поставляется с графическим пользовательским интерфейсом (GUI). Этот GUI — это то, что мы будем использовать для взаимодействия с программным обеспечением и анализа сетевого трафика.

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

Есть два способа запустить Wireshark. Вы можете выбрать наиболее удобный для вас способ:

  1. Нажмите на меню "Applications" (Приложения), которое обычно находится в верхнем левом углу экрана. Затем перейдите по меню, чтобы найти категории "Internet" (Интернет) или "Network" (Сеть). Как только вы окажетесь в соответствующей категории, найдите и выберите "Wireshark". Это простой способ запустить программу с помощью графического интерфейса.

    Wireshark in Applications Menu
  2. В качестве альтернативы вы можете использовать терминал. Откройте окно терминала, а затем введите следующую команду:

    wireshark
    Wireshark in Terminal

Эта команда сообщает системе о запуске приложения Wireshark. После выполнения этой команды Wireshark запустится, и на экране появится его главное окно. Первое, что вы увидите, — это экран "Welcome to Wireshark" (Добро пожаловать в Wireshark). На этом экране отображается список доступных сетевых интерфейсов, которые можно использовать для захвата сетевого трафика. Он также отображает некоторые недавно открытые файлы захвата, если вы использовали Wireshark раньше и у вас есть сохраненные файлы.

Wireshark Start Screen

На экране приветствия представлено несколько важных опций:

  1. Вы можете выбрать сетевой интерфейс из списка. После того, как вы выберете интерфейс, Wireshark немедленно начнет захват пакетов из этой сети. Так вы начнете собирать данные о сетевом трафике.
  2. Если у вас есть ранее сохраненный файл захвата, вы можете открыть его с этого экрана. Это полезно, если вы хотите проанализировать данные, которые вы собрали в прошлом.
  3. На этом экране также есть различные инструменты и настройки, к которым вы можете получить доступ. Эти инструменты и настройки помогут вам настроить свой опыт работы с Wireshark и выполнить более продвинутый анализ.

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

Теперь давайте посмотрим на основные элементы интерфейса Wireshark:

  • Menu bar (Строка меню): Эта строка в верхней части окна предоставляет вам доступ ко всем функциям, которые предлагает Wireshark. Вы можете использовать ее для выполнения различных задач, таких как сохранение файлов захвата, изменение настроек и доступ к справке.
  • Toolbar (Панель инструментов): Панель инструментов обеспечивает быстрый доступ к часто используемым функциям. Например, вы можете запускать и останавливать захват пакетов, применять фильтры и сохранять файлы одним щелчком мыши.
  • Interface list (Список интерфейсов): Этот список показывает все доступные сетевые интерфейсы в вашей системе. Вы будете использовать этот список для выбора интерфейса, с которого вы хотите захватывать пакеты.
  • Display filter bar (Строка фильтра отображения): Эта строка позволяет фильтровать пакеты, которые отображаются в главном окне. Вы можете использовать различные критерии, такие как IP-адреса, протоколы или номера портов, чтобы сузить круг интересующих вас пакетов. Мы рассмотрим, как использовать этот фильтр, на следующем шаге.

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

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

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

Запуск захвата

Когда вы откроете Wireshark, вы увидите приветственный экран. На этом экране ваша цель - найти сетевой интерфейс, с которого вы хотите захватывать трафик. В большинстве случаев мы будем использовать интерфейс eth0. Если eth0 недоступен, вы можете выбрать другой активный интерфейс (например, eth1 или wlan0).

Чтобы начать захват пакетов, просто дважды щелкните интерфейс eth0. Это действие немедленно начнет захват пакетов на этом интерфейсе и перенесет вас в главное окно захвата Wireshark.

В качестве альтернативы, вы можете сначала выбрать интерфейс, а затем нажать кнопку "Start capturing packets" (Начать захват пакетов), которая представлена значком синего акульего плавника на панели инструментов. Запуск захвата - это первый шаг в анализе сетевого трафика, поскольку он позволяет Wireshark собирать данные, проходящие через выбранный интерфейс.

Понимание интерфейса Wireshark

После запуска захвата пакетов вы увидите основной интерфейс Wireshark. Этот интерфейс разделен на три основные панели, каждая из которых служит разным целям.

Wireshark Main Interface
  1. Packet List Pane (Top) (Панель списка пакетов (верхняя)): На этой панели отображается список всех пакетов, которые захватил Wireshark. Каждая запись в списке предоставляет основную информацию о пакете, в том числе:

    • Packet number (Номер пакета): Уникальный идентификатор для каждого пакета в захвате.
    • Time (Время): Время захвата пакета.
    • Source IP address (IP-адрес источника): IP-адрес устройства, которое отправило пакет.
    • Destination IP address (IP-адрес назначения): IP-адрес устройства, для которого предназначен пакет.
    • Protocol (Протокол): Сетевой протокол, используемый пакетом, такой как TCP, UDP или ICMP.
    • Length (Длина): Размер пакета в байтах.
    • Info (Информация): Краткое описание назначения пакета, которое может помочь вам быстро понять, что делает пакет.
  2. Packet Details Pane (Middle) (Панель деталей пакета (средняя)): Когда вы выбираете пакет в верхней панели, эта область показывает подробную информацию о выбранном пакете в иерархическом формате. Вы можете развернуть каждый раздел, щелкнув стрелку рядом с ним, чтобы увидеть более подробную информацию о структуре и содержимом пакета.

  3. Packet Bytes Pane (Bottom) (Панель байтов пакета (нижняя)): Эта панель показывает необработанные данные пакета в шестнадцатеричном и ASCII форматах. Когда вы выбираете разные поля в панели Packet Details (Детали пакета), соответствующие байты выделяются на этой панели. Это позволяет вам видеть фактические данные, которые передаются в пакете.

Генерация некоторого сетевого трафика

Чтобы было что-то значимое для анализа, нам нужно сгенерировать некоторый сетевой трафик. Пока Wireshark работает, откройте новое окно терминала. В терминале мы будем использовать команду ping для отправки нескольких пакетов ICMP echo request (ICMP-запрос эхо) на серверы Google.

Выполните следующую команду:

ping -c 5 google.com

Note: Free users can not connect to the internet. Upgrade to a pro to enjoy the full experience.

Опция -c 5 указывает команде ping отправить 5 пакетов ICMP echo request (ICMP-запрос эхо). После выполнения этой команды вы должны увидеть вывод, подобный следующему:

PING google.com (142.250.180.238) 56(84) bytes of data.
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=1 ttl=118 time=15.6 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=2 ttl=118 time=16.5 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=3 ttl=118 time=15.9 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=4 ttl=118 time=16.2 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=5 ttl=118 time=15.7 ms

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 15.629/15.986/16.520/0.324 ms

Теперь вернитесь в Wireshark. Вы должны увидеть пакеты ICMP, которые были захвачены во время выполнения команды ping. Эти пакеты мы будем использовать для дальнейшего анализа.

Остановка захвата

Когда вы закончите анализ захваченных пакетов, вам нужно остановить захват. Для этого нажмите кнопку "Stop capturing packets" (Остановить захват пакетов), которая представлена красным квадратом на панели инструментов. В качестве альтернативы, вы можете перейти в меню "Capture" (Захват) и выбрать "Stop" (Остановить).

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

Фильтрация пакетов

Wireshark захватывает весь трафик на выбранном интерфейсе, который может быстро превратиться в большой объем данных и стать трудным для управления. Фильтры - это мощный инструмент в Wireshark, который позволяет вам сосредоточиться на определенных типах трафика.

Wireshark Filter Bar

Чтобы отфильтровать пакеты ICMP ping (ICMP-пинг), которые мы только что сгенерировали, посмотрите в верхнюю часть окна Wireshark. Там есть строка фильтра, где вы можете ввести выражение фильтра. Введите следующее в строку фильтра:

icmp

После ввода выражения фильтра нажмите Enter или нажмите кнопку Apply (Применить) (значок стрелки вправо) рядом с полем фильтра. Список пакетов обновится, чтобы показать только пакеты ICMP. Вы должны увидеть пары сообщений "Echo (ping) request" (Запрос эхо (пинг)) и "Echo (ping) reply" (Ответ эхо (пинг)), соответствующие команде ping, которую мы запустили ранее. Фильтрация помогает вам изолировать трафик, который вас интересует, и делает процесс анализа намного более управляемым.

Проверка деталей пакета

Теперь, когда мы отфильтровали пакеты ICMP, давайте внимательнее рассмотрим один из пакетов ICMP request (ICMP-запрос). Щелкните один из пакетов ICMP request (ICMP-запрос) в списке пакетов. В панели Packet Details (Детали пакета) вы можете развернуть различные уровни протокола, щелкнув стрелку рядом с каждым разделом.

Wireshark Packet Details
  1. Frame (Кадр): Этот раздел предоставляет информацию о кадре или пакете в целом, такую как длина кадра и последовательность проверки кадра (frame check sequence).
  2. Ethernet (Эзернет): Он содержит информацию уровня 2 (Data Link (Канал передачи данных)), такую как MAC-адреса источника и назначения.
  3. Internet Protocol Version 4 (Протокол Интернета версии 4): Это информация уровня 3 (Network (Сеть)). Разверните этот раздел, чтобы увидеть такие детали, как:
    • Source IP address (IP-адрес источника): IP-адрес устройства, которое отправило пакет.
    • Destination IP address (IP-адрес назначения): IP-адрес устройства, которому предназначен пакет.
    • Time to Live (TTL) (Время жизни): Значение, которое ограничивает срок жизни пакета в сети.
    • Protocol (Протокол): Протокол, используемый внутри IP-пакета, такой как ICMP в нашем случае.
  4. Internet Control Message Protocol (Протокол управляющих сообщений Интернета): Этот раздел показывает информацию о протоколе ICMP. Разверните его, чтобы увидеть детали, специфичные для сообщения ICMP, такие как:
    • Type (Тип) (8 для запроса, 0 для ответа): Указывает, является ли пакет запросом или ответом.
    • Code (Код): Предоставляет дополнительную информацию о сообщении ICMP.
    • Checksum (Контрольная сумма): Используется для проверки целостности сообщения ICMP.
    • Identifier (Идентификатор): Помогает в сопоставлении запросов и ответов.
    • Sequence number (Порядковый номер): Последовательный номер для пакетов ICMP.

Итог

В этой лабораторной работе вы научились устанавливать и настраивать Wireshark, мощный инструмент для анализа сети. Вы настроили разрешения для пользователей, не являющихся root (не имеющих прав суперпользователя), чтобы безопасно захватывать пакеты, запустили приложение и захватили реальный сетевой трафик. Вы также изучили интерфейс, применили фильтры для определенных типов трафика и изучили детали пакетов на разных уровнях протоколов.

Эти навыки формируют прочную основу для анализа и устранения неполадок в сети. С помощью Wireshark вы теперь можете проверять сетевые коммуникации, диагностировать проблемы с подключением, анализировать поведение протоколов и выявлять проблемы безопасности в вашем сетевом трафике.