понедельник, 20 июня 2011 г.

“Нюхаем” сеть без сниффера…

MC910216362[1]Частенько при решении разнообразных проблем приходится анализировать сетевой трафик. Обычно это требует установки какой-нибудь программы типа NetMon, WireShark или чего-нибудь еще в том же стиле. И все бы ничего, когда бы это было всегда возможно и эффективно. А что если “на том конце” какой-нибудь “продажный менеджер”, который в упор не желает этим заниматься? Или политика безопасности запрещает ставить дополнительное ПО на сервер? Да и вообще для одного раза ставить какую-то софтину – не очень многим нравится такая идея.
В общем, как все уже догадались, решение есть. Я тут недавно прочитал в одном из блогов среди других не менее замечательных вещей (этот блог входит в топ-5 моих любимых, если вообще не самый интересный для меня, кстати) совершенно чумовую статью, в которой есть решение для такой проблемы.
В кратце, Вам более не нужно ставить, скажем, NetMon на W7/2008 R2, чтобы захватить трафик. Это можно сделать с помощью встроенной утилиты, а именно netsh. Правда, Вам все еще понадобятся
1) права локального администратора на исследуемом компьютере
2) NetMon, чтобы проанализировать полученные данные, после того, как их сбор будет завершен. Но его Вы можете использовать на любом другом компьютере. 
Как это работает? Просто превосходно ;)
1) Начинаем сбор:
netsh trace start capture=yes tracefile=<PathToFile>
image
2) Потом воспроизводим проблему. Я запустил свой chrome (слишком много вкладок открыто в IE ;) ) и сходил на сайт www.microsoft.com.
3) Останавливаем:
netsh trace stop
image
Обратите внимание, что трассировка создала два файла: .etl and .cab. ETL это как раз тот, в котором записаны наши пакетики. Второй… Это то, что даже добавляет “чудесности” этому методу, но мы обсудим его в следующей статье. 
4) Открываем наш файл на любом компьютере с помощью Network Monitor:
image
Ой… Что это с нашими парсерами? Если взглянуть поближе, то мы увидим следующее: 
Process: Windows stub parser: Requires full Common parsers. See the "How Do I Change Parser Set Options(Version 3.3 or before) or Configure Parser Profile (Version 3.4)" help topic for tips on loading these parser sets.
Что ж, очевидно, некоторые парсеры не подключены. Давайте это сделаем, благо, это легко (да, я использую NetMon 3.4). Идем в tools->options
image
Смотрим на вкладку Parser Profiles:
image
И включаем профиль Windows нажав на нем правой кнопкой и кликнув опцию Set As Active:
image
И вот теперь все кристально ясно:
image
5) Ну итеперь делаем все, что нам нужно с помощью NetMon, например, посмотрим на DNS-запрос от имени Chrome:
image
Ну не здорово ли? Точно здорово, потому что мы еще не смотрели на .cab-файл, который содержит тонны полезной информации… Но для этого я отвел следующую статью.

4 комментария:

Sergey комментирует...

"Это можно сделать с помощью встроенной утилиты, а именно netmon"
netsh, наверное

Alexander Trofimov комментирует...

Спасибо большое! Поправил.

Анонимный комментирует...

Хочу еще ссылкой поделиться http://blogs.technet.com/b/nettracer/archive/2010/08/02/have-you-ever-wanted-to-see-which-windows-process-sends-a-certain-packet-out-to-network.aspx
Четвертый способ тоже интересный.

Alexander Trofimov комментирует...

Спасибо, принято =)