Серия учебных пособий для уровня няни «Не ложитесь спать допоздна, чтобы организоваться» — Учебное пособие по игре с артефактом захвата пакетов Wireshark (1) — Первое знакомство с Wireshark
Серия учебных пособий для уровня няни «Не ложитесь спать допоздна, чтобы организоваться» — Учебное пособие по игре с артефактом захвата пакетов Wireshark (1) — Первое знакомство с Wireshark

1. Введение

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

2. Введение в программное обеспечение

Wireshark (ранее известный как Ethereal) — это бесплатный инструмент с открытым исходным кодом для анализа сети и захвата пакетов, самый популярный анализатор сетевых протоколов в мире! Функция программного обеспечения для анализа сетевых пакетов заключается в захвате сетевых пакетов и отображении максимально подробной информации о сетевых пакетах. Инструмент захвата сетевых пакетов Wireshark использует WinPCAP в качестве интерфейса для прямого обмена сообщениями с сетевой картой. Он может обнаруживать данные сетевого взаимодействия в режиме реального времени, обнаруживать файлы снимков данных сетевого взаимодействия, которые он захватывает, и просматривать эти данные через графический интерфейс. просматривать пакеты данных сетевой связи. Подробная информация о каждом уровне. Его мощные функции включают в себя мощный язык фильтров отображения и возможность просмотра потоков восстановления сеанса TCP, поддержку сотен протоколов и типов потокового мультимедиа.

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

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

3. Краткая история WireShark

В 1997 году Джеральду Комбсу понадобился инструмент для отслеживания сетевых проблем, и он захотел узнать о сетевых технологиях. Поэтому он начал разработку Ethereal (прежнее название проекта Wireshark) для решения своих нужд.

В 1998 году родилась версия Ethereal 0.2.0. Вскоре после этого все больше и больше людей обнаруживали его потенциал и проводили его анализ.

Wireshark — это бесплатный анализатор/анализатор пакетов с открытым исходным кодом, который можно использовать для перехвата пакетов в сети. Первоначальная версия Wireshark называлась Ethereal и была выпущена Джеральдом Комбсом в 1998 году. Его имя можно увидеть в верхней части программного обеспечения Wireshark и официального сайта:

В мае 2006 года Джеральд Комбс перешел на работу в CACE Technologies, но ему не удалось получить права на торговую марку Ethereal. Чтобы обеспечить успех проекта, Комбс и его команда разработчиков в середине 2006 года переименовали проект в Wireshark.

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

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

Однако на официальном сайте для справки есть такой вопрос:

Слово кархародон в этом ответе, несомненно, напоминает самую известную акулу — большую белую акулу (Carcharodon carcharias). Всем известно, что акулы обладают чрезвычайно чувствительным обонянием и чуют раненую добычу за несколько километров. Действительно, уместно назвать пакетный анализатор в честь акулы.

Даже значок Wireshark имеет форму плавника акулы, как показано ниже:

В 2008 году, после десяти лет разработки, Wireshark выпустила версию 1.0.

4. Что может WireShark

Короче говоря, основная функция WireShark — захват пакетов из различных портов, включая порты проводной сети, порты беспроводной сети, порты USB, порты LoopBack и т. д., чтобы можно было легко выполнить изучение протокола, анализ сети и системы. Устранение неполадок и другие последующие задачи.

Поддержка сбора данных в реальном времени и сохранение их в виде файла PCAP.

Поддерживает чтение данных из захваченных пакетов;

Поддерживает анализ более 1000 стандартных/специальных протоколов.

Поддержка создания плагинов для анализа частных протоколов;

Поддерживает уточнение данных с использованием фильтров захвата и отображения;

Поддерживает расшифровку протокола TLS (настройка сложнее, не так удобна, как при использовании charles/burp/fidder)

Выше много было сказано, иными словами, есть три основных момента:

①Анализ основных сетевых протоколов,

②Решение проблем сбоями в сети,

③Ищите проблемы с сетевой безопасностью.

5. Чего Wireshark не может сделать

По соображениям безопасности Wireshark может только просматривать пакеты, но не может изменять их содержимое или отправлять пакеты.

