Я могу захватить пакеты с помощью wirehark, но я не могу декодировать поток во что-нибудь понятное. Эта ошибка говорит о том, что, возможно, это невозможно в SQL Server 2005 или новее... https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3098, но несколько человек из Qaru заявили это был хороший метод в ответах на этот вопрос: Как трафик SQL Server зашифрован?. Любая помощь была оценена.
Как я могу декодировать трафик SQL Server с помощью wirehark?
Ответ 1
Изменить (2017-05-02): Microsoft Network Monitor - был заменен Microsoft Message Analyzer - который выполняет те же самые задачи. См. Также комментарий ниже этого ответа или ответ далее о том, как его использовать!
Оригинальный ответ:
Существует еще один очень недооцененный инструмент от самой Microsoft: "Microsoft Network Monitor". В основном это очень похоже на wirehark, за исключением того, что некоторые конкретные протоколы MS имеют лучшую поддержку синтаксического анализа и визуализации, чем сама wirehark, и, очевидно, она будет работать только под окнами;-).
Инструмент довольно старый и выглядит заброшенным (до сих пор он не видел более новой версии), но по-прежнему выполняет хорошую работу, и грамматика для определения новых протоколов довольно аккуратная/интересная, поэтому у этого все еще есть много возможностей для будущее.
Пример анализа - запись фильтруется для TDS - поэтому другие пакеты в основном удаляются:
Это также верно для соединений сервера sql. MNM может даже визуализировать результаты, идущие по проводу - довольно аккуратно. Тем не менее wirehark, как упоминалось выше, будет достаточным для проверки шифрования и применения сертификатов на самом проводе. Значит, он полностью понимает TDS-Protocoll.
Обработка TLS
Также с расширением (так называемые эксперты) "NmDecrypt" и правильными сертификатами (включая закрытые ключи) - можно расшифровать протоколлы - довольно приятно для TDS, который использует TLS INSIDE TDS - неудивительно - никто не имеет действительно реализовано, что все же в качестве полностью поддерживаемого протоколла для wirehark;)
До сих пор - относительно MSSQL-трафика - или чтобы быть более точным TDS-протоколом, это лучший инструмент, с которым я сталкивался до сих пор. Wireshark классный, но в этом случае MNM "лучше". Попробуйте!;)
Ссылки для инструментов:
- Сетевой монитор Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=4865
- NMDecrypt: http://nmdecrypt.codeplex.com/releases/view/85581
Ответ 2
Не wirehark, но для меня Microsoft Message Analyzer отлично справился с этим.
Чтобы получить все отправленные команды
- Запустить новый сеанс
- Добавить Live Trace как источник данных
- Выберите сценарий (я выбрал локальные сетевые интерфейсы)
- Введите выражение фильтра сеанса типа * address == 10.1.2.129, чтобы фильтровать только трафик на ваш сервер sql.
- Нажмите кнопку "Пуск"
- Щелкните правой кнопкой мыши заголовок столбца в таблице массажа и выберите Добавить столбцы...
- Добавить TDS > SQLBatch > SqlBatchPacketData > SQLText
Это должно дать вам что-то вроде следующего
К сожалению, на данный момент не выполняется автоматическая прокрутка, но вы можете сортировать по метке времени и появляться новые запросы вверху.
Ответ 3
Вопрос, на который вы ссылаетесь, заключается в том, как доказать, что трафик зашифрован.
Таким образом, они использовали wirehark, чтобы показать, что вы не могли его прочитать.
Шифрование было слабым на более ранних версиях SQL-сервера, но я не думаю, что легко расшифровывать трафик SQL Server 2005.
Ответ 4
Wireshark декодирует и показывает полученные данные при понимании протокола (и слоя). Это означает, что захваченные данные не указаны. Если данные указаны (SSL, т.е.), WS будет показывать только сообщения SSL и необработанные данные.