Сетевой анализ с помощью 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 для захвата пакетов):

Сначала проверьте, существует ли группа 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

После выполнения этих команд вам нужно будет выйти из системы и войти снова, чтобы изменения группы вступили в силу. Теперь вы успешно установили и настроили 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)
    • Информацию о браузере
    • Cookies и другие метаданные
  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 служит мощным инструментом для устранения неполадок в сетях, мониторинга шаблонов трафика и выявления потенциальных угроз безопасности. Продолжайте практиковаться, чтобы дальше развивать свои навыки сетевого анализа.