Сетевой анализ с помощью Wireshark

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

Введение

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

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

Установка Wireshark

На этом этапе мы установим Wireshark в нашей системе Ubuntu. Wireshark — это анализатор сетевых протоколов, который позволяет перехватывать и интерактивно просматривать сетевой трафик. Он доступен в стандартных репозиториях Ubuntu, что делает процесс установки простым для начинающих.

  1. Сначала откроем терминал. На рабочем столе найдите и откройте Xfce Terminal. В терминале мы будем выполнять все команды для установки и настройки Wireshark.

Открытие окна терминала Xfce

Примечание: У бесплатных пользователей нет доступа к интернету, поэтому Wireshark уже предустановлен в лабораторной среде. Вы можете сразу перейти к пункту 5 (проверка установки Wireshark). Перейдите на тариф Pro, чтобы самостоятельно попрактиковаться в установке Wireshark.

Только для пользователей Pro
  1. Перед установкой любого программного обеспечения рекомендуется обновить списки пакетов. Это гарантирует, что мы установим последнюю доступную версию Wireshark. Выполните следующую команду:
sudo apt update
  1. Теперь установим сам Wireshark. Флаг -y автоматически отвечает «yes» на все запросы во время установки, что упрощает процесс:
sudo apt install wireshark -y
  1. Во время установки вы увидите важное предупреждение безопасности о разрешении пользователям без прав суперпользователя перехватывать пакеты. Это ключевой момент настройки: выбор «Yes» означает, что вам не потребуются права root для запуска Wireshark, что безопаснее для повседневного использования. Используйте клавиши со стрелками, чтобы выбрать «Yes», и нажмите Enter.

Запрос при установке Wireshark

  1. После завершения установки давайте проверим, правильно ли установлен Wireshark. Проверка версии подтвердит успешность установки и покажет, какая версия запущена:
wireshark --version
  1. Для перехвата сетевого трафика необходимо настроить соответствующие права доступа. Это включает добавление вашего пользователя в группу wireshark и настройку прав для Dumpcap (инструмента перехвата пакетов Wireshark). В среде рабочего стола LabEx не нужно выходить из системы и входить снова. Вместо этого настройте Dumpcap так, чтобы он мог перехватывать пакеты для Wireshark в текущем сеансе.

Сначала проверьте, существует ли группа wireshark (она должна была быть создана во время установки):

getent group wireshark

Если по какой-то причине группа не существует, создайте ее командой:

sudo groupadd wireshark

Следующие команды настраивают Dumpcap для работы с повышенными привилегиями, при этом сам Wireshark будет работать от имени обычного пользователя — это передовая практика безопасности:

sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 4755 /usr/bin/dumpcap
sudo gpasswd -a $USER wireshark

Команда chmod 4755 немедленно применяет необходимые права для Dumpcap, поэтому вы можете перейти к следующему шагу без перезапуска сеанса LabEx. Вы успешно установили и настроили Wireshark и готовы к анализу сетевого трафика!

Перехват сетевого трафика

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

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

  2. При открытии Wireshark вы увидите список сетевых интерфейсов (соединений, которые ваш компьютер использует для связи с сетями). Найдите интерфейс с именем "eth0" или "eth1" — обычно это ваши проводные Ethernet-соединения. Если вы используете WiFi, вы можете увидеть "wlan0".

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

  1. Дважды щелкните по активному интерфейсу (на котором увеличивается счетчик пакетов), чтобы начать перехват. В главном окне теперь будет отображаться поток пакетов в реальном времени — каждая строка представляет собой отдельный сетевой диалог, происходящий прямо сейчас.

Окно перехвата пакетов Wireshark

  1. Давайте создадим простую сетевую активность для перехвата. Откройте новое окно терминала и введите:

    curl http://example.com
    

    Эта команда загружает домашнюю страницу example.com, генерируя HTTP-пакеты (веб-трафик), которые Wireshark может перехватить. Вы увидите, как новые пакеты появятся в Wireshark сразу после выполнения команды.

  2. Увидев несколько пакетов (достаточно 5-10 секунд), нажмите красную кнопку «Stop» в верхней части. Это остановит перехват, чтобы мы могли изучить пакеты, не отвлекаясь на новые.

  3. Поздравляем! Вы перехватили свой первый сетевой трафик. Каждая строка представляет собой пакет с такими деталями, как IP-адреса источника/назначения, тип протокола и время. Три основные панели показывают: список пакетов (сводка), детали пакета (техническая разбивка) и необработанные данные пакета (шестнадцатеричный вид).

  4. Чтобы сохранить работу, перейдите в File > Save и сохраните файл под именем myfirstcapture.pcapng в директории /home/labex. Формат .pcapng сохраняет все детали пакетов для последующего анализа.

Сохранение файла сетевого перехвата

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

