Wireshark є фактичним інструментом для вирішення кількох мережевих проблем, які варіюються від усунення несправностей мережі, перевірки проблем безпеки, перевірки мережевого трафіку підозрілого додатка, реалізації протоколів налагодження, а також цілей навчання мережевого протоколу тощо.
Проект Wireshark був започаткований у 1998 році. Завдяки добровільному внеску експерта з глобальних мереж, компанія продовжує оновлювати нові технології та стандарти шифрування. Отже, це на сьогоднішній день один з найкращих інструментів аналізатора пакетів і використовується як стандартний комерційний інструмент різними державними установами, освітніми інститутами та некомерційними організаціями.
Інструмент Wireshark складається з широкого набору функцій. Деякі з них такі:
- Мультиплатформна: вона доступна для систем Unix, Mac та Windows.
- Він захоплює пакети з різних мережевих носіїв, тобто.e., Бездротова локальна мережа, Ethernet, USB, Bluetooth тощо.
- Він відкриває пакетні файли, захоплені іншими програмами, такими як Oracle snoop та atmsnoop, Nmap, tcpdump, Microsoft Network Monitor, SNORT та багато інших.
- Він зберігає та експортує захоплені пакетні дані у різних форматах (CSV, XML, відкритий текст тощо).).
- Він забезпечує підтримку опису протоколів, включаючи SSL, WPA / WPA2, IPsec та багато інших.
- Він включає фільтри захоплення та відображення.
Однак Wireshark не буде попереджати вас про будь-які зловмисні дії. Це лише допоможе вам перевірити та визначити, що відбувається у вашій мережі. Більше того, він буде аналізувати лише мережевий протокол / дії і не виконуватиме жодної іншої діяльності, як-от надсилання / перехоплення пакетів.
Ця стаття містить поглиблений підручник, який починається з основ (тобто.e., фільтрація, мережеві шари Wireshark тощо.) і вводить вас у глибину аналізу дорожнього руху.
Фільтри Wireshark
Wireshark постачається з потужними фільтрувальними механізмами, фільтрами захоплення та фільтрами відображення для видалення шуму з мережі або вже захопленого трафіку. Ці фільтри звужують непотрібний трафік і відображають лише ті пакети, які ви хочете бачити. Ця функція допомагає мережевим адміністраторам вирішувати наявні проблеми.
Перш ніж вдаватися до деталей фільтрів. Якщо вам цікаво, як зафіксувати мережевий трафік без будь-якого фільтра, ви можете натиснути Ctrl + E або перейти до опції Capture (Захоплення) в інтерфейсі Wireshark і натиснути кнопку Пуск.
А тепер давайте заглибимось у доступні фільтри.
Фільтр захоплення
Wireshark надає підтримку зменшення розміру захоплення необробленого пакету, дозволяючи використовувати фільтр захоплення. Але він фіксує лише пакетний трафік, який відповідає фільтру, та ігнорує решту. Ця функція допомагає відстежувати та аналізувати трафік певної програми за допомогою мережі.
Не плутайте цей фільтр із фільтрами відображення. Це не фільтр відображення. Цей фільтр з’являється у головному вікні, яке потрібно встановити перед початком захоплення пакетів. Більше того, ви не можете змінити цей фільтр під час захоплення.
Ви можете перейти до Захоплення варіант інтерфейсу та виберіть Захоплення фільтрів.
Вам буде запропоновано вікно, як показано на знімку. Ви можете вибрати будь-який фільтр зі списку фільтрів або додати / створити новий фільтр, натиснувши на + кнопку.
Приклади списку корисних фільтрів захоплення:
- ip_address хоста - фіксує трафік, лише між конкретною IP-адресою, що спілкується
- чистий 192.168.0.0/24 - фіксує трафік між діапазонами IP-адрес / CIDR
- порт 53 - фіксує трафік DNS
- tcp порт діапазону 2051-3502 - фіксує TCP-трафік з діапазону портів 2051-3502
- порт не 22 і не 21 - охопити весь трафік, крім SSH та FTP
Дисплейний фільтр
Фільтри відображення дозволяють приховати деякі пакети від уже захопленого мережевого трафіку. Ці фільтри можуть бути додані над захопленим списком і можуть бути змінені на льоту. Тепер ви можете контролювати та звужувати пакети, на яких ви хочете зосередитися, приховуючи непотрібні пакети.
Ви можете додавати фільтри на панелі інструментів фільтра відображення прямо над першою панеллю, що містить інформацію про пакет. Цей фільтр можна використовувати для відображення пакетів на основі протоколу, IP-адреси джерела, IP-адреси призначення, портів, значення та інформації полів, порівняння між полями та багато іншого.
Це правильно! Ви можете створити комбінацію фільтрів, використовуючи логічні оператори, наприклад ==.!=, ||, && тощо.
Деякі приклади фільтрів відображення одного протоколу TCP та комбінованого фільтра показані нижче:
Мережеві шари в Wireshark
Крім перевірки пакетів, Wireshark представляє рівні OSI, які допомагають у процесі усунення несправностей. Wireshark показує шари в зворотному порядку, наприклад:
- Фізичний рівень
- Шар передачі даних
- Мережевий рівень
- Транспортний рівень
- Рівень програми
Зауважте, що Wireshark не завжди відображає фізичний рівень. Тепер ми будемо копати кожен шар, щоб зрозуміти важливий аспект аналізу пакетів і те, що кожен шар представляє в Wireshark.
Фізичний рівень
Фізичний рівень, як показано на наступному знімку, представляє фізичний огляд кадру, наприклад інформацію про обладнання. Як адміністратор мережі, ви зазвичай не витягуєте інформацію з цього рівня.
Шар передачі даних
Наступний рівень каналу даних містить адресу мережевої картки джерела та призначення. Це відносно просто, оскільки доставляє кадр лише з ноутбука на маршрутизатор або наступний сусідній кадр у фізичному середовищі.
Мережевий рівень
Мережевий рівень представляє IP-адреси джерела та призначення, IP-версію, довжину заголовка, загальну довжину пакету та завантаження іншої інформації.
Транспортний рівень
У цьому шарі Wireshark відображає інформацію про транспортний рівень, який складається з порту SRC, порту DST, довжини заголовка та порядкового номера, який змінюється для кожного пакета.
Рівень програми
На останньому рівні ви можете побачити, який тип даних надсилається через носій та яка програма використовується, наприклад, FTP, HTTP, SSH тощо.
Аналіз дорожнього руху
Аналіз трафіку ICMP
ICMP використовується для звітування про помилки та тестування, визначаючи, чи вчасно дані надходять до передбачуваного пункту призначення. Утиліта Ping використовує повідомлення ICMP для перевірки швидкості з'єднання між пристроями та повідомляє, скільки часу потрібно пакету, щоб дістатися до місця призначення, а потім повернутися.
Пінг використовує повідомлення ICMP_echo_request до пристрою в мережі, а пристрій відповідає повідомленням ICMP_echo_reply. Щоб захопити пакети на Wireshark, запустіть функцію захоплення Wireshark, відкрийте термінал і запустіть таку команду:
ubuntu $ ubuntu: ~ $ ping google.комВикористовуйте Ctrl + C припинити процес захоплення пакетів у Wireshark. На знімку нижче ви можете помітити ICMP-пакет надіслано = ICMP-пакет отримано з 0% втрати пакетів.
На панелі захоплення Wireshark виберіть перший пакет ICMP_echo_request і перегляньте деталі, відкривши середню область Wireshark.
На мережевому рівні ви можете помітити джерело Src як мій ip_address, тоді як пункт призначення Dst ip_address - це сервер Google, тоді як на рівні IP згадується протокол ICMP.
Тепер ми збільшуємо деталі пакета ICMP, розширюючи протокол керування повідомленнями Інтернету та декодуємо виділені поля на знімку нижче:
- Тип: 08-бітове поле, встановлене на 8, означає повідомлення із запитом Echo
- Код: для пакетів ICMP завжди нуль
- контрольна сума: 0x46c8
- Ідентифікаційний номер (BE): 19797
- Ідентифікаційний номер (LE): 21837
- Порядковий номер (BE): 1
- Порядковий номер (LE): 256
Ідентифікатор та порядкові номери узгоджуються, щоб допомогти ідентифікувати відповіді на ехо-запити. Подібним чином перед передачею пакету обчислюється контрольна сума і додається до поля для порівняння з контрольною сумою в отриманому пакеті даних.
Тепер, у пакеті відповідей ICMP, зверніть увагу на рівень IPv4. Адреси джерела та пункту призначення помінялися місцями.
На рівні ICMP перевірте та порівняйте наступні важливі поля:
- Тип: 08-бітове поле, встановлене на 0, означає відповідь Echo message
- Код: завжди 0 для пакетів ICMP
- контрольна сума: 0x46c8
- Ідентифікаційний номер (BE): 19797
- Ідентифікаційний номер (LE): 21837
- Порядковий номер (BE): 1
- Порядковий номер (LE): 256
Ви можете помітити, що відповідь ICMP повторює ту саму контрольну суму запиту, ідентифікатор та порядковий номер.
Аналіз трафіку HTTP
HTTP - це протокол прикладного рівня Hypertext Transfer. Він використовується всесвітньою павутиною та визначає правила, коли клієнт / сервер HTTP передає / отримує команди HTTP. Найбільш часто використовувані методи HTTP ae POST і GET:
ПОСТ: цей метод використовується для надійної надсилання конфіденційної інформації на сервер, яка не відображається в URL-адресі.
ОТРИМАТИ: цей метод зазвичай використовується для отримання даних з адресного рядка з веб-сервера.
Перш ніж заглибитися в аналіз пакетів HTTP, ми спочатку коротко продемонструємо тристороннє рукостискання TCP у Wireshark.
TCP тристороннє рукостискання
При тристоронньому рукостисканні клієнт ініціює підключення, відправивши пакет SYN і отримавши відповідь SYN-ACK від сервера, що підтверджується клієнтом. Ми використаємо команду сканування Nmap TCP connect, щоб проілюструвати рукостискання TCP між клієнтом та сервером.
ubuntu $ ubuntu: ~ $ nmap -sT google.комНа панелі захоплення пакетів Wireshark прокрутіть угорі вікна, щоб помітити різні тристоронні рукостискання, встановлені на основі певних портів.
Використовувати tcp.порт == 80 фільтр, щоб перевірити, чи встановлено з'єднання через порт 80. Ви можете помітити повне тристороннє рукостискання, тобто.e., SYN, SYN-ACK, і ACK, виділено у верхній частині знімка, що ілюструє надійне з’єднання.
Аналіз пакетів HTTP
Для аналізу пакетів HTTP перейдіть до свого браузера та вставте URL-адресу документації Wireshark: http: // www.вафельниця.com та завантажте посібник користувача PDF. Тим часом Wireshark, мабуть, захоплює всі пакети.
Застосуйте фільтр HTTP і знайдіть HTTP ОТРИМАТИ запит, надісланий на сервер клієнтом. Щоб переглянути пакет HTTP, виділіть його та розгорніть рівень програми на середній панелі. У запиті може бути багато заголовків, залежно від веб-сайту та браузера. Ми проаналізуємо заголовки, присутні в нашому запиті, на знімку нижче.
- Метод запиту: метод запиту HTTP - GET
- Ведучий: визначає ім'я сервера
- Користувач-агент: інформує про тип браузера на стороні клієнта
- Accept, Accept-Encoding, Accept-language: інформує сервер про тип файлу, прийняте кодування на стороні клієнта, тобто.e., gzip тощо., і прийнята мова
- Керування кешем: показує, як запитувана інформація кешується
- Прагма: показує назву файлу cookie та значення браузера для веб-сайту
- Підключення: заголовок, який визначає, чи залишається з'єднання відкритим після транзакції
В HTTP OK пакет від сервера до клієнта, спостерігаючи за інформацією на рівні протоколу передачі гіпертексту показує “200 Добре“. Ця інформація вказує на нормальний успішний переказ. У пакеті HTTP OK ви можете спостерігати різні заголовки порівняно з HTTP ОТРИМАТИ пакет. Ці заголовки містять інформацію про запитуваний вміст.
- Версія відповіді: інформує про версію HTTP
- Код статусу, фраза відповіді: надіслані сервером
- Дата: час, коли сервер отримав пакет HTTP GET
- Сервер: деталі сервера (Nginx, Apache тощо).)
- Тип вмісту: тип вмісту (json, txt / html тощо.)
- Довжина вмісту: загальна довжина змісту; наш файл - 39696 байт
У цьому розділі ви дізналися, як працює HTTP і що відбувається, коли ми запитуємо вміст в Інтернеті.
Висновок
Wireshark - найпопулярніший та найпотужніший інструмент аналізу та аналізу мережі. Він широко використовується в повсякденних завданнях аналізу пакетів у різних організаціях та інститутах. У цій статті ми вивчили деякі теми від початківців до середнього рівня Wireshark в Ubuntu. Ми вивчили тип фільтрів, пропонованих Wireshark для аналізу пакетів. Ми розглянули модель мережевого рівня в Wireshark та провели поглиблений аналіз пакетів ICMP та HTTP.
Однак вивчення та розуміння різних аспектів цього інструменту - довгий важкий шлях. Отже, існує безліч інших онлайн-лекцій та навчальних посібників, які допоможуть вам навчитися певних тем Wireshark. Ви можете слідувати офіційному посібнику користувача, доступному на веб-сайті Wireshark. Більше того, як тільки ви сформували базове розуміння аналізу протоколів, також рекомендується використовувати такий інструмент, як Varonis, який вказує вам на потенційну загрозу, а потім використовуйте Wireshark для дослідження для кращого розуміння.