Редактирование и модификация пакетов данных не поддерживается (рекомендуется использовать WireEdit, если вам нужно редактировать пакеты данных)

Не поддерживает вторжение/обнаружение аномального трафика.

6.Wireshark VS Fiddler

Fiddler — это программа, работающая в Windows и специально разработанная для захвата HTTP и HTTPS.

Wireshark может получать HTTP и HTTPS, но не может расшифровывать HTTPS, поэтому Wireshark не может понять содержимое HTTPS.

7. Другие инструменты того же типа.

1. Сетевой монитор Microsoft.

2.Sniffer 

3.Omnipeek

4.Fiddler

5.Httpwatch

6. Система сетевого анализа Kelai

8. Кто будет использовать Wireshark?

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

2. Инженеры по тестированию программного обеспечения используют Wireshark для захвата пакетов и анализа тестируемого программного обеспечения.

3. Инженеры, занимающиеся программированием сокетов, будут использовать Wireshark для отладки.

4. Инженер по эксплуатации и техническому обслуживанию ИТ

5. Сетевой инженер

6.Инженер по безопасности

7. Я слышал, что большинство инженеров Huawei и ZTE используют Wireshark.

Короче говоря, Wireshark можно использовать для всего, что связано с сетью.

9. Поддержка платформы

Wireshark может работать на следующих платформах:

①Windows

②MacOS

③Linux/Unix

10.Связанные URL-адреса

1.Официальный сайт:https://www.wireshark.org/

2.книги:http://www.wiresharkbook.com/

3.Вики-документация:https://wiki.wireshark.org/

11.Принцип захвата пакетов Wireshark

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

«Ситуация с одной машиной»Вниз,Wireshark напрямую захватывает сетевой трафик локальной сетевой карты;

«Поменяй ситуацию»Вниз,Wireshark получает сетевой трафик в локальной сети посредством зеркалирования портов, подмены ARP и т. д.

Зеркальное отображение портов:Используйте интерфейсы коммутаторов,Перенаправить сетевой трафик локальной сети на сетевую карту указанного компьютера.

Подмена ARP:Переключатель основан наMACАдрес пересылки данных,Маскировка MAC-адреса других терминалов,Для получения сетевого трафика локальной сети.

Принцип захвата пакетов делится на сетевой принцип и основной принцип. 1. Сетевой принцип: 1) Локальная среда — прямой захват входящего и исходящего трафика локальной сетевой карты: установите ws непосредственно на терминал, а затем ws перехватывает трафик локальная сетевая карта, подключенная к Интернету. 2) Среда концентратора (старая сеть). Концентратор: рассылает пакеты на все остальные порты и захватывает пакеты во всей локальной сети.

11.1 Принцип захвата сетевых пакетов

Независимо от того, что передается по сети, то, что в конечном итоге отправляется через физическую среду, является двоичным, подобно потоку битов 0101. Простой текст (строка) В китайском языке обычно используется кодировка UTF-8, а в английском языке используется кодировка ASCII; аудио, видео, изображения, сжатые пакеты и т. д. в виде не простого текста упаковываются в разные кодировки и преобразуются в двоичную передачу. В IP-сети посредством захвата пакетов Wireshark исходные данные получаются в двоичном виде.

При каких сетевых условиях пакет может быть перехвачен? Следующее объясняется на основе сетевых принципов. Существует три основные ситуации для захвата сетевых пакетов: локальная среда, среда концентратора и среда коммутатора.

11.1.1 Родная среда

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

11.1.2 Среда концентратора

Среда концентратора может выполнять предотвращение наводнений трафика и использовать тот же домен конфликта. Английское название концентратора — «Hub», а «Hub» означает «центр». Основная функция концентратора — регенерировать, формировать и усиливать полученный сигнал для расширения дальности передачи сети и в то же время концентрировать все. узлы вокруг него. Он работает на первом уровне эталонной модели OSI, «физическом уровне».

