- Лабораторная работа Wireshark: Введение (11.05.2017)
- Возможно, Вам будет интересно почитать:
- 7 комментариев(я) к “ Лабораторная работа Wireshark: Введение ”
- Практические приёмы работы в Wireshark
- Установка Wireshark
- Анализ pcap-файлов
- Анализ TCP-соединений
- Команда Decode as
- Просмотр содержимого пакетов
- Поиск пакетов
- Просмотр сведений о продолжительности TCP-соединений
- Обновление Wireshark
- Использование Wireshark для изучения сетевых протоколов
- Итоги
Лабораторная работа Wireshark: Введение (11.05.2017)
Мы переходим к изучению второй практической части курса «Компьютерные сети», посвящённой изучению популярных сетевых протоколов с помощью программы-анализатора пакетов WireShark.
В этой первой лабораторной работе вы познакомитесь с программой Wireshark и выполните несколько простых действий по захвату пакетов и наблюдению за ними. Основной инструмент для наблюдения за сообщениями, которыми обмениваются элементы исполняемого протокола, называется анализатор пакетов (или сниффер). Как следует из названия, он анализирует (перехватывает) сообщения, которые отправляются или получаются вашим компьютером; он также обычно сохраняет и/или отображает содержимое различных полей протокола этих перехваченных сообщений. Анализатор пакетов является пассивной программой. Он только следит за сообщениями, отправленными и полученными приложениями и протоколами, запущенными на вашем компьютере, но сам никогда не отправляет пакеты. Полученные пакеты тоже никогда явно не адресуются анализатору. Он просто получает копию этих пакетов.
Задание для первой лабораторной работы можно скачать тут.По всем вопросам пишите в комментариях внизу статьи.
Кол-во просмотров: 8851
Возможно, Вам будет интересно почитать:
7 комментариев(я) к “ Лабораторная работа Wireshark: Введение ”
- Наиля26 мая 2017 в 09:53 На все вопросы у меня сделаны скриншоты 1 вопрос: 1) DNS, HTTP, ISMPv6 2) 0,148393 2 вопрос: IP адрес сайта — 5.45.62.54 IP адрес моего комп. — 192.168.1.35 3 вопрос: 90 29.026625 192.168.1.35 5.45.62.54 HTTP 356 GET /R/ A3kKIGY5YTNmZjZkNDc2ZjQ3N2VhODBlMmQyODgwMjE5ZWRiEgQUFwUXGPQCIgECKgcIBBCetPNQKgcIAxCyytFOMgoIABCVt_NQGIACOPaRkIgBQiDQqWG0NDiLURgq_8bUWjYgWxAZWpoEJvF_3dXyWC4cEUiAgpgI HTTP/1.1 Frame 90: 356 bytes on wire (2848 bits), 356 bytes captured (2848 bits) on interface 0 Ethernet II, Src: HonHaiPr_47:52:92 (5c:ac:4c:47:52:92), Dst: ZyxelCom_8c:e0:e0 (28:28:5d:8c:e0:e0) Internet Protocol Version 4, Src: 192.168.1.35, Dst: 5.45.62.54 0100 . = Version: 4 . 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0×00 (DSCP: CS0, ECN: Not-ECT) Total Length: 342 Identification: 0x343d (13373) Flags: 0×02 (Don’t Fragment) Fragment offset: 0 Time to live: 128 Protocol: TCP (6) Header checksum: 0xc036 [validation disabled] [Header checksum status: Unverified] Source: 192.168.1.35 Destination: 5.45.62.54 [Source GeoIP: Unknown] [Destination GeoIP: Unknown] Transmission Control Protocol, Src Port: 51172, Dst Port: 80, Seq: 1, Ack: 181, Len: 302 Source Port: 51172 Destination Port: 80 [Stream index: 12] [TCP Segment Len: 302] Sequence number: 1 (relative sequence number) [Next sequence number: 303 (relative sequence number)] Acknowledgment number: 181 (relative ack number) Header Length: 20 bytes Flags: 0×018 (PSH, ACK) Window size value: 21451 [Calculated window size: 21451] [Window size scaling factor: -1 (unknown)] Checksum: 0x2e05 [unverified] [Checksum Status: Unverified] Urgent pointer: 0 [SEQ/ACK analysis] Hypertext Transfer Protocol
- Энди Стариков Автор записи 30 мая 2017 в 13:31 Здравствуйте, Наиля! Ответ на второй вопрос по поводу IP Вашего ПК неверен. Вы привели адрес в локальной сети. Чтобы узнать внешний IP рекомендую зайти на сайт 2ip.ru.
Практические приёмы работы в Wireshark
Джулия Эванс, автор материала, перевод которого мы сегодня публикуем, решила рассказать об одном из своих любимых сетевых инструментов, который называется Wireshark. Это — мощная и сложная программа, оснащённая графическим интерфейсом, предназначенная для анализа трафика в компьютерных сетях. Джулия говорит, что на практике пользуется лишь немногими возможностями Wireshark, но они обычно оказываются очень кстати. Здесь она хочет поделиться со всеми желающими рассказом о самых полезных приёмах работы с программой и надеется, что они пригодятся не только ей, но и всем, кому приходится решать сетевые проблемы.
Установка Wireshark
Дистрибутивы Wireshark для различных операционных систем можно найти здесь. Для инсталляции программы можно скачать и установить соответствующий файл. Кроме того, если вы пользуетесь дистрибутивами Linux, основанными на Debian, можете воспользоваться командой sudo apt install wireshark . При желании, для того, чтобы найти самую свежую версию программы, вы можете обратиться к персональному архиву пакетов wireshark-dev.
Вот как выглядит интерфейс программы.
На первый взгляд всё это может показаться слишком сложным: длинный список пакетов, таинственное поле для ввода каких-то запросов… Как же работать с Wireshark?
Анализ pcap-файлов
Обычно я использую Wireshark для выяснения причин сетевых неполадок. Последовательность действий, выполняемая в ходе решения подобных задач, выглядит так:
- Захват пакетов с помощью tcpdump (обычно — с помощью команды наподобие sudo tcpdump port 443 -w output.pcap ).
- Копирование pcap-файла на рабочий ноутбук ( scp host:~/output.pcap . ).
- Открытие pcap-файла с помощью Wireshark ( wireshark output.pcap ).
Анализ TCP-соединений
Часто, когда я анализирую в Wireshark некую ситуацию, мне нужно проверить какое-то конкретное TCP-соединение, с которым, по какой-то причине, что-то не так. Благодаря Wireshark можно проанализировать весь жизненный цикл отдельного TCP-соединения и выяснить причины неправильного поведения системы.
Сделать это можно, щёлкнув правой кнопкой мыши по интересующему вас пакету и выбрав в контекстном меню команду Conversation filter > TCP .
Начало анализа TCP-соединения
После этого Wireshark покажет другие пакеты из того же TCP-соединения, к которому принадлежит тот пакет, по которому вы щёлкнули. На рисунке ниже можно видеть пример успешного SSL-соединения — тут присутствуют пакеты client hello , service hello , certificate , server key exchange , которые используются для установления SSL-соединений.
Рассматриваемую здесь методику анализа TCP-пакетов мне пришлось использовать в день написания этой статьи, на работе. Некоторые соединения сбрасывались, и я заметила, что после отправки пакета client hello клиент отправлял пакет FIN ACK , который завершал TLS-соединение. То, что мне удалось выяснить, оказалось полезным, так как стало ясно, что соединения завершает клиент, а не сервер. В результате я тут же узнала, что проблема кроется на клиенте, и мне нужно обратить внимание именно на него.
Выше описана весьма типичная для меня схема работы с Wireshark. Обычно в соединении участвуют клиент и сервер, и что-то идёт не так либо на клиенте, либо на сервере. Это может быть, например, какой-нибудь сбой или ошибка в настройках системы. В результате Wireshark оказывает мне просто бесценную помощь в деле определения виновника проблем, помогая выяснить — клиент это или сервер.
Команда Decode as
Для того чтобы понять, чем именно является конкретный пакет, Wireshark использует номера портов, и обычно этот подход срабатывает. Например, если программа видит некий трафик на порте 80, она решает, что это HTTP-трафик и обычно так оно и есть.
Однако иногда HTTP-соединения используют необычные порты, в результате, для того, чтобы их распознать, Wireshark нуждается в подсказках. Такие подсказки можно давать программе, вызывая контекстное меню пакета и выбирая там команду Decode as . Далее, можно сообщить Wireshark о том, какой протокол используется для передачи пакетов с использованием некоего порта. Подобные подсказки упрощают анализ данных.
Просмотр содержимого пакетов
В Wireshark имеется просто восхитительный режим просмотра подробных сведений о пакете, с помощью которого можно разобраться в содержимом любого пакета. Возьмём, например, пакет с сообщением client hello из предыдущего примера. Это — первый пакет SSL-соединения, клиент с его помощью как бы говорит: «Привет! Вот он я!».
Wireshark даёт сетевому администратору два невероятно полезных инструмента для исследования содержимого пакетов. Первый — это режим просмотра, в котором можно раскрывать заголовки, имеющиеся у пакета (например — Ethernet-заголовок, IP-заголовок, TCP-заголовок) и просматривать их содержимое.
Анализ заголовков пакета
Второй режим просмотра пакетов — это настоящее чудо. Здесь можно видеть необработанные данные пакета в виде последовательности байтов. И, что особенно приятно, если навести мышь на какой-нибудь байт (например, на рисунке ниже указатель наведён на байт, входящий в tiles.services.mozilla.com ), программа, в строке состояния, сообщит о том, к какому полю относится этот байт (в данном случае это — поле Server Name ), и о кодовом имени, используемом Wireshark для этого поля (в данном случае — ssl.handshake.extensions_server_name )
Анализ необработанных данных пакета
Поиск пакетов
Wireshark поддерживает мощный язык запросов. Это значительно упрощает поиск конкретных пакетов в списках. Обычно я, при работе с программой, использую очень простые запросы. Вот несколько примеров:
- Запрос frame contains «mozilla» позволяет выполнить поиск строки mozilla в любом месте пакета и вывести список найденных пакетов.
- Запрос tcp.port == 443 выводит пакеты, использующие TCP-порт 443.
- Запрос dns.resp.len > 0 выводит все DNS-ответы
- Запрос ip.addr == 52.7.23.87 выводит пакеты, IP-адрес источника или получателя которых равен 52.7.23.87.
Просмотр сведений о продолжительности TCP-соединений
Иногда мне нужно обратить особое внимание на исследование медленных TCP-соединений. Как это сделать, при условии, что в имеющемся у меня файле есть записи о тысячах пакетов? Как найти медленные TCP-соединения?
Если выбрать в главном меню программы пункт Statistics , а в нём — команду Conversations , Wireshark предоставит нам замечательный набор статистических сведений.
Статистические сведения
В частности здесь, в колонке Duration , можно увидеть длительность TCP-соединений, выявить самые длительные из них и внимательно их изучить. Это весьма полезная возможность.
Обновление Wireshark
Если вы давно не обновляли Wireshark — это стоит сделать. Например, недавно я, на рабочем ноутбуке, занималась исследованием HTTP/2-пакетов. Мне тогда пришлось нелегко, и я решила посмотреть документацию. Как оказалось, у меня была старая версия программы. В установленном мной обновлении была серьёзно улучшена поддержка HTTP/2, то есть, там было как раз то, что мне было тогда нужно.
Использование Wireshark для изучения сетевых протоколов
В этом материале встречаются некоторые термины, которые можно отнести к чему-то вроде жаргона сетевых специалистов. Например — кадр (frame), TCP-порт (TCP port), DNS-ответ (DNS response), IP-адрес источника (source IP address), пакет client hello SSL-соединения (SSL client hello). Одной из причин их использования является тот факт, что Wireshark, определённо, не пытается оградить пользователя от тонкостей внутреннего устройства сетевых технологий. Новичка такое положение дел может, поначалу, заставить задуматься о том, что Wireshark — это программа не для него, а лишь для опытных сетевых специалистов.
У такой ориентированности Wireshark на низкоуровневые сетевые механизмы, однако, есть серьёзный плюс. Дело в том, что работая с этой программой, можно узнать что-то новое о сетевых протоколах. Например, я не особенно много знаю о внутренних механизмах протокола TLS/SSL. Однако, анализируя трафик в Wireshark, я обратила внимание на то, что первые два пакета SSL-соединения — это client hello и server hello . В результате протокол, который, если не вникать в детали его работы, кажется чем-то таинственным и недоступным для понимания, начинает обретать более понятную форму, превращается в нечто такое, что можно понять и проанализировать.
Итоги
Wireshark имеет огромнейшие возможности. Здесь мы рассказали лишь о некоторых из них. Однако, те приёмы работы, которые здесь рассмотрены, по словам автора материала, используются примерно в 95% ситуаций, когда возникает необходимость в Wireshark. Поэтому мы надеемся, что даже то немногое, о чём вы сегодня узнали, вам пригодится.
Уважаемые читатели! Пользуетесь ли вы Wireshark?