Анализ данных пакетов

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

  1. Открытие файла перехвата:
    Запустите Wireshark и откройте сохраненный файл перехвата (myfirstcapture.pcapng) через меню File > Open или двойным щелчком по файлу. Этот файл содержит весь записанный нами сетевой трафик, подобно записи телефонных разговоров.

  2. Понимание списка пакетов:
    Верхняя панель показывает все перехваченные пакеты в хронологическом порядке. Каждая строка представляет собой одно сетевое сообщение, отображая:

    • Кто отправил (Source IP)
    • Кто получил (Destination IP)
    • Тип коммуникации (Protocol)
    • Краткое описание (Info)
  3. Изучение деталей пакета:
    Когда вы нажимаете на любой пакет, средняя панель раскрывает его внутреннюю структуру по уровням протоколов:

    • Frame: Детали физической сети
    • Ethernet: Аппаратная адресация
    • IP: Информация о маршрутизации в интернете
    • TCP/UDP: Транспортные детали
    • Данные приложения (например, HTTP)
  4. Фильтрация HTTP-трафика:
    В строке фильтра (сверху) введите http и нажмите Enter. Это изолирует веб-трафик, подобно поиску только текстовых сообщений в журнале звонков. HTTP — это протокол, который веб-браузеры используют для связи с серверами.

Фильтр HTTP-пакетов в Wireshark

  1. Идентификация веб-запросов:
    Найдите пакеты с надписью "GET" в столбце Info. Они представляют собой запросы вашего браузера на получение веб-страниц. Нажмите на один из них, чтобы увидеть:
    • Точный запрошенный URL
    • Какой веб-сайт был запрошен
    • Технические детали запроса

Детали пакета HTTP GET

  1. Анализ HTTP-заголовков:
    Разверните раздел "Hypertext Transfer Protocol", чтобы увидеть:

    • Метод запроса (GET/POST)
    • Запрошенный ресурс (/index.html)
    • Информацию о браузере
    • Файлы cookie и другие метаданные
  2. Поиск ответов сервера:
    Найдите пакеты "HTTP/1.1 200 OK". Они показывают успешную доставку веб-страницы. Обратите внимание на:

    • Коды ответа (200=успешно, 404=не найдено)
    • Тип сервера (Apache/Nginx)
    • Тип контента (HTML, изображения и т.д.)

Пакет успешного ответа HTTP-сервера

  1. Просмотр веб-контента:
    В успешных ответах проверьте раздел "Line-based text data", чтобы увидеть фактическое содержимое веб-страницы. Здесь отображается HTML-код, который сервер отправил вашему браузеру.

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

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

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

  1. С открытым файлом перехвата в Wireshark давайте начнем с использования простых фильтров отображения. Строка фильтра находится прямо под основной панелью инструментов:

    • Чтобы отобразить только TCP-трафик (наиболее распространенный транспортный протокол), введите tcp в строке фильтра и нажмите Enter. Это скроет все не-TCP пакеты.
    • Чтобы отобразить трафик к или от определенного IP-адреса, введите ip.addr == x.x.x.x, заменив x.x.x.x на адрес из вашего перехвата или результат DNS-запроса. Для текущего адреса example.com выполните dig example.com +short в терминале и используйте один из выведенных IP. Значение 93.184.215.14 в этом тексте является лишь примером; реальные адреса со временем меняются. Двойной знак равенства (==) означает «точное совпадение».

    Пример TCP-фильтра в Wireshark

    • Чтобы отобразить все HTTP GET-запросы (наиболее распространенный тип веб-запроса), введите http.request.method == "GET". Это поможет увидеть, какие веб-страницы запрашиваются.
  2. Теперь создадим более сложный фильтр, объединив условия. Мы будем искать все HTTP GET-запросы, направленные конкретно к example.com:

    • В строке фильтра введите: http.request.method == "GET" && http.host contains "example.com"
    • && означает «И» (AND), поэтому оба условия должны быть истинными
    • Оператор contains позволяет нам найти любой домен, содержащий "example.com"

    Фильтр HTTP GET в Wireshark

    • Этот фильтр показывает все GET-запросы к любому домену, содержащему "example.com", что полезно для мониторинга трафика к конкретным веб-сайтам.
  3. Поскольку вы, вероятно, будете использовать определенные фильтры неоднократно, Wireshark позволяет их сохранять. Давайте сохраним наш фильтр HTTP GET:

    • Нажмите на знак плюса ("+") рядом со строкой фильтра. Это откроет окно управления фильтрами.
    • Назовите фильтр "HTTP GETs" и нажмите Save. Выберите описательное имя, которое вы запомните.
    • Теперь вы можете быстро применить этот фильтр в любое время, выбрав его из списка Saved Filters (значок закладки рядом со строкой фильтра).
  4. Наконец, давайте экспортируем некоторые наши результаты для документации или дальнейшего анализа:

    • Перейдите в Statistics > HTTP > Requests, чтобы увидеть сводку всех HTTP-запросов
    • Нажмите "Save as", чтобы экспортировать список в файл
    • Выберите /home/labex в качестве места сохранения и назовите файл http_requests.txt

    Экспорт списка HTTP-запросов

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

Резюме

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

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