Предположим, что три компьютера обмениваются данными, и на ПК1 установлен Wireshark. Когда ПК2 и ПК3 отправляют пакеты данных в сеть концентратора (домен коллизий или широковещательный домен), поскольку концентратор является продуктом физического уровня и не может распознавать MAC-адрес и IP-адрес. он получит пакет на все остальные интерфейсы. В это время Wireshark может перехватывать пакеты данных, отправленные с других компьютеров на том же концентраторе, то есть пакеты данных в локальной сети. Это типичная старая сетевая практика, которая сейчас практически устранена.

Используется для захвата лавинного трафика и пакетов данных в конфликтном домене, то есть пакетов данных во всей локальной сети.

11.1.3 Переключение среды

В средах коммутаторов используются более распространенные методы, включая зеркалирование портов, подмену ARP и лавинную рассылку MAC-адресов.

11.1.3.1 Зеркальное отображение портов

Коммутатор является продуктом канального уровня или даже сетевого уровня. Его передача пакетов и пакетная связь строго соответствуют таблице MAC-адресов коммутатора. Поэтому при нормальных обстоятельствах трафик связи ПК2 и ПК3 трудно передать на сетевую карту ПК1. Когда ПК2 и ПК3 обмениваются данными, ПК1 не может перехватить пакет через Wireshark. Но мы можем выполнить зеркалирование порта SAPN на порту коммутатора. Он скопирует трафик двух других портов на сетевую карту ПК1, и Wireshark будет установлен в смешанный режим вставки, и в это время можно будет выполнить захват пакетов. Этот режим обычно используется во многих платных программах для анализа трафика. Таким образом, коммутатор пересылает пакеты данных строго в соответствии с таблицей tenlnet и таблицей mac-адресов. Когда компьютеры pc2 и pc3 обмениваются данными, pc1 по умолчанию не может захватывать пакеты данных, но вы можете установить политику на коммутаторе, то есть зеркалирование портов. Таким образом, пакеты данных связи между ПК2 и ПК3 будут скопированы в порт коммутатора, подключенный к ПК2, так что ПК2 сможет перехватывать пакеты данных связи между ПК2 и ПК3.

11.1.3.2 Подмена ARP

Предположим, что у нас нет разрешения на использование технологии зеркалирования портов на коммутаторе.,Потому что есть таблица MAC-адресов,Я также хочу получить трафик во всей локальной сети,украденныйPC2、PC3движение включено。Этого можно добиться с помощью знаменитогоARPАтакующее программное обеспечениеCain&Abelвыполнить,Процесс:

  • Сначала ПК2 отправляет широковещательный пакет запроса ARP. После получения пакета коммутатор отправляет его на ПК1 и ПК3.
  • ПК1 и ПК3 получают его. В нормальных обстоятельствах ПК1 отбрасывает пакет, потому что запрашивает ПК3, но подмена ARP ответит: «Я IP3, а соответствующий адрес — MAC1. Это типичный подделка ARP или вирус ARP». .
  • Наконец, ПК2 инкапсулирует трафик в базовый MAC1 и отвечает на него. Если и ПК3, и ПК1 отвечают, но в APR есть функция, называемая «последнее прибытие первым», ПК1 выполнит неправильную привязку и отправит пакет данных на MAC1, в результате чего коммуникационный трафик ПК2 и ПК3 будет проходить через ПК1. Это также типичный трафик. Взлом и атаки по локальной сети.

Шаги следующие:

(1) ПК2 хочет связаться с ПК3, поэтому он отправляет широковещательную рассылку на коммутатор.

(2) При нормальных обстоятельствах ПК1 отбросит этот пакет (поскольку это не то, что он ищет), но ПК1 выполнит подмену ARP и сообщит ПК2, что ПК2 ищет именно ПК3.

(3) Из-за функции приоритета ARP ПК2, скорее всего, подумает, что MAC-адрес ПК1 — это тот ПК3, который он ищет.

(4) Таким образом, связь между ПК2 и ПК3 становится связью между ПК2 и ПК1.

(5) Что касается того, должен ли ПК1 позже передать данные (возможно, измененные данные) ПК3, то это полностью зависит от настроения ПК1.

Выше приведена типичная ситуация атаки LAN ARP.

11.1.3.3 MAC-флуд

