У попередній частині цієї статті я показав вам, як фільтрувати дані, перехоплені за допомогою мережевого монітора (Network Monitor), таким чином, щоб були відображені лише взаємодії між потрібними комп'ютерами. Фільтрація взаємодій між комп'ютерами, які нас не цікавлять - це лише початковий етап, тому що як і раніше в захопленому файлі міститься багато сміття, який необхідно відсортувати, що отримати цікаву для нас інформацію. Наприклад, в нашому прикладі, ми запустили команду ping для іншого комп'ютера в мережі. Стандартна команда PING зазвичай виробляє дванадцять пакетів даних. Якщо ви подивіться на малюнок A, то ви побачите, що навіть після фільтрації взаємодій між іншими комп'ютерами, ми бачимо більше, ніж дванадцять пакетів.
Малюнок A: Коли ви здійснюєте захоплення, необхідно позбутися від сміття
Найдивніше в цьому захопленні є те, що він проводився протягом п'яти-шести секунд. Ви можете лише уявити, як багато пакетів будуть перехоплені за довший проміжок часу, або ж якщо мережа буде більш сильно навантажена, що дуже ймовірно в реальній ситуації.
На щастя існує кілька інших речей, які дозволять вам позбавитися від непотрібної інформації. У цьому конкретному випадку ми зацікавлені у виявленні пакетів, які пов'язані з командою PING. Кожен раз, коли ви виконуєте команду PING, операційна система Windows викликає протокол ICMP. Тому ми можемо поставити такий фільтр, щоб відображалися тільки пакети ICMP.
Пам'ятайте, що ми вже відфільтрували отриману інформацію таким чином, щоб бачити взаємодія між важливими нас комп'ютерами. Що далі відфільтрувати нашу інформацію по протоколу, натисніть на іконку Filter (іконка, яка схожа на воронку). Після цього ви побачите діалогове вікно Display Filter (показати фільтр), зображене на рисунку B.
Малюнок B: Діалогове вікно, дозволяє вам відфільтрувати інформацію з комп'ютерів і протоколам
Щоб відфільтрувати по протоколу виберіть рядок Protocol == Any (будь-який протокол), натисніть на кнопку Edit Expression (редагувати вираз) (Ця кнопку з'явиться на місці кнопки Change Operator, яка зображена на малюнку). Після цього ви побачите вікно, схоже на те, що зображено на рисунку C. Як ви можете побачити з малюнка, у вікні представлений список всіх протоколів, про яких знає мережевий монітор (Network Monitor), а також короткий опис кожного протоколу.
Малюнок C: Діалогове вікно Expressions (вираження), відображає список всіх протоколів, про які відомо мережевого монітора (Network Monitor)
Для створення фільтра просто натисніть на кнопку Disable All (відключити всі). В результаті цієї дії, всі протоколи зі списку Enabled Protocols (включені протоколи) перемістяться в список Disabled Protocols (відключені протоколи). Тепер в списку відключених протоколів (Disabled Protocols) знайдіть протокол ICMP protocol. Виберіть протокол ICMP і натисніть на кнопку Enable (включити). Після цього, протокол ICMP потрапить в список включених протоколів (Enabled Protocols). Двічі натисніть на кнопку OK, і ваш захоплення буде відфільтрований, і будуть відображені лише цікаві для вас пакети, що зображено на рисунку D.
Малюнок D: Ви можете одночасно ставити фільтр по комп'ютеру і протоколу
Техніка, яку я вам щойно показав, чудово працює, якщо ви точно знаєте, що цікавить вас протокол. Але іноді вам може знадобитися отримати загальний вигляд того, що відбувається між двома комп'ютерами, тому заздалегідь може бути невідомо, які протоколи беруть участь у взаємодії. Навіть для таких ситуацій можна використовувати техніки для фільтрації небажаної інформації.
Техніка, про яку я хочу вам розповісти, майже так само ефективна, як і та, яку ви тільки що бачили, але я використовую її в реальному житті. Ідея цієї техніки полягає в тому, щоб фільтрувати непотрібні пакети по одному. Перед тим, як я розповім, як працює ця техніка, я хочу згадати, що критерій класифікації пакета, як непотрібного, дуже сильно варіюється від одного випадку до іншого. Чим більш докладно ви захочете вивчити захоплений файл, тим менше пакетів ви захочете відфільтрувати. З іншого боку, якщо ви хочете лише отримати загальне уявлення про те, що відбувається, то необхідно залишити лише кілька пакетів.
Як ви вже бачили, ми використовували комп'ютер під назвою FUBAR для виконання команди PING для сервера під назвою TAZMANIA. Давайте припустимо, що ми знаємо, що саме ці два комп'ютери беруть участь у взаємодії, але ми не знаємо, що для команди PING використовується саме протокол ICMP.
У такій ситуації, перше, що ми зробимо, це Отфильтруем захоплені пакети таким чином, що відсікти всі інші пакети, які не належать до взаємодії між двома важливими нас комп'ютерами. Для цього ми будемо використовувати ту ж саму техніку, що використовували в третій частині цієї статті, а результат її використання буде виглядати так, як зображено на рисунку A.
Коли ми знали, що нас цікавлять тільки пакети ICMP, то ми використовували фільтр для обрізання всіх пакетів, за винятком пакетів ICMP. В цьому випадку ми зробимо навпаки. Замість того, щоб прибирати всі протоколи, крім того, який нас цікавить, ми спочатку залишимо все протоколи включеними, а потім будемо прибирати окремі протоколи, у міру того, як будемо розуміти, що вони нас не цікавлять.
Якщо ви подивіться на Малюнок A. то побачите, що найчастіше використовується протокол TCP protocol. Протокол TCP / IP має схильність до фрагментації даних. Дуже часто, якщо ви бачите пакет TCP, то він є фрагментом чого-небудь, що залишилося від попереднього фрейму. Якщо я хочу отримати загальне уявлення того, що відбувається, то перше, що необхідно зробити, це відфільтрувати пакети TCP.
Ви повинні натиснути і іконку filter, щоб отримати доступ до діалогового вікна Display Filter (відобразити фільтр). Натисніть на рядок Protocol == Any (протокол - будь-який) і натисніть на кнопку Edit Expression (редагувати вираз). Виберіть протокол TCP, і натисніть на кнопку Disable (відключити). На жаль, в результаті помилки в поточній версії мережевого монітора (Network Monitor), все працює не так, як мало б працювати. Як обхідного шляху, я створив список протоколів, які використовувалися для захоплення. Потім я відключив усі протоколи, але включив ті протоколи, які були використані для захоплення. Після цього я можу відключити протоколи, якщо мені здається, що вони не належать до того, що мене цікавить. Наприклад, якщо ви порівняєте Малюнок E з Малюнком A. то зможете побачити, наскільки скоротився список після того, як я отфильтровал протокол TCP.
Малюнок E: Фільтрація протоколів, які не пов'язані з тим, що ви шукайте, дозволяє значно знизити кількість пакетів, які необхідно відсортувати
висновок
У цій статті я показав вам дві різних техніки для ізоляції необхідних вам пакетів. У частину 5, я продовжу свою розповідь і покажу вам, як отримувати дані з окремих захоплених фреймів.