Wireshark — це потужний інструмент для аналізу мережевого трафіку, який використовується професіоналами з області мережевої безпеки, адміністраторами мереж і розробниками програмного забезпечення. Окрім основних функцій перехоплення та перегляду пакетів, Wireshark також має додаткові можливості, які дозволяють проводити більш глибокий і докладний аналіз мережі. Ці додаткові можливості включають в себе: Фільтрація і сортування: Wireshark надає широкий набір фільтрів, які дозволяють вам вибирати та аналізувати лише певний трафік за різними критеріями, такими як IP-адреси, порти, протоколи та інше. Сортування даних також допомагає знайти і виділити важливу інформацію.
Статистичний аналіз: Wireshark автоматично створює різноманітні статистичні звіти та графіки, які дозволяють отримати уявлення про роботу вашої мережі. Ви можете аналізувати часові характеристики, розподіл протоколів, пакетну діаграму та багато іншого. Глибокий аналіз пакетів: Wireshark дозволяє переглядати вміст кожного окремого пакета, що дозволяє зрозуміти, що саме передається по вашій мережі. Ви можете розкрити заголовки пакетів і даних різних протоколів, а також слідкувати за змінами у вмісті. Розробка та налагодження: Wireshark може бути використаний для розробки та налагодження мережевих додатків і служб. Ви можете створювати власні пакети для тестування і взаємодії з вашими додатками. Підтримка багатьох протоколів: Wireshark підтримує сотні різних мережевих і транспортних протоколів, що дозволяє аналізувати трафік на різних рівнях OSI-моделі. Ці додаткові можливості роблять Wireshark незамінним інструментом для дослідження, моніторингу та забезпечення безпеки мереж. Вивчення цих функцій дозволяє вам отримати більше інсайтів та контролю над вашою мережею. Тепер, коли ви освоїли основи програми Wireshark, ви можете перейти до вивчення її розширених можливостей для нюхання пакетів і графічного представлення отриманих результатів. У цьому розділі розглядаються деякі з цих функцій та інструментів, зокрема вікна кінцевих точок і розмов, складніші деталі процесу розпізнавання імен, дослідження протоколу, інтерпретація потоків, графічне представлення вводу-виводу тощо. Ці особливості Wireshark як графічного нюхача пакетів виявляться корисними на різних етапах процесу. Тому спробуйте принаймні випробувати всі додаткові функції Wireshark, розглянуті тут, перш ніж рухатися далі, оскільки ми не раз повернемося до них, розглядаючи практичні приклади аналізу пакетів у решті цієї книги.
Для того, щоб дані передавалися через s.e’gi, вони повинні передаватися потоком принаймні між двома пристроями. Кожній y(:трійці, яка передає або отримує дані в мережі, передує так звана кінцева точка в додатку Wireshark. А передача даних між кінцевими точками називається діалоговим вікном. Кінцеві точки і діалоги описуються в Wireshark на основі властивостей передачі даних і, зокрема, використання таких понять, як адреси, що використовуються в різних мережевих протоколах.
Кінцеві точки ідентифікуються декількома адресами, які призначаються їм на різних рівнях моделі OSI. Наприклад, на рівні каналу передачі даних кінцева точка отримує MAC-адресу, яка є індивідуальною адресою, вбудованою в мережевий пристрій, хоча вона може бути змінена, а потім потенційно стати непотрібною. А на мережевому рівні кінцева точка отримує 1Р-адресу, який можна змінити в будь-який момент. Як використовувати обидва ці типи адрес, буде розглянуто в наступних розділах.
На рисунку 5.1 наведено два приклади того, як адреси можуть бути використані для ідентифікації кінцевих точок у мережевих розмовах. Зокрема, діалог A складається з двох кінцевих точок, що обмінюються даними на рівні каналу передачі даних (MAC-адреси). Кінцева точка A має MAC-адресу 00 0b:de, тоді як кінцева точка B має MAC-адресу 00 : ff: ac : e0 : dc : 0f. Діалог B визначається двома пристроями, передача даних на рівні мережі (за IP-адресами). Кінцева точка A має адресу 1P 192 .168. 1 .25, тоді як кінцева точка B має адресу 1P 192 .168. 1 . 30. Давайте дізнаємося, як Wireshark може надати інформацію про передачу даних по мережі на основі кінцевих точок або розмов.
Файл перехоплення: lotsofweЬ.pcapng
Перехопити файл Аналізуючи мережевий трафік, можна виявити проблему в мережі 10tsofweb .rsarpd аж до певної кінцевої точки. Як приклад, спочатку відкрийте файл перехоплення lotsofweb. rsarpd, а потім вікно Endpoints, вибравши Statistics4Endpoints в головному меню. У цьому вікні відображається ряд корисних статистичних даних по кожній кінцевій точці, включаючи адресу, кількість відправлених і прийнятих пакетів і байтів, як показано на рис. 5.2.
Вкладки (TCP, Ethernet, lPv4, lPv6 і UDP) у верхній частині цього вікна відображають кількість кінцевих точок, організованих окремим мережевим протоколом. Щоб відобразити кінцеві точки лише для певного протоколу, перейдіть на відповідну вкладку. Щоб додати додаткові вкладки для фільтрації кінцевих точок за окремими протоколами, натисніть кнопку Типи кінцевих точок у правому нижньому куті екрана та виберіть мережевий протокол, який потрібно додати. Крім того, якщо вам потрібна роздільна здатність імен для перегляду адрес кінцевих точок (див. розділ Роздільна здатність імен нижче), установіть прапорець Роздільна здатність імен у нижній частині екрана. А якщо вам потрібно проаналізувати велике перехоплення і ви хочете відфільтрувати кінцеві точки, які відображаються, ви можете застосувати фільтр дисплея в головному вікні Wireshark і встановити прапорець Обмежити відображення фільтра у вікні кінцевих точок. Якщо цей прапорець установлено, у цьому вікні відображатимуться лише кінцеві точки, які відповідають критеріям, указаним у фільтрі відображення.
Вікно “Кінцеві точки” надає ще одну зручну опцію фільтрації окремих пакетів для відображення на панелі “Список пакетів”. Це швидкий спосіб Глибокого обнюхування пакетів на одній кінцевій точці. Для цього клікніть правою кнопкою миші по кінцевій точці, щоб вибрати доступні варіанти фільтрації. У діалоговому вікні, що відкриється, вам буде запропоновано показати або приховати пакети, пов’язані з вибраною кінцевою точкою. Ви також можете вибрати параметр “Розфарбувати”, щоб експортувати адресу кінцевої точки безпосередньо до правила колоризації (див. розділ H, “Вступ до Wireshark” для правил вибору кольорів). Таким чином, ви можете швидко ізолювати пакунки, пов’язані з окремими кінцевими точками, щоб ви могли швидко знайти їх під час аналізу.
Файл перехоплення:lotsofweb.pcapng
Фаги перехоплення Якщо файл перехоплення lotsofweb .rsarpd все ще відкритий, lotsofweb. Відкрийте вікно розмов, вибравши команду Statistics4Conversations у головному меню, щоб відобразити всі розмови у файлі хука, як показано на рис. 5.3. Вікно розмов схоже на вікно кінцевих точок, але воно відображає дві адреси в кожному рядку для представлення мережевої розмови, а також пакети та байти, передані та прийняті кожним пристроєм. Стовпець «Адреса A» визначає кінцеву точку відправника пакетів, а стовпець «Адреса B» визначає кінцеву точку одержувача.
Вікно розмов упорядковано за окремими протоколами. Щоб переглянути мережеві розмови для окремого протоколу, перейдіть на відповідну вкладку у верхній частині цього вікна або введіть інші типи мережевих протоколів, натиснувши кнопку Типи розмов внизу праворуч. Як і у вікні Кінцеві точки, ви можете скористатися перекладом імен, обмежити відображення мережевих діалогових вікон за допомогою фільтра відображення та клацнути правою кнопкою миші на окремому діалоговому вікні, щоб створити фільтри на основі конкретних діалогових вікон. Фільтри на основі мережевих діалогів корисні для поглибленого аналізу послідовностей мережевого зв’язку, які представляють особливий інтерес.
Файл перехоплення: lotsofweb.pcapng
Файл гачка Windows “Кінцеві точки та розмови” простий у використанні з великою кількістю веб-сторінок. Діагностика мережі RSARPD і особливо при спробі знайти джерело значного обсягу мережевого трафіку. Звернемося знову до файлу перехоплення lotsofweb.pcapng для прикладу. Як випливає з назви цього файлу, він містить мережевий трафік, згенерований протоколом HTTP багатьма клієнтами, які переглядають Інтернет. На рис. На рисунку 5.4 показано список кінцевих точок з цього файлу, відсортованих за кількістю байтів.
Зверніть увагу на кінцеву точку, розташовану на 172 .16 .16.128 і викликає найважчий (у байтах) мережевий трафік. Адреса цієї кінцевої точки – це внутрішня мережева адреса, як пояснюється в главі 7 «Протоколи мережевого рівня», а пристрій, який викликав найбільш інтенсивне спілкування в перехопленому трафіку, називається верхнім базікою.
Друга за інтенсивністю точка мережевого трафіку знаходиться за адресою 74 .125.103.163, яка є зовнішньою (міжмережевою) адресою. Якщо ви зіткнулися із зовнішньою адресою, ви можете звернутися до бази даних WI IOIS, щоб дізнатися зареєстрованого власника. У цьому випадку з Арнеріканського реєстру інтернет-номерів (ARIN) американська реєстрація інтернет-адрес; https: //whois.arin.net/ui/), виходить, що розглянутий тут адреса 1Р належить компанії Google (рис. 5.5).
Беручи до уваги цю інформацію, можна припустити одну з двох речей: кінцеві точки, розташовані за адресами 172 .16.16.128 і 74. 125 .103.163, обмінюватися великими обсягами даних по мережі з багатьма іншими пристроями або між собою. Насправді, кінцеві точки, як правило, спілкуються один з одним, що дуже часто зустрічається для найбільш активних пар кінцевих точок в мережі. Щоб переконатися в цьому, відкрийте вікно «Розмови», виберіть компонент plug-in Pv4 і відсортуйте список за кількістю байтів. В результаті ви повинні побачити, що дві кінцеві точки, які тут обговорюються, утворюють діалогове вікно з найбільшою кількістю переданих байтів. Сама природа передачі даних передбачає велике навантаження, так як кількість байт, що передаються з кінцевої точки з зовнішньою адресою А (74 .125 .103.163), набагато більше, ніж кількість байт, що передаються з кінцевої точки з зовнішньою адресою В (172 .16 .16 .128), як показано на рис. 5.6.
Це мережеве діалогове вікно можна дослідити окремо, застосувавши такий фільтр відображення:
ip.addr == 74.125.103.163 && ip.addr == 172.16.16.128
Перегорнувши список пакетів, можна знайти кілька в домені youtube. клітинки в стовпці «Інформація» панелі «Список пакетів». Це цілком узгоджується з раніше представленими висновками про те, що власником 1Р адреси 74 .125 .103.163 є Google, так як він володіє компанією WoitYe. Як використовувати вікна кінцевих точок і розмов в конкретних сценаріях нюхання пакетів, буде розглянуто в інших розділах цієї книги.
Файл перехоплення Маючи справу з незнайомими файлами перехоплення .rsarpd lotsofweb іноді виникає необхідність з’ясувати розподіл мережевого трафіку по окремих протоколах, тобто відсоток TCP, IP, DHCP і т. Д. В перехопленому трафіку. Замість того, щоб вручну підраховувати пакети та підсумовувати результати, цю інформацію можна отримати автоматично у Wireshark, відкривши вікно статистики ієрархії протоколів.
Наприклад, якщо файл перехоплення lotsofweb .rsardd все ще відкритий і будь-які раніше застосовані фільтри були видалені, відкрийте вікно Статистика ієрархії протоколів (див. рисунок 5.7), вибравши команду Statistics4ProtocoI Hierarchy в головному меню.
Вікно статистики ієрархії протоколів надає знімок дій, що відбуваються в мережі. Як випливає з рис. 5.7, 100% – мережевий трафік Ethernet, 99,7% – це трафік IPv4, 98% – TCP-трафік, а HTTP-трафік використовується для перегляду веб-сторінок в Інтернеті. Ця інформація корисна для оцінки навантаження на мережу, особливо якщо ви маєте чітке уявлення про те, як зазвичай виглядає трафік у даній мережі. Так, якщо заздалегідь відомо, що на протокол ARP зазвичай припадає 10% мережевого трафіку, то з недавнього перехоплення випливає, що ця частка становить 5 ()%, а значить, в мережі може бути щось не так. Іноді інтерес може представляти саме наявність пакетів якогось протоколу в мережевому трафіку. Наприклад, якщо пристрої, настроєні на використання протоколу покриваючого дерева (STP), відключені від мережі, його поява в ієрархії мережевих протоколів може свідчити про те, що відповідні пристрої налаштовані неправильно.
З часом ви виявите, що за допомогою вікна статистики ієрархії протоколів можна профілювати користувачів і пристрої у вашій мережі, просто переглянувши розподіл використовуваних протоколів. Наприклад, велика кількість мережевого трафіку HTTP може вказувати на інтенсивний перегляд веб-сторінок в Інтернеті. Крім того, ви зможете ідентифікувати окремі пристрої в мережі, просто подивившись трафік з сегмента мережі, що належить конкретному відділу організації. Наприклад, IT-відділ може використовувати додаткові адміністративні протоколи, такі як ICMP або SNMP, відділ обслуговування клієнтів може відчувати великий обсяг SMTP-поштового трафіку, а пустотливий молодий фахівець може спокійно наповнити мережу трафіком, спокійно насолоджуючись багатокористувацької рольовою грою Warld 0fWarcraft в своєму куточку!
Дані передаються по мережі між кінцевими точками за допомогою різних буквено-цифрових систем адресації, які часто занадто довгі і важкі для запам’ятовування, наприклад, MAC-адреса 00 IPv4 address 192 .168 . 47 .122 або IPv6 адреса 2001 :d b8 :aOb: : : 1. Щоб було простіше запам’ятати ці адреси, їм присвоюються зручні і запам’ятовуються імена, а процес пошуку адреси по імені називається дозволом імені. Наприклад, запам’ятайте адресу dood1e. Стільники набагато світліше адреси 216. 58 .217 . 238. Пов’язуючи зрозумілі людині імена з нечитабельними адресами, їх легше запам’ятати і розпізнати.
Активація процесу розпізнавання імен
Під час відображення даних з пакетів у Wireshark ви можете використовувати перетворення імен, щоб полегшити аналіз. Щоб використати перетворення імені Wireshark, виберіть Роздільна здатність Edit4Preferences4Name у головному меню. В результаті відкриється вікно (рис. 5.8), в якому доступні основні описані нижче настройки процесу дозволу імен в Wireshark.
Розпізнавання MAC-адрес. У цьому режимі ARP використовується для спроби перевести MAC-адреси другого рівня (наприклад, 00:09:5b:01:02:03) на адреси третього рівня (наприклад, 10.100.12.1). Якщо такі спроби не вдаються, Wireshark вибере файл ефірів зі свого каталогу, щоб зробити нову спробу перекладу адрес. І в крайньому випадку Wireshark вдасться до перетворення перших трьох байт MAC-адреси в ім’я пристрою, позначене виробником за стандартом IEEE (наприклад, Netgear 01: 02 : 03).
Розпізнавання назв транспорту. У цьому режимі робиться спроба перевести номер порту на пов’язане з ним ім’я протоколу, наприклад, щоб відобразити порт 80 як http. Це корисно, коли під час аналізу зустрічається невідомий порт і незрозуміло, з якою службою він зазвичай пов’язаний.
Розпізнавання мережевих (lP) адрес. У цьому режимі робиться спроба перевести адресу третього рівня (наприклад, 192 .168 .1.50) в зрозуміле людині ім’я DNS, наприклад MarketingPC1 .domain, клітинка. Це корисно для з’ясування призначення або власника системи, якщо вона має описову назву.
Використовуйте захоплені дані DNS-пакетів для вирішення адреси. У цьому режимі дані з перехоплених DNS-пакетів аналізуються для перекладу 1P-адрес в імена DNS.
Використовуйте засіб розпізнавання зовнішніх мережних шляхів. У цьому режимі допускається формування запитів до DNS-cepBepy машиною, де виконується аналіз пакетів, для перетворення 1P-адрес в імена DNS. Це корисно, якщо ви хочете використовувати DNS для роздільної здатності імені, але захоплений трафік, який аналізується, не містить відповідних пакетів DNS.
Максимальна кількість одночасних запитів. Цей режим встановлює обмеження на кількість одночасних одночасних запитів, що очікують обробки. Цей режим встановлюється, коли в перехопленому трафіку генерується занадто багато DNS-3anpocoB, що може негативно вплинути на пропускну здатність мережі або продуктивність DNS-cepBeta.
0nly використовувати profle “hosts” fle. У цьому режимі система DNS обмежується лише файлом hosts, пов’язаним з активним профілем Wireshark. Про те, як користуватися цим файлом, піде мова в наступному розділі.
Зміни, внесені у вікні “Налаштування”, зберігаються після закриття та повторного відкриття Wireshark. Щоб швидко внести зміни до процесу розпізнавання імен, не зберігаючи їх, налаштуйте параметри роздільної здатності імен, вибравши команду View4Name Resolution у головному меню. У вас є можливість увімкнути або вимкнути переклад імен для фізичних, транспортних і мережевих адрес.
Щоб зробити перехоплення файлів більш читабельним, заощадити багато часу в певних випадках, використовуйте різноманітні засоби розпізнавання імен. Наприклад, розпізнавання імен DNS допомагає відразу дізнатися ім’я комп’ютера, якого ви намагаєтеся ідентифікувати як відправника окремого пакета.
Беручи до уваги переваги перетворення імені, його використання вважається цілком очевидним, але воно також має ряд потенційних недоліків. Перш за все, дозвіл імен мережі може вийти з ладу, якщо немає відповідного DNS-cepBep для надання імен, пов’язаних з адресою 1P. Інформація про переклад імені не зберігається у файлі перехоплення, тому процес перетворення імені повинен відбуватися кожного разу, коли файл відкривається. Якщо ви перехопите пакети в одній мережі, а потім відкриєте файл захоплення пакетів в іншій мережі, то ваша система не зможе отримати доступ до DNS-cepBepaM з вихідної мережі, і тому розпізнавання імен не вдасться.
Крім того, переклад імені тягне за собою додаткові накладні витрати на обробку. Якщо вам доведеться мати справу з дуже великим файлом перехоплення, можливо, доведеться не перекладати імена, щоб заощадити системні ресурси. Якщо ви спробуєте відкрити великий файл перехоплення і система не справляється з навантаженням, або додаток Wireshark і зовсім вилітає, то може допомогти скасування конвертації імені.
Ще одна проблема виникає, коли служба DNS використовується для розпізнавання мережевих імен. У цьому випадку можуть генеруватися додаткові пакети, здатні засмічувати файл перехоплення мережевим трафіком, відправленим DNS-cepBepaM для адресної трансляції. Справа ускладнюється ще й тим, що якщо аналізований файл перехоплення містить шкідливі ІЧ-адреси, то cпроби перетворити їх в імена можуть привести до запитів до інфраструктури, яка контролюється зловмисником і може попередити його про те, що відомі його злі наміри зробити цю систему своєю метою. Щоб зменшити ризик засмічення файлів нюхом пакетів або випадкового зв’язку з зловмисником, зніміть прапорець Використовувати зовнішній мережевий шлях resotver у розділі Розпізнавання імен вікна Налаштування.
Моніторинг трафіку з багатьох мережевих сайтів у великих файлах перехоплення може бути досить клопоту, особливо коли роздільна здатність імен недоступна. У цьому випадку може, зокрема, допомогти ручна розмітка систем на основі їх 1P-адрес за допомогою спеціального файлу hosts, створеного для мережевих вузлів (або hosts) в Wireshark. Це текстовий файл, який містить список 1Р адрес і відповідні імена. Файл hosts можна використовувати для призначення відповідних імен у Wireshark адресам для короткої довідки. Ці імена будуть відображатися на панелі “Список пакетів”.
Щоб скористатися файлом hosts, виконайте такі дії:
Виберіть команду Edit4Preferences4Name Resolution в головному меню і поставте галочку навпроти пункту 0nly використовувати профіль “hosts” Ті
Створіть новий файл за допомогою Блокнота у файлі Windows або подібному текстовому редакторі. Цей файл повинен містити по одному запису в кожному рядку з адресою 1P та ім’ям, в яке він перетворюється (рисунок 5.9). Ім’я, вибране в правій частині кожного рядка, буде відображатися в списку пакетів щоразу, коли Wireshark зустрічає адресу 1P зліва.
Збережіть згенерований файл як звичайний текстовий файл з іменем hosts у відповідному каталозі, як показано нижче. Зверніть увагу, що файл hosts не має розширення!
Відкрийте файл перехоплення, і тоді будь-які 1Р-адреси з файлу hosts повинні бути позначені відповідними іменами, як показано на рис. 5.10. Замість 1P-адрес у стовпцях Source та Destination на панелі Packet List з’являться більш описові імена.
Таке використання спеціальних файлів hosts може значно поліпшити вашу здатність розпізнавати певні вузли мережі (або хости) під час сніфінгу пакетів. Якщо ви працюєте у складі групи мережевих аналітиків, радимо надати колегам спільний доступ до файлу хоста, який містить відомі ресурси. Це допоможе вашій команді швидко розпізнавати системи зі статичними адресами, включаючи штабелери та маршрутизатори.
Додаток Wireshark також має можливість тимчасово ввімкнути переклад імені на вимогу. Для цього клацніть правою кнопкою миші по пакету на панелі «Список пакетів» і виберіть з контекстного меню пункт «Редагувати дозволене ім’я». У вікні, можна вказати в якості ярлика ім’я, відповідне конкретній адресі. Таке перетворення буде відкладено, як тільки файл перехоплення буде закритий, хоча це короткий спосіб позначити адресу без внесення будь-яких постійних змін, які доведеться повернути пізніше. Я багато використовую цей метод, тому що це трохи простіше, ніж вручну редагувати файл hosts при аналізі кожного файлу з захопленими пакетами.
Розшифровка мережевих протоколів
Однією з найбільших сильних сторін Wireshark є його підтримка аналізу тисяч мережевих протоколів. І така можливість пояснюється тим, що Wireshark є додатком з відкритим вихідним кодом, а тому служить основою для створення дешифраторів протоколу. Вони надають можливість розпізнавати та декодувати різні поля мережевого протоколу в Wireshark для відображення мережевого протоколу в інтерфейсі користувача. У Wireshark використовується кілька декодерів для інтерпретації кожного пакета. Наприклад, декодер мережевого протоколу ICMP дозволяє Wireshark дізнатися, що пакет 1P містить дані з протоколу 1CMP, витягти тип і код протоколу ICMP і відформатувати його поля для відображення в стовпці “Інформація” панелі “Список пакетів”.
Дешифратор можна розглядати як інтерпретатор вихідних даних у додатку Wireshark. Щоб мережевий протокол знайшов підтримку в Wireshark, для нього в цьому додатку повинен бути окремий дешифратор, інакше доведеться писати власний декодер мережевого протоколу.
Файл перехоплення: vrongdissector.pcapng
Дешифратори перехоплення файлів використовуються в Wireshark для того, щоб неправомірнодиссекторувати. RSARPD для виявлення окремих протоколів і з’ясування того, як відображати мережеву інформацію. На жаль, Wireshark не завжди робить правильний вибір дешифратора для застосування до пакетів. Особливо це актуально, коли мережевий протокол використовує нестандартну конфігурацію, включаючи нестандартний порт, який часто налаштовується мережевими адміністраторами з міркувань безпеки або співробітниками організації, які намагаються обійти контроль доступу.
Якщо дешифратори неправильно застосовуються в Wireshark, їх вибір може бути змінений. Наприклад, відкрийте файл трасування неправильного сектора. RSARPD, який містить багато інформації про зв’язок між двома комп’ютерами за допомогою мережевого протоколу SSL (Secure Socket Layer), який використовується для зашифрованого обміну даними між хостами. За звичайних обставин перегляд мережевого трафіку SSL у Wireshark не надасть особливо корисної інформації через те, що вони зашифровані. Але тут точно щось не так. Якщо подивитися на вміст декількох таких пакетів, клікнувши на них і вивчивши вміст панелі Packet Bytes, то можна виявити мережевий трафік, представлений звичайним текстом. Отже, якщо проаналізувати пакет 4, то можна знайти згадка про додаток FileZilla для роботи з сервером FTF. І а в ряді наступних пакетів ясно показано запит та відповідь як імені користувача так і пароля.
Якби це був мережевий трафік SSL, ви не змогли б прочитати будь-які дані, що містяться у файлах, і навряд чи побачили б усі імена користувачів та паролі, передані у відкритому тексті (рисунок 5.11). Виходячи з наданої тут інформації, можна з упевненістю припустити, що це FTP-трафік, а не SSL. Цей трафік, скоріше в(:його), буде інтерпретуватися в Wireshark як посилання на SSL, оскільки він використовує порт 443, як зазначено в стовпці Відомості. Але це стандартний порт, який використовується в мережевому протоколі HTTPS (тобто доповнення HTTP через SSL).
Щоб вирішити цю проблему, ви можете примусово дешифрувати в Wireshark використовувати FTP-дешифратор для проаналізованих пакетів, виконавши такі дії:
Клацніть правою кнопкою миші на улюбленому пакеті SSL (наприклад, пакеті 30) у стовпці Протокол і виберіть Декодувати як з контекстного меню, щоб відкрити нове діалогове вікно.
Доручіть Wireshark розшифрувати весь трафік TCP, що проходить через порт 443 як FTP, вибравши порт TCP зі списку у стовпці Field, ввівши номер порту 443 у стовпець Value та вибравши RTR зі списку у стовпці Current, як показано на рисунку 1. 5.12.
Натисніть кнопку OK, щоб переглянути зміни, негайно внесені до файлу перехоплення.
Дані будуть розшифровуватися у вигляді FTP-трафіку, що дасть можливість аналізувати їх на панелі Packet List, особливо не вдаючись в окремі байти (рис. 5.13).
Функцію примусового розшифрування можна використовувати кілька разів в одному файлі перехоплення. Примусові розшифровки, встановлені в Декодувати як. буде автоматично відстежуватися в Wireshark. У цьому вікні можна переглянути і змінити всі примусові розшифровки, створені до цього часу.
За замовчуванням примусові розшифровки не зберігаються при закритті файлу перехоплення. Але цю ситуацію можна виправити, натиснувши кнопку Зберегти в Декодувати як…. В результаті правила розшифровки протоколів budug зберігаються в профілі поточного користувача Wireshark. Вони будуть використовуватися з цього профілю при відкритті будь-якого файлу перехоплення. Збережені правила розшифровки можна видалити, натиснувши в цьому вікні на кнопку зі знаком мінус (-).
Збережені правила розшифровки можна легко забути, що може привести до великого непорозуміння для тих, хто до цього не готовий, тому поводьтеся з правилами розшифровки обачно. Щоб убезпечити себе від такої помилки, не рекомендується зберігати примусові розшифровки в основному профілі користувача Wireshark.
Принадність роботи в додатку з відкритим вихідним кодом полягає в тому, що при виникненні будь-яких непорозумінь завжди можна подивитися на вихідний код і з’ясувати причину. І це особливо корисно при спробі з’ясувати причини, за якими той чи інший протокол неправильно трактується. Адже досить проаналізувати вихідний код відповідного декодера.
Ви можете переглядати та аналізувати вихідний код дешифраторів мережевих протоколів безпосередньо з веб-сайту програми Wireshark, натиснувши спочатку посилання DeveIop, а потім посилання Переглянути код. Це посилання приведе вас до сховища вихідного коду Wireshark, де ви зможете переглянути код випуску останніх версій Wireshark. Зокрема, вихідні файли дешифраторів мережевих протоколів знаходяться в каталозі epan/dissectors, де вихідний файл кожного дешифратора позначається ім’ям протоколу> . c.
Ці вихідні файли moput виявляються досить складними, але всі вони слідують загальній схемі і забезпечені досить докладними коментарями. Щоб зрозуміти, як працює кожен дешифратор, не обов’язково мати досвід програмування на C. Якщо ви хочете досконально розібратися в тому, що відображається в Wireshark, рекомендується почати перегляд і аналіз з декодерів найпростіших мережевих протоколів.
Фай.л перехоплення: http_google.pcapng
Позбавляє від необхідності переглядати дані, відправлені від клієнта до сервера невеликими шматками при переході від одного пакета до іншого. За допомогою поточного відстеження дані сортуються, щоб полегшити перегляд.
Нижче наведено типи потоків, які можна контролювати:
Потік TCP. Цей потік збирає дані з протоколів, які використовують протокол TCP, таких як мережеві протоколи HTTP і FTP.
UDP стрім. Цей потік збирає дані з тих протоколів, які використовують протокол UDP, наприклад, з мережевого протоколу DNS.
SSL-потік. Цей потік збирає дані з протоколів, де вони зашифровані. Для розшифровки мережевого трафіку необхідно надати відповідні паролі.
Потік HTTP. Цей потік збирає дані з протоколу HTTP. Це корисно для відстеження даних HTTP через потік TCP без повної розшифровки корисної інформації з протоколу HTTP.
Як приклад розглянемо просту транзакцію з використанням протоколу NTGR в http hook файл dood1e .rsardpd. Для цього спочатку клікніть по будь-якому з пакетів TCP або HTTP в цьому файлі, потім клацніть правою кнопкою миші по обраному пакету і виберіть з контекстного меню FolIow4TCP Stream. В результаті буде отриманий єдиний потік TCP і витяг з діалогового вікна буде відкритий в окремому вікні, як показано на рис. 5.14.
Текст, що відображається у вікні TCP Stream Follow, виділений двома кольорами: червоний (більш світлий відтінок с.erogo на рис.5.14) – текст, що позначає проходження мережевого трафіку від відправника до одержувача, і синій (в більш темному відтінку сірого на рисунку 5.14) – текст, що вказує на мережевий трафік, що проходить в зворотному напрямку: від одержувача до відправника. Колір асоціюється зі стороною, яка ініціювала обмін даними. У цьому прикладі клієнт ініціював встановлення мережевого підключення до веб-сервера, в зв’язку з чим його трафік виділяється червоним кольором.
Обмін даними в потоці GSR починається з початкового запиту методом GET кореневого каталогу (7) на веб-сервері і продовжується відповіддю сервера у вигляді НТТР/1.1 200 ОК про успішну обробку запиту. Така ж схема використовується для обміну даними в інших потоках перехоплених пакетів, оскільки клієнт запитує окремі файли, а сервер відправляє їх у відповідь. У цьому прикладі можна побачити, що користувач переглядає стартову сторінку веб-сайту Google. Але замість перегляду пакунків один за одним, ви можете легко прокрутити виписку з пакетів. По суті, ви бачите те ж саме, що і кінцевий користувач, але тільки зсередини.
Окрім перегляду вихідних даних, у цьому вікні можна шукати текст, зберігати його у файлі, друкувати або вибирати представлення ASCII, EBCDIC, шістнадцяткове або C-масив.
Для відстеження потоків TCP і UDP потрібно всього пару кліків, але для перегляду SSL-потоків в зрозумілому людині форматі потрібно виконати ряд додаткових дій. Мережевий трафік по SSL шифрований, тому необхідно надати секретний ключ, пов’язаний з сервером, відповідальним за зашифрований трафік. Спосіб отримання такого ключа залежить від конкретної серверної технології, а тому виходить за рамки даної книги. Але як тільки ви отримаєте секретний ключ, завантажте його в Wireshark.
Виконавши наведені нижче дії.
Перейдіть до глобальних налаштувань Wireshark, вибравши команду Edit4Preferences у головному меню.
Розгорніть розділ Protocols у вікні, і натисніть на заголовок протоколу SSL, як показано на рис. 5.15. Натисніть кнопку Редагувати поруч із міткою списку ключів RSA.
Натисніть кнопку плюс (+).
Надайте необхідну інформацію. До них відносяться 1P-адреса сервера, відповідального за шифрування, номер порту, мережевий протокол, розташування ключового файлу і пароль до цього файлу, якщо він використовується.
Перезапустіть Wireshark.
В результаті ви зможете перехопити зашифрований мережевий трафік, що проходить між клієнтом і сервером. Клацніть правою кнопкою миші пакет HTTPS і виберіть Followc>SSL Stream, щоб побачити витяг з розшифрованого тексту пакета.
Можливість перегляду екстрактів пакетів є однією з найпоширеніших в аналізі пакетів Wireshark, і вам доведеться часто використовувати її, щоб швидко дізнатися, які мережеві протоколи використовуються. У наступних розділах книги ми розглянемо ряд інших сценаріїв, заснованих на перегляді уривків з упаковок.
Файл перехоплення: download-slow.pcapnq
Файл перехоплення Розмір одного пакета або групи пакетів може становити 10 Вт. RSARPD може сказати багато цікавого про поточну ситуацію в мережі. За звичайних обставин максимальний розмір кадру в мережі Ethernet становить 1518 байт. Якщо відняти заголовки Ethernet, IP і TCP від цього числового значення, у вас залишиться 1460 байт, призначених для передачі заголовка протоколу сьомого рівня або даних. Якщо ви знаєте мінімальні вимоги до передачі пакетів, ви можете почати з аналізу розподілу довжин пакетів у перехопленому трафіку, щоб зробити обґрунтоване припущення про склад трафіку. Це дуже допомагає при спробі зрозуміти склад великих файлів перехоплення. Щоб переглянути розподіл пакетів за довжиною, Wireshark надає діалогове вікно Довжини пакетів.
Звернемося до конкретного прикладу з файлу перехоплення download-slow. pcapng. Відкривши його, виберіть команду Statistics Packet Lengths у головному меню. У результаті відкриється діалогове вікно Packet Lengths, показане на рис. 5.16.
Зверніть особливу увагу на рядок з даними s.tatichess.kimi на пакети довжиною від 1280 до 2559 байт. Такі великі пакети зазвичай вказують на передачу даних, тоді як менші пакети вказують на послідовності контролю протоколу. При цьому спостерігається чимала частка великих упаковок (66,43%). Навіть не дивлячись на пакети в файлі перехоплення, можна зробити цілком обгрунтоване припущення, що перехоплений трафік містить одну або кілька передач даних, які можуть мати форму завантаження по протоколу NTT P, відвантаження по протоколу FTP, будь-якої іншої операції в мережі, де передаються дані між хостами.
Більшість решти пакетів (33,44%) мають довжину від 40 до 79 байт. У цю категорію зазвичай входять пакети управління TCP, які не несуть корисної інформації. Давайте розглянемо типовий розмір заголовків протоколів. Наприклад, заголовок Ethernet становить 14 байт (плюс 4 байти на циклічний надлишковий код CRC), заголовок IP – не менше 20 байт, а пакет TCP без даних або параметрів – ті ж 20 байт. Це означає, що довжина стандартних пакетів управління TCP (наприклад, пакетів SYN, ASC, RS’L’ і FIN) складе близько 54 байт і укладається в розглянутих тут межах. Звичайно, ця довжина збільшиться, якщо додати настройки IP або TCP. Мережеві протоколи R&D і TCP більш детально розглянуті в главах 7 «Протоколи мережевого рівня» і 8 «Протоколи транспортного рівня» відповідно.
Аналіз довжини пакетів дає загальне уявлення про великий трафік, який був перехоплений. Якщо в ньому багато великих пакетів, то можна з упевненістю припустити, що по мережі передається велика кількість даних. Якщо довжина більшості пакетів невелика, це означає, що даних передається мало, і можна припустити, що перехоплений трафік складається з команд управління мережевими протоколами. Але це не правила, які слід вважати незмінними, а лише припущення, які допомагають почати більш глибокий аналіз.
Графіки служать основою для пакетного аналізу і одним з кращих способів отримати остаточне уявлення про масив даних. Wireshark включає кілька інструментів діаграм, які допоможуть вам краще зрозуміти перехоплені дані. І перш за все, це можливості графічного представлення вводу-виводу.
Файли перехоплення: download-fast.pcapng Download-slov.pcapng, http_espn.pcapng
Такі графіки дозволяють швидко виявляти сплески і провали в каналі зв’язку, виявляти затримки в роботі окремих протоколів і порівнювати паралельні потоки даних.
Як приклад побудови графіка вводу-виводу при завантаженні файлу на комп’ютер з Інтернету звернемося до файлу швидкого перехоплення download-fast. pcapng. Відкрийте файл, натисніть на будь-який пакет TCP, щоб вибрати його, і виберіть Графік статистики410 у головному меню.
У вікні 10 Графік ви побачите графічне представлення потоку даних у часі. Як випливає з прикладу, наведеного на рис. 5.17, на цьому графіку завантаження файлів передається близько 500 пакетів в секунду. І цей показник залишається постійним практично до кінця графіка, де різко знижується.
Тепер давайте розглянемо приклад більш повільного завантаження файлів для порівняння. Відкривши поточний файл перехоплення, відкрийте файл перехоплення download-slow.pcapng в іншому екземплярі Wireshark. Якщо ви створите графік вводу-виводу для цього прикладу завантаження файлу, як описано вище, ви побачите зовсім іншу картину, як показано на рис. 5.18.
Завантаження, розглянута тут, відбувається зі швидкістю від 15 до 100 пакетів на с.екунда, і ця швидкість далеко не постійна, і іноді герцог падає до нуля пакетів в секунду. Цю невідповідність можна краще побачити, розмістивши графіки вводу-виводу обох файлів поруч, як показано на рис. 5.19. При порівнянні обох графіків звертайте особливу увагу на значення, нанесені вздовж осей X і Y, щоб порівняти зіставні значення. Масштаб в обох випадках автоматично коригується в залежності від кількості пакетів і / або обсягу переданих даних, що головна різниця між порівнюваними графіками. Наприклад, повільне завантаження файлів демонструє масштаб від 0 до 100 пакетів в секунду, в той час як швидке завантаження – від 0 до 700 пакетів в секунду.
Параметри, налаштовані в нижній частині вікна “Графік 10”, дозволяють застосовувати ряд настроюваних фільтрів, які використовують той самий синтаксис, що й фільтри дисплея, а також вибирати кольори для відображення даних із цих фільтрів. Наприклад, можна створити фільтри для певних IP-адрес і призначити їм певні кольори, щоб побачити різницю пропускної здатності кожного пристрою.
Спробуйте цю функцію, відкривши файл перехоплення http espn .rsardd, який був отриманий при відвідуванні домашньої сторінки американського кабельного спортивного каналу ESPN з аналізованого пристрою. У вікні «Розмови» ви побачите, що мережевий вузол із зовнішнім IP-адресою 205 .234.218 .129 є найактивнішим. З цього можна зробити висновок, що цей мережевий сайт, швидше за все, є основним постачальником вмісту, який отримується, коли ви відвідуєте веб-сторінку на espn . Сто. Але мережеві вузли на інших 1Р адресах також беруть участь в діалозі, швидше за все тому, що додатковий контент завантажується від зовнішніх постачальників і рекламодавців. Відмінності між прямою та сторонньою доставкою контенту можна проілюструвати за допомогою графіка вводу-виводу, показаного на рис. 5.2.
Обидва застосовані на цьому графіку фільтри представлені окремими рядками внизу вікна графіка 10. Зокрема, фільтр Tor Talker (Most Active Network Node) показує ввід/вивід тільки на IP-адресу 205 .234 .218 .129 основного постачальника контенту в даному випадку. Величина цього вводу-виводу відображається на графіку чорним кольором, заповнюючи верхню частину гістограми. А фільтр Everything Else показує введення-виведення для всіх інших адрес IP у файлі перехоплення, крім адреси 205 .234 .218 .129. Тому він включає всіх сторонніх постачальників вмісту.
Величина цього вводу-виводу відображається на графіку червоним кольором (світлий відтінок сірого на рис. 5.20), який заповнює нижню частину гістограми. Зауважте, що одиниці на осі Y цього графіка змінено на байти в секунду. Завдяки цим змінам дуже легко побачити відмінності в обсязі трафіку основних і сторонніх постачальників контенту, а також з’ясувати, скільки вмісту надходить зі стороннього джерела. Вам, ймовірно, буде цікаво повторити цю вправу на веб-сайтах, які ви часто відвідуєте, і використовувати цю корисну стратегію для порівняння рівнів вводу-виводу на різних хостах.
Файл перехоплення: download-fast.pcapng
Перехопити файл Додаток Wireshark також має можливість швидкого зниження 10ad. RSARPD компілює і переглядає час передачі пакетів в обидва кінці з даного файлу перехоплення. Час туди і назад (RTT) – це час, необхідний для отримання підтвердження того, що пакет доставлений до місця призначення. По суті, це час, необхідний для того, щоб пакет дійшов до одержувача, і підтвердження отримання, відправленого назад, – для відправника цього пакета. Аналіз часу передачі пакетів туди і назад часто проводиться для виявлення уповільнень або вузьких місць при передачі даних, а також будь-яких затримок, що виникають у зв’язку з цим.
Щоб спробувати цю функцію на конкретному прикладі, відкрийте файл хука down10ad-fast .rsarpd. Щоб переглянути часову шкалу пакетів з цього файлу, спочатку виберіть будь-який пакет TCP, а потім команда Statistics c>TCP Stream Graphs4Round Trip Time Graph з головного меню.
В результаті графік, показаний на рис. 5.21
Кожна точка на цьому графіку представляє час передачі та підтвердження прийому пакета. За замовчуванням ці значення сортуються за порядковими номерами пакетів. Щоб перейти до пакета на панелі “Список пакетів”, просто натисніть на відповідну точку на діаграмі.
І лише в деяких точках вони знаходяться в діапазоні від 0,10 до 0,25 с. І незважаючи на чималу кількість великих значень, в основному вказують цілком прийнятний час завантаження файлу для передачі і підтвердження прийому. Аналізуючи тимчасову шкалу туди і назад з точки зору пропускної здатності мережі, слід виявити великі значення часу затримки, позначені набором точок з великими значеннями, відкладеними по осі Y.
Файл перехоплення: dns _ recursivequery_ server. pcapng
Рекурсія перехоплення DNS — можливість побудови графіків потоків сервера автозапитів. RSARPD корисний для візуалізації мережевих з’єднань і передачі потоків даних з плином часу. Така інформація дозволяє легше зрозуміти природу обміну даними між пристроями в мережі. Блок-графік складається з стовпчиків, які вказують на зв’язок між хостами, візуально представляючи мережевий трафік для зручності інтерпретації.
Щоб створити блок-графік, відкрийте файл перехоплення сервера dns recursivequery .rsarpd і в головному меню виберіть Statistics c>Flow Graph. Отриманий графік показаний на рис. 5.22.
Цей графік потоку ілюструє рекурсив, отриманий одним хостом і переадресований на інший хост (докладніше про протокол DNS див. Главу 9, “Загальні протоколи верхнього рівня”). Кожна вертикальна лінія на цьому графіку представляє інший хост. Блок-графік дозволяє візуалізувати двосторонній обмін даними між двома пристроями в мережі, а в даному прикладі співвідношення обміну даними між декількома пристроями. Такий графік також корисний для розуміння звичайного потоку даних, що передаються по мережевих протоколах, які менш знайомі з вашого досвіду.
Файл перехоплення: Download-slov.pcapng
Файл перехоплення У дешифраторах кожного протоколу в Wireshark download-slow.pcapng визначається експертна інформація, яка попереджає про конкретні стани в пакетах цього протоколу.
Ці держави поділяються на такі категорії:
Чат. Розуміння спілкування.
Примітка. Незвичайні пакети, які можуть бути частиною звичайного обміну даними.
Попередження. Незвичайні пакети, які, швидше за все, не є частиною нормального спілкування.
Помилка. Є помилка в пакеті або дешифраторі, який його інтерпретує.
Як приклад, відкрийте повільний файл перехоплення .rsarpd і виберіть Analyze c>Expert lnformation в головному меню, щоб відкрити вікно lnformation Exper1. Установіть у цьому вікні прапорець Групувати за резюме, щоб організувати виведення експертної інформації за ступенем її важливості (рис. 5.23).
У цьому вікні є розділи для кожної категорії експертної інформації. У цьому випадку помилки відхиляються, з’являються попередження 3,19 повідомлень і діалоги з текстом 3.
Більшість повідомлень в цьому файлі перехоплення відносяться до мережевого протоколу TCP просто тому, що до цього протоколу традиційно застосовується експертна інформаційна система. При цьому в цьому вікні відображається 29 повідомлень з експертною інформацією, налаштованої під протокол TCP, і вони можуть виявитися корисними для діагностики файлів перехоплення. Ці повідомлення позначають окремі пакунки, якщо вони відповідають певним критеріям, як зазначено нижче. (Це означає, що такі повідомлення стануть більш зрозумілими при вивченні мережевого протоколу TCP в главі 8 «Протоколи транспортного рівня» і діагностиці повільних мереж в главі 1 «Заходи по боротьбі з повільною мережею».
Повідомлення текстового діалогу. Повідомлення “Window Update” (Зміна розміру вікна), яке пошлють одержувачем, щоб повідомити відправника про зміну розміру вікна прийому в протоколі ТСР.
Повідомлення з повідомленнями. Повідомлення “ТСР Retransmission” (Повторна передача по протоколу ТСР), що надсилається внаслідок втрати пакетів. Воно з’являється, коли отримано дублікат підтвердження прийому пакета або спрацював таймер часу очікування на повторну передачу пакетів. Повідомлення “Duplicate АСК” (Дублікат підтвердження), що посилаєтьсяу тому випадку, якщо хост не отримує пакет з очікуваним наступним порядковим номером і формує дублікат підтвердження останніх отриманих даних. Повідомлення “Zero Window Probe” (Проба нульового вікна), що посилається у ході поточного контролю стану вікна прийому у протоколі ТСР після передачі пакета з нульовим вікном, як пояснюється в розділі 11, “Заходи боротьби з повільною мережею”. Повідомлення “Кеєр Ali ve АСК” (Підтвердження активності з’єднання), що надсилається у відповідь на пакети підтримки активним з’єднання. Повідомлення “Zero Window Probe АСК” (Підтвердження проби нульового вікна), що посилається у відповідь на пакети з пробою нульового вікна. Повідомлення “Window Is Full” (Вікно заповнене), що посилається для повідомлення про заповнення на стороні одержувача вікна прийому в протоколі ТСР.
Попереджувальні повідомлення. Повідомлення “Previous Segment Lost” (Попередній сегмент втрачено), посилається в тому випадку, якщо пропущено пакет з очікуваним порядковим номером у потоці даних. Повідомлення “ACKed Lost Packet” (Підтвердження втрати пакета), що посилається в тому випадку’ якщо виявлено пакет підтвердження лек, але не пакет, що він підтверджує. Повідомлення “Кеєр Alive” (Підтримка активним з’єднання), що посилається в тому випадку, якщо виявлено пакет підтримки активним з’єднання. Повідомлення “Zero Window” (Нульове вікно), що посилається в тому випадку, якщо досягнуто розміру вікна прийому в протоколі ТСР і надіслано повідомлення про нульове вікно, що запитує відправника зупинити передачу даних. Повідомлення “Out-of-Order” (Порушення порядку прямування), що посилається в тому випадку, якщо на підставі порядкових номерів виявлено, що пакети виходять не за порядком прямування їх номерів. Повідомлення “Fast Retransmission” (Швидка повторна передача), посилається в тому випадку, якщо повторна передача пакета відбувається протягом 20 мс після отримання дубліката підтвердження.
Повідомлення про помилки. Повідомлення “No Error Messages” (Повідомлення про помилки відсутні).
На перший погляд може здатися, що деякі функції Wireshark, розглянуті в цьому розділі, підходять тільки для спеціальних, незрозумілих ситуацій, але насправді вам доведеться використовувати їх частіше, ніж можна було очікувати. Дуже важливо ознайомитися з функціями і вікнами, які тут доступні, адже на них доведеться не раз посилатися в ряді наступних глав.
Ми використовували матеріали з книги “PRACTICAL РАСКЕТ ANALYSIS ”, яку написав Кріс Сандерс.