Флуд с помощью инструментов приносит большое количество нежелательных пакетов и генерирует большое количество MAC-адресов. В это время таблица MAC-адресов коммутатора изменится на таблицу справа (в разобранном виде), а MAC2 и MAC3 будут вытеснены из таблицы. Таблица MAC-адресов. Как только этот MAC-адрес будет вытеснен из таблицы MAC-адресов, в соответствии с принципом коммутатора, если полученный пакет данных неизвестен, он будет направлен наружу. В это время ПК2 и ПК3 будут рассылать внешний трафик.

В этом случае у ПК1 нет разрешений на зеркалирование портов, поэтому он не может напрямую перехватывать трафик всей сети. Что же нам делать?

(1) ПК1 отправляет большое количество ненужных пакетов, что генерирует большое количество MAC-адресов, что приводит к взрыву таблицы MAC.

(2) Если данные, отправленные ПК2 и ПК3, не могут найти адрес назначения, вся сеть будет перегружена, и весь сетевой трафик будет перехвачен ПК1.

11.2 Основные принципы

Итак, какова базовая архитектура захвата пакетов? Давайте начнем с объяснения основных принципов Wireshark.

Основополагающий принцип: основной инструмент захвата пакетов Wireshark.

12. Общая архитектура Wireshark

Wireshark включает в себя 5-уровневую архитектуру:

Нижний уровень Win-/libpcap: программное обеспечение драйвера нижнего уровня Wireshark, файлы библиотеки (файлы драйверов, файлы библиотек), на которые Wireshark опирается при захвате пакетов.

Захват: механизм захвата пакетов, использующий нижний уровень libpcap/WinPcap для захвата сетевых пакетов данных. libpcap/WinPcap предоставляет универсальный интерфейс захвата пакетов, который можно получить из различных типов сетевых интерфейсов (включая Ethernet, сеть Token Ring, сеть ATM). и т. д.) пакет

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

Ядро: основной механизм, который соединяет другие модули вместе посредством вызовов функций и играет роль вызовов связи. Epan (задействует механизм анализа пакетов): Дерево протокола (сохраняет информацию протокола пакета данных, структура протокола принимает древовидную структуру). и анализирует протокол. При отправке сообщения вам нужно только вызвать функции синтаксического анализа каждого уровня последовательно от корневого узла через дескриптор функции), Диссекторы (различные декодеры протоколов, поддержка 7 Более 00 анализов протоколов, декодер может идентифицировать поля протокола и отображать значения полей. Wireshark использует форму дерева протоколов для обработки каждого уровня протокола трафика данных слой за слоем), Плагины (некоторые декодеры протоколов реализованы в форма плагинов, исходный код в каталоге плагинов), Display-Filters (движок фильтра отображения, исходный код находится в каталоге epan/dfilter).

GTK1/2: инструмент обработки графики, обрабатывающий ввод и вывод данных пользователя и, наконец, сохраняющий их на жестком диске.

PS: Очень важно понимать основные принципы, особенно для последующего наблюдения.

13. Функциональный модуль

имя модуля

Функция

Подкаталог исходного кода

GTK/Qt

Обработка всего пользовательского ввода/вывода (все окна, диалоговые окна и т. д.)

/uiGTK: /ui/gtkQt: /ui/qt

Core

Основной «связывающий код», который скрепляет другие блоки.

/

Epan(Ethereal Packet Analyzer)

Дерево протоколов — сохраняет данные протокола захваченного файла.

/epan

Диссекторы — Диссекторы для нескольких протоколов

/epan/dissectors

Плагины — некоторые парсеры протоколов, реализованные с помощью плагинов.

/plugins

Display-Filters — движок фильтров отображения

/epan/dfilter

Wiretap

Библиотека прослушивания используется для чтения/записи файлов перехвата в формате libpcap или других форматах файлов.

/wiretap

Capture

Интерфейсы, связанные с механизмом захвата пакетов

/

Dumpcap

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

/

WinPcap/libpcap

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

-

14. Блок-схема кода WireShark

15. Резюме

Хорошо, теперь брат Хонг в основном объяснил и поделился всей прошлой и настоящей жизнью инструмента Wireshark. Сегодня уже поздно, вот и все! Спасибо, что терпеливо читаете~~

я участвуюНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.