В предыдущей части этой статьи я показал вам, как отфильтровывать данные, перехваченные с помощью сетевого монитора (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, я продолжу свой рассказ и покажу вам, как извлекать данные из отдельных захваченных фреймов.
www.windowsnetworking.com