Возможности программы
Рассмотрим возможности программы более подробно. В верхней панели по умолчанию выводится 6 колонок – номера пакета в списке собранных, временная метка, адреса и номера портов отправителя и получателя, тип протокола и краткое описание пакета. Выбрав необходимый пакет из списка, содержащейся в верхней панели, мы можем просмотреть содержимое средней панели. В ней представлено дерево протоколов для пакета. Дерево отображает каждое поле и его значение для заголовков всех протоколов стека:
С помощью программы Wireshark Вы можете контролировать пакеты, проходящие по протоколу НТТР. Приведем пример вычисления имени пользователя и пароля при входе в почту. Для этого необходимо предварительно произвести процедуру входа в почтовый ящик и запуск программы в режиме захвата пакетов сообщений. После этого для удобства желательно произвести сортировку по протоколам при помощи нажатия на колонку Protocol. Далее, выбрав любой пакет, у которого установлено значение Protocol — НТТР, кликнуть правую кнопку мыши, в контекстном меню нажать Conversation filter>IP, тем самым выбрав фильтрацию списка пакетов только данного перечня адресов отправителя и получателя:
Далее возможно отфильтровать пакеты сообщений, выбрав только пакеты протокола НТТР – для этого выберем любой пакет протокола НТТР и кликнем правую кнопку мыши и в контекстном меню выберем Conversation filter>Ethernet. Теперь у нас в верхнем окне остались только пакеты протокола НТТР. Для оптимизации поиска нужного пакета, воспользуемся пунктом главного меню Edit>Find Packet:
В появившемся диалоговом окне выбираем Find by string и указываем название строки с адресом страницы почтового ящика:
С помощью системы поиска проверяем пакеты, соответствующие адресации и в дереве протоколов находим в ветви Line-based text data значения Login, Domain, Password.
Wireshark предоставляет возможность пользователю сохранять файлы данных (изображения, CSS и др.) на жесткий диск из просмотренных ранее страниц в Интернете. Для этого необходимо в главном меню программы выбрать File>Export>Objects>HTTP:
В появившемся списке НТТР object list выбираем необходимый файл и нажимаем Save As:
Далее программа предложит нам выбрать путь для сохранения файла на диск:
Wireshark: простой и универсальный
На этом мы завершаем описание того, как использовать Wireshark. Являетесь ли вы новым пользователем или ветераном Wireshark, эта платформа является чрезвычайно универсальным инструментом сетевого анализа. Если вы хотите получить максимальную отдачу от Wireshark, настоятельно рекомендуется провести дополнительное исследование на веб-сайте Wireshark..
Это еще более важно, если вы хотите использовать более продвинутые функции и создавать свои собственные анализаторы протоколов. Официальное руководство пользователя Wireshark предлагает наиболее полное руководство по этому вопросу.
Не забудьте использовать внешние плагины и поддерживающие программы от SolarWinds, поскольку они могут значительно увеличить глубину ваших будущих усилий по анализу. Если вам нужна дополнительная информация о том, как оптимизировать сеть, ознакомьтесь с нашим подробным руководством по анализаторам сети..
Интерфейс программы
Еще одно преимущество Wireshark – русскоязычный интерфейс. Правда, встроенная справка идет только на английском, поэтому самостоятельно разбираться в программе без знания языка придется при помощи переводчика. Или ориентироваться на наименования пунктов меню, которые также переведены на русский. Главное, понимать принцип работы программы и не бояться огромного массива данных, поступающего при сниффинге трафика.
Пункты меню:
- Файл – содержит команды для открытия, сохранения, импорта/экспорта дампов данных.
- Редактирование – изменение общих параметров программы, включая интерфейс.
- Просмотр – настройка отображения отдельных блоков, масштаб, цветовое выделение.
- Запуск – подсказка по управлению работой программы при помощи клавиш.
- Захват – старт, остановка, перезапуск сниффинга трафика указанной сети.
- Анализ – система фильтров протоколов, декодирование, проверка содержимого.
- Статистика – отчеты по перехваченному трафику, детально по каждому протоколу.
- Телефония – отдельный блок функциональных модулей для расшифровки IP-телефонии.
Также выделены опции для работы с сетями Wi-Fi и Bluetooth (пункт «Беспроводные»). Если для анализа сетевого трафика понадобилось подключение дополнительных скриптов, поддержка Lua активируется в разделе «Инструменты». Тестовый запуск перехватчика затруднений не вызывает, достаточно выбрать нужную сеть и нажать «Запуск». Процесс будет идти непрерывно до ручного закрытия программы или нажатия «Стоп».
Захват трафика
Пришло время перехватить трафик. У пользователя есть множество вариантов выбора интерфейса для захвата трафика и его дальнейшего использования, поэтому он может выбрать любой из них в зависимости от собственных потребностей. Но в данном сценарии интерфейс, который пользователь собирается исследовать, — это «eth0».
Чтобы перехватить трафик, вы должны инициировать этот процесс, так как человек тестирует его в отслеживаемой сети. Затем он будет использовать команду ping и только после этого указывать имя интерфейса с параметром «-i», как показано на рисунке ниже:
Как видно на картинке, инструмент выполняет трехстороннее рукопожатие, а затем запускает процесс запроса ICMP и получает ответ.
Назначение программы Wireshark
Программный продукт Wireshark перехватывает входящие и исходящие TCP-пакеты. И благодаря встроенным функциям мониторит содержимое, ищет ошибки. Заметно упрощает использование программы система фильтров, а также простой и логичный графический интерфейс на фреймворке GTK+ с поддержкой открытого API (внешне окна похожи на Windows).
Особенности программы:
- Кроссплатформенность – выпускаются версии под Linux, Windows, macOS.
- Бесплатность – распространяется под лицензией GNU GPL v2.
- Простота – инсталляция заключается в нескольких нажатиях кнопки «Next».
Изначально разработчики назвали проект Ethereal, и предназначался он исключительно для Ethernet-сетей. В 2006 году из-за проблем с торговой маркой произошло переименование. По функционалу программа схожа с tcpdump, но получила большую популярность за счет интерфейса и богатых возможностей сортировки и фильтрации.
Цветовые правила Wireshark
В то время как фильтры захвата и отображения Wireshark ограничивают, какие пакеты записываются или отображаются на экране, его функция окраски делает шаг вперед: он может различать разные типы пакетов на основе их индивидуального оттенка. Это позволяет быстро найти определенные пакеты в сохраненном наборе по цвету строки на панели списка пакетов.
Wireshark содержит около 20 правил раскраски по умолчанию, каждое из которых можно редактировать, отключать или удалять. Выберите View > Coloring Rules для обзора того, что означает каждый цвет. Вы также можете добавить свои собственные фильтры на основе цвета.
Выберите « Просмотр» > « Colorize Packet List», чтобы включить или выключить раскраску пакетов.
Первый запуск и начало работы с программой
Для начала сборки перехваченных программой пакетов сообщений по сети, Вам необходимо выбрать пункт главного меню Capture>Interfaces или кнопку на верхней панели инструментов List the available capture interfaces – после этого на экране появится следующее диалоговое окно:
С помощью кнопки Options возможна установка желаемых параметров работы программы. Для того, чтобы начать процедура захвата, Вам необходимо нажать кнопку Start, после чего интерфейс программы примет следующий вид:
Как видно из изображения, подобно другим анализаторам протоколов, окно Wireshark включает в себя 3 области просмотра с различными уровнями детализации. Верхнее окно содержит список собранных пакетов с кратким описанием, в среднем окне показывается дерево протоколов, инкапсулированных в кадр. Ветви дерева могут быть раскрыты для повышения уровня детализации выбранного протокола. Последнее окно содержит дамп пакета в шестнадцатеричном или текстовом представлении. Программа Wireshark представляет пользователю ряд уникальных возможностей, не поддерживаемых другими анализаторами протоколов. Программа обеспечивает возможность сбора всех пакетов заданного соединения TCP и представления данных в удобном для просмотра формате.
Что такое Wireshark
Сия утилита предназначена для контроля интернет трафика. Она перехватывает TCP пакеты, которые были приняты компьютером или посланы с него. Функционал программы настолько богат, что простым перехватом дело не ограничивается. Можно просматривать содержимое пакетов, искать ошибки и так далее. Кроме того, с помощью WS можно вытащить из пакетов практически любой файл и просмотреть его. Чтобы лучше понять, что это за программа, нужно выделить ее основные преимущества. Итак, плюсы:
- кроссплатформенность (есть версии для Linux, Mac, Unix);
- утилита совершенно бесплатна;
- обладает широким функционалом;
- гибкость настройки;
- возможность фильтрации трафика;
- создание собственных фильтров;
- перехват пакетов в реальном времени.
Преимуществ у данной утилиты действительно много. А вот недостатков как таковых нет вообще. Недаром Wireshark считается лучшей в своем роде для захвата и анализа TCP пакетов. Теперь нужно немного разобраться в самой программе.
Фильтры Wireshark
В беспроводной сети весь сетевой трафик, сформированный беспроводными клиентами, сосуществует в общих каналах. Это означает, что перехваченные пакеты в каком-нибудь одном канале могут содержать сетевой трафик от нескольких клиентов, а соответственно что бы находить интересующую информацию нужно научится отфильтровывать лишнюю. Поэтому, давай разберем наиболее часто применяемые фильтры при анализе беспроводных сетей:
Фильтрация по идентификатору
Wireshark собирает данные всех сетей находящихся в радиусе действия сетевого адаптера, поэтому наиболее логично первоначально отфильтровать трафик конкретной сети, которая нас интересует. Сделать это можно по имени беспроводной сети (SSID):
хотя наиболее корректно будет отфильтровать по bssid. BSSID — это идентификатор базового набора услуг (Basic Service Set Identifier). Он присваивается каждой точке и идентифицирует её, при этом он посылается в каждом беспроводном пакете управления и пакете данных из передающей точки доступа. BSSID записывается в заголовок пакета и это и есть MAC адрес нашей точки доступа. Посмотрев его в заголовке, можем создать фильтр чтобы видеть трафик проходящий только через нужную точку доступа:
Часто используемые фильтры Wireshark
Не менее полезным, в некоторых ситуациях будет отфильтровать трафик по используемому каналу связи:
Используя фильтр:
можно увидеть трафик передаваемый по протоколу ARP, это даст возможность понять какие устройства в данный момент подключены к локальной сети, увидеть их MAC и IP адреса.
Также довольно часто используются такие фильтры:
покажет отправленные dns-запросы, так можно узнать какие сайты посещал пользователь и какими онлайн-ресурсами пользовался.
отфильтрует трафик связанный с конкретным IP (где он был получателем или отправителем).
покажет tcp трафик, по такому же принципу можно отфильтровать трафик по любому другому протоколу, например udp или icmp.
Если мы видим, что соединение с сайтом не защищено т.е. происходит по протоколу http, это открывает перед нами большие возможности. Мы можем увидеть передаваемые данные, в том числе данные авторизации и данные форм, загружаемые и открываемые файлы, передаваемые и установленные cookie,
http | отфильтровать http трафик |
http.host == «адрес» | показать запросы к определённому сайту |
http.cookie | http-запросы в которых передавались cookie |
http.set_cookie | запросы в которых были установлены cookie в браузер |
http.content_type contains «image» | поиск любых переданных изображений, можно конкретизировать заменив «image» на «jpeg» или другие. |
http.authorization | поиск запросов авторизации |
http.request.uri contains «zip» | поиск определённого типа файлов. zip — заменить на нужное |
Кстати, что бы сохранить какой-нибудь найденный файл надо нажать на него правой кнопкой мыши в окне Packet Details и выбрать Export Packet Bytes и указать место куда его нужно сохранить:
Ну, что. Если ты дочитал до этого места, значит можешь смело утверждать, что у тебя уже есть базовые знания по Wireshark. И ты уже, в принципе, немало можешь понять из перехваченного трафика. Поэтому не забывай возвращаться к нам. Ведь в следующих уроках по это программе мы изучим синтаксис и операторы фильтров, разберемся как победить зашифрованный SSL/TLS трафик, разберемся с дешифраторами, более детально разберем некоторые сетевые протоколы и, конечно же, попрактикуемся в анализе сетевого трафика на конкретных примерах.
Твой Pulse.
Основные возможности Wireshark
Перед тем, как переходить к рассмотрению способов анализа трафика, нужно рассмотреть, какие возможности поддерживает программа более подробно, с какими протоколами она может работать и что делать. Вот основные возможности программы:
- Захват пакетов в реальном времени из проводного или любого другого типа сетевых интерфейсов, а также чтение из файла;
- Поддерживаются такие интерфейсы захвата: Ethernet, IEEE 802.11, PPP и локальные виртуальные интерфейсы;
- Пакеты можно отсеивать по множеству параметров с помощью фильтров;
- Все известные протоколы подсвечиваются в списке разными цветами, например TCP, HTTP, FTP, DNS, ICMP и так далее;
- Поддержка захвата трафика VoIP-звонков;
- Поддерживается расшифровка HTTPS-трафика при наличии сертификата;
- Расшифровка WEP-, WPA-трафика беспроводных сетей при наличии ключа и handshake;
- Отображение статистики нагрузки на сеть;
- Просмотр содержимого пакетов для всех сетевых уровней;
- Отображение времени отправки и получения пакетов.
Программа имеет множество других функций, но это были те основные, которые могут вас заинтересовать.
Перехват, чтение и сохранение пакетов
При запуске без параметров Tshark, как и tcpdump начнёт перехватывать весь сетевой трафик на всех интерфейсах.
# tshark
Если на вашей машине несколько интерфейсов, вам может потребоваться указать, какой именно должен использоваться. Для получения списка доступных интерфейсов укажите опцию -D:
tshark -D
Выбрав нужный интерфейс, укажите его имя или номер при помощи опции -i, например:
tshark -i eth0 tshark -i 1
Теперь, когда мы научились перехватывать пакеты, нам может потребоваться сохранить их для дальнейшего изучения. Для этого используется опция -w. Следующая команда будет перехватывать пакеты с интерфейса eth0 и сохранять их в файл /tmp/traffic.pcap:
tshark -i eth0 -w /tmp/traffic.pcap
Для анализа пакетов из ранее сохранённого файла вместо их перехвата с интерфейса укажите имя файла с опцией -r. Для чтения из файлов не требуется привилегий суперпользователя.
tshark -r /tmp/traffic.pcap
Надо отметить, что утилита также читает и анализирует файлы снятые tcpdump.
По умолчанию Tshark выполняет разрешение имён. Для лучшего понимания откуда пакет пришел и куда отправлен можно отключить его при помощи опции -n. Тогда вместо доменных имен, в дампе трафика будут ip адреса.
tshark -n
Пример перехвата USB трафика с Wireshark
Для перехвата USB траффика можно использовать популярный снифер Wireshark. Для Windows также необходимо установит USBPcap.
Запустить прехват можно выбрав соответствующий режим в wireshark:
Разберем подробней пример дампа:
Этот дамп содержит 2 части:
- Это подключение физического устройства в USB (пакеты 1-9);
- Отправка команд на переключение устройства в другой режим (пакеты 9-16).
Схематично взаимодействие будет выглядеть так:
Как видно из примера взаимодействие с портом USB очень похоже на взаимодействие по сети. Хост всегда отправляет команду, а устройство подтверждает ее получение.
Наибольший интерес вызывают пакеты 9-16, так как видно что это контрольные трансферы (URB_CONTROL) а значит именно с их помощью происходит управление устройствам.
Итак первая команда (пакет 9) отправляет какую-то команду на устройство. Об этом свидетельствует префикс out, так как команды всегда идут от хоста, то перфикс задает напрваление относительно него.
Если посмотреть структуру запроса, то можно понять тип запроса, сам запрос длину тела и сами данные которые отправляются на устройство
В нашем случае не важно что означают эти параметры так как нам нужно просто воспроизвести функциональность стороннего ПО
Следующий код запрашивает состояние устройства:
Затем отправляется еще одна команда с данными (пакет 13) и еще раз читает состояние (пакет 13), после чего можно заметить что девайс переподключился (пакет 17-18).
Анализ пакетов
Щёлкните пакет, чтобы выбрать его, и вы можете углубиться в его свойства, чтобы досконально просмотреть сведения о нем.
Вы также можете устанавливать фильтры отсюда — просто щёлкните правой кнопкой мыши одну из деталей и используйте подменю «Применить как Фильтр», чтобы создать фильтр на его основе.
Wireshark — чрезвычайно мощный инструмент, и это руководство лишь поверхностно описывает то, что вы можете с ним сделать. Профессионалы используют его для отладки реализаций сетевых протоколов, изучения проблем безопасности и проверки внутренних компонентов сетевого протокола.
Вы можете найти ссылки на разнообразные инструкции с Wireshark на русском языке на странице: https://kali.tools/?p=1407
Захват пакетов
После загрузки и установки Wireshark вы можете запустить эту программу. В разделе «Захват» вы увидите названия всех доступных сетей (сетевых интерфейсов), рядом с которыми будет график сетевой активности.
Дважды щёлкните имя сетевого интерфейса, чтобы начать захват пакетов на этом интерфейсе. Например, если вы хотите захватить трафик в беспроводной сети, щёлкните свой беспроводной интерфейс. Вы можете настроить расширенные функции, нажав «Захват» → «Опции», но пока в этом нет необходимости.
Как только вы нажмёте на название интерфейса, вы увидите, что пакеты начинают появляться в реальном времени. Wireshark фиксирует каждый пакет, отправленный в вашу систему или из неё.
Если у вас включён неразборчивый режим (он включён по умолчанию), вы также увидите все другие пакеты в сети, а не только пакеты, адресованные вашему сетевому адаптеру. Чтобы проверить, включён ли неразборчивый режим, нажмите «Захват» → «Опции» и убедитесь, что в нижней части этого окна активирован флажок «Включить смешанный режим на всех интерфейсах».
Вы увидите, что даже если вы не выполняете никаких действий, то в сети всё равно непрерывно происходит некая активность.
Нажмите красную кнопку «Остановить захват пакетов» в верхнем левом углу окна, если хотите прекратить захват трафика.
Как установить Wireshark
Вы можете скачать Wireshark для Windows или macOS с . Если вы используете Linux или другую UNIX-подобную систему, вы, вероятно, найдете Wireshark в его репозиториях пакетов. Например, если вы используете Ubuntu, вы найдете Wireshark в Центре программного обеспечения Ubuntu.
Небольшое предупреждение: многие организации не разрешают использовать Wireshark и аналогичные инструменты в своих сетях. Не используйте этот инструмент на работе, если у вас нет разрешения.
После запуска инсталятора вам будет предложено выбрать компоненты для установки — оставьте все значения по умолчанию, поскольку это там отмечены нужные компоненты.
Трафик протоколов межсетевого уровня
Фильтрация IPv4 протокола
Показать IP трафик (сюда относятся TCP, UDP, а также протоколы уровня приложений DNS, HTTP — то есть практически всё, кроме протоколов канального уровня, которые не используют IP адреса для передачи данных (в локальных сетях Ethernet в качестве адресов доставки они используют MAC-адреса)):
ip
Если быть более точным, имеется ввиду трафик протокола IPv4, который обычно называют просто IP (Internet Protocol).
Показать трафик, связанный с определённым IP адресом (впишите его вместо x.x.x.x). Будут показаны пакеты, в которых этот IP адрес является источником данных ИЛИ получателем:
ip.addr == x.x.x.x
Показать трафик, связанный с данными двумя IP адресами. По единственно возможной логике, один из этих адресов будет источником, а второй — адресом доставки.
ip.addr == x.x.x.x && ip.addr == y.y.y.y
Показать трафик, источником которого является хост с IP адресом 138.201.81.199:
ip.src == 138.201.81.199
Показать трафик, адресатом которого является хост с IP адресом 138.201.81.199:
ip.dst == 138.201.81.199
Обратите внимание, IP протокол оперирует IP адресами, но не оперирует портами. Порты являются частью протоколов TCP и UDP
IP протокол отвечает только за маршрутизацию трафика между хостами.
Фильтрация подсетей и диапазонов IP в Wireshark
Вы можете вместо одного IP адреса указать подсеть:
ip.addr == 192.168.1.0/24
Фильтрация трафика, отправленного с определённого диапазона IP. Если нужно отфильтровать трафик, источником которого является подсеть, то используйте фильтр вида:
ip.src == 192.168.1.0/24
Фильтрация трафика, предназначенного для отправки на определённый диапазон IP. Если нужно отфильтровать трафик, пунктом назначения которого является подсеть, то используйте фильтр вида:
ip.dst == 192.168.1.0/24
Фильтрация IPv6 протокола
Показать трафик IPv6 (Internet Protocol шестой версии):
ipv6
Фильтрация по IPv6 адресу. Для фильтрации по IPv6 адресу используйте фильтр:
ipv6.addr == 2604:a880:800:c1::2ae:d001
Фильтрация подсетей и диапазонов IPv6 в Wireshark
Вы можете вместо одного IPv6 адреса указать подсеть для фильтрации:
ipv6.addr == 2604:a880:800:c1::2ae:d000/64
Если нужно отфильтровать трафик, источником которого является определённый IPv6 адрес:
ipv6.src == 2604:a880:800:c1::2ae:d001
Если нужно отфильтровать трафик, отправленный на определённый IPv6 адрес:
ipv6.dst == 2604:a880:800:c1::2ae:d001
Фильтрация трафика, отправленного с определённого диапазона IPv6. Если нужно отфильтровать трафик, источником которого является подсеть, то используйте фильтр вида:
ipv6.src == 2604:a880:800:c1::2ae:d000/64
Фильтрация трафика, предназначенного для отправки на определённый диапазон IPv6. Если нужно отфильтровать трафик, пунктом назначения которого является подсеть, то используйте фильтр вида:
ipv6.dst == 2604:a880:800:c1::2ae:d000/64
Фильтрация ICMPv6 (Internet Control Message Protocol — протокол межсетевых управляющих сообщений шестой версии) в Wireshark делается фильтром:
icmpv6
Как отфильтровать пакеты ARP протокола для IPv6 в Wireshark? Для IPv6 протокол ARP не требуется, поскольку его роль выполняет протокол обнаружения соседей (Neighbor Discovery Protocol, NDP) средствами ICPM6 — подробности объяснены в статье «IPv6 аналог для «arp -an» в IPv4».
Для того, чтобы увидеть пакеты, которые выполняют роль ARP для IPv6, используйте фильтр:
icmpv6.type == 133 or icmpv6.type == 134 or icmpv6.type == 135 or icmpv6.type == 136 or icmpv6.type == 137
Другие фильтры с IP адресом аналогичны для IPv6 и IPv4.
Инструменты сетевого анализатора
Wireshark (ранее известный как Ethereal) широко известен как самый популярный в мире анализатор сети. Это бесплатное приложение с открытым исходным кодом, которое отображает данные трафика с цветовой кодировкой, чтобы указать, какой протокол использовался для его передачи.
В сетях Ethernet его пользовательский интерфейс отображает отдельные кадры в нумерованном списке и выделяется отдельными цветами независимо от того, отправляются ли они по TCP, UDP или другим протоколам.
Wireshark также группирует потоки сообщений, отправляемые туда и обратно между источником и пунктом назначения (которые со временем перемешиваются с трафиком из других разговоров).
Wireshark поддерживает захват трафика через интерфейс кнопок пуска / остановки. Инструмент также содержит параметры фильтрации, которые ограничивают данные, отображаемые и включаемые в записи. Это критическая функция, поскольку большая часть сетевого трафика содержит обычные управляющие сообщения, которые не представляют интереса.
За эти годы было разработано много различных приложений для зондирования. Вот несколько примеров:
Некоторые из этих инструментов сетевого анализатора являются бесплатными, в то время как другие стоят или имеют бесплатную пробную версию. Кроме того, некоторые из этих программ больше не поддерживаются и не обновляются, но все еще доступны для скачивания.
Пакетные байты
В нижней части находится панель байтов пакетов, которая отображает необработанные данные выбранного пакета в шестнадцатеричном представлении.Этот шестнадцатеричный дамп содержит 16 шестнадцатеричных байтов и 16 байтов ASCII вместе со смещением данных.
Выбор определенной части этих данных автоматически выделяет соответствующий раздел в области сведений о пакете и наоборот. Любые байты, которые не могут быть напечатаны, вместо этого представлены периодом.
Вы можете отображать эти данные в битовом формате, а не в шестнадцатеричном виде, щелкнув правой кнопкой мыши в любом месте области и выбрав соответствующую опцию из контекстного меню.
Как работает сетевой сниффинг
Анализатор пакетов, подключенный к любой сети, перехватывает все данные, передаваемые по этой сети.
В локальной сети (LAN) компьютеры обычно обмениваются данными напрямую с другими компьютерами или устройствами в сети. Все, что связано с этой сетью, подвергается воздействию всего этого трафика. Компьютеры запрограммированы на игнорирование всего сетевого трафика, не предназначенного для этого.
александр яковлев / Getty Images
Программное обеспечение для прослушивания сети открывает доступ ко всему трафику, открывая сетевую карту компьютера (NIC) для прослушивания этого трафика. Программное обеспечение считывает эти данные и выполняет анализ или извлечение данных на нем.
После получения сетевых данных программное обеспечение выполняет над ним следующие действия:
-
Содержимое или отдельные пакеты (разделы сетевых данных) записываются.
-
Некоторое программное обеспечение записывает только раздел заголовка пакетов данных для экономии места.
-
Захваченные данные сети декодируются и форматируются, чтобы пользователь мог просматривать информацию.
-
Анализаторы пакетов анализируют ошибки в сетевом взаимодействии, устраняют неполадки сетевых подключений и восстанавливают целые потоки данных, предназначенные для других компьютеров.
-
Некоторое программное обеспечение для поиска в сети извлекает конфиденциальную информацию, такую как пароли, PIN-коды и личную информацию.
Анализ трафика в Wireshark
В большинстве случаев (почти всегда) анализ перехваченного трафика происходит в оффлайн-режиме. Т.е. ты сначала перехватываешь трафик, потом сохраняешь его в файл перехвата (File->Save). Потом опять перехватываешь и опять сохраняешь, потом объединяешь все файлы перехвата в один (File->Merge). И только потом, в комфортных условиях, анализируешь весь трафик скопом. И, кстати, эти функции, с сохранением и объединением, ты будешь использовать гораздо чаще чем ты думаешь. С сохранением, потому что получить с первого раза сведения которые тебе нужны удаётся далеко не всегда. Да и если анализировать трафик в онлайне — по любому что-нибудь пропустишь. А с объединением потому, что когда у тебя есть несколько файлов перехвата — разбирать их по отдельности — очень глупая и трудоёмкая идея.
Как ты наверняка заметил файлы перехвата содержат огромное количество строк, и что бы быстро в них ориентироваться нужно научится делать несколько вещей:
- Поиск по пакетам. При нажатии комбинации клавиш Ctrl+F открывается панель поиска. Там есть несколько вариантов поиска, но на данном этапе тебе достаточно будет использовать Display filter который позволяет создать фильтр, чтобы найти только те пакеты, которые отвечают заданному в нем выражению и String — осуществляет поиск в строках по указанным символам (поиск вперед Ctrl+N, поиск назад Ctrl+B;
- Отметка пакетов. Очень часто бывает что ты нашел нужный пакет, но есть необходимость вернуться к нему позже, для этого этот пакет можно отметить, нажми правой кнопкой на нужный пакет в Packet List и выбери Mark Packet или нажми Ctrl+M, отмечать можно любое количество пактов, а чтобы перемещаться между отмеченными пакетами используются комбинации клавиш Shift+Ctrl+N — следующий и Shift+Ctrl+B — предыдущий.
- Фильтры. Фильтр — это выражение, в котором задаются критерии для включения или исключения пакетов из анализа. В Wireshark выделяют два вида фильтров: фильтры перехвата и фильтры отображения. Мы рассмотрим некоторые примеры применения фильтров, но про сами фильтры я сделаю отдельную статью. Потому, что там надо будет изучить довольно большой объём информации: логику применения, синтаксис, операторы. Короче это отдельная большая тема.
Логические операторы фильтров Wireshark
Логические операторы позволяют создавать детальные фильтры с использованием сразу нескольких условий. Рекомендуется дополнительно использовать скобки, поскольку в противном случае вы можете получить не то значение, которое ожидаете.
Оператор | Описание |
---|---|
and/&& | Логическое И, данные выводятся если они соответствуют обоим частям фильтра. Например, фильтр ip.src==192.168.1.1 and tcp покажет только пакеты, которые исходят от 192.168.1.1 и которые ассоциированы с протоколом TCP. Будут показаны только данные, совпадающие с обоими условиями. |
or/|| | Логическое ИЛИ, достаточно чтобы только одно условие было истинным; если оба являются истинной, то это тоже подходит. Например фильтр tcp.port==80 or tcp.port==8080 покажет TCP пакеты, которые связаны (являются источником или пунктом назначения) с портом 80 или 8080. |
not/! | Логическое НЕ используется, когда мы хотим исключить некоторые пакеты. То есть будут показаны все пакеты, кроме удовлетворяющие условию, следующему после НЕ. Например фильтр !dns покажет все пакеты, кроме DNS. |
Примеры комбинирования:
Показать HTTP или DNS трафик:
http or dns
Показать любой трафик, кроме ARP, ICMP и DNS:
!(arp or icmp or dns)
Поиск IP-адреса с помощью Wireshark с использованием ARP-запросов
Wireshark может использовать запросы протокола разрешения адресов (ARP) для получения IP-адреса неизвестного хоста в вашей сети. ARP — это широковещательный запрос, предназначенный для помощи клиентскому компьютеру в планировании сети хоста..
ARP немного более надежен, чем использование DHCP-запроса, о котором я расскажу ниже, потому что даже хосты со статическим IP-адресом будут генерировать трафик ARP при запуске.
Чтобы получить IP-адрес неизвестного хоста через ARP, запустите Wireshark и начните сеанс с фильтром захвата Wireshark, установленным в агр, как показано выше.
Затем дождитесь появления неизвестного хоста. Я использую свой мобильный телефон и включаю и выключаю соединение WiFi. Независимо от того, когда неизвестный хост подключается к сети, он генерирует один или несколько ARP запросы. Это те рамки, которые вы должны искать.
Как только вы заметили запрос, нажмите на него. Используйте Wireshark’s Просмотр сведений о пакете проанализировать кадр. Посмотрите на Протокол разрешения адресов раздел рамы, особенно IP-адрес отправителя и MAC-адрес отправителя.
В этом случае вы можете видеть, что мой телефон получил IP-адрес 192.168.1.182 от маршрутизатора, и вы можете идентифицировать устройство как телефон Apple, посмотрев на OUI поставщика..
Фильтры
При работе 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/