Как я могу декодировать трафик SQL Server с помощью wireshark? - PullRequest
19 голосов
/ 07 января 2010

Я могу перехватить пакеты, используя wireshark, но я не могу декодировать поток во что-нибудь вразумительное. Эта ошибка говорит о том, что, возможно, это невозможно в SQL Server 2005 или новее ... https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3098,, но несколько человек в Stack Overflow заявили, что это хороший метод в ответах на этот вопрос: Как использовать SQL Server трафик зашифрован? . Любая помощь приветствуется.

Ответы [ 4 ]

9 голосов
/ 16 июня 2014

Редактировать (2017-05-02): Microsoft Network Monitor - был заменен на Microsoft Message Analyzer -, который служит той же цели. Смотрите также комментарий ниже этого ответа или ответ ниже, чтобы узнать, как его использовать!


Оригинальный ответ:

Существует еще один сильно недооцененный инструмент от самой Microsoft: «Microsoft Network Monitor». По сути, это очень похоже на wireshark за исключением того, что некоторые конкретные протоколы MS имеют лучшую поддержку синтаксического анализатора и визуализации, чем сам wireshark, и, очевидно, он будет работать только под окнами ;-).

Инструмент довольно старый и выглядит заброшенным (пока еще не видел более новую версию), но все еще хорошо выполняет свою работу, и грамматика для определения новых протоколов довольно аккуратная / интересная - так что она все еще обладает большой силой для будущее. mnm 3.4 about dialog

Пример анализа - запись фильтруется для TDS - поэтому остальные пакеты в основном отбрасываются:

Example Session for TDS (MSSQL)

Это также верно для соединений с сервером sql. MNM может даже визуализировать наборы результатов, идущие по проводам - ​​довольно аккуратно. Тем не менее, Wireshark, как упомянуто выше, будет достаточно для проверки шифрования и применения сертификатов на самом проводе. Значит, он может полностью понимать TDS-Protocoll.

Обработка TLS

Также с расширением (так называемыми экспертами) 'NmDecrypt' и соответствующими сертификатами (включая закрытые ключи) - можно расшифровывать протоколлы - что неплохо для TDS, который использует TLS ВНУТРИ TDS - неудивительно - никто этого не сделал реализовал это как полностью поддерживаемый протокол для wireshark;)

Пока что - в отношении MSSQL-Traffic - или, если быть более точным, TDS-Protocol, это лучший инструмент, с которым я когда-либо сталкивался. Wireshark - это круто, но в этом случае MNM «лучше». Имейте phun! ;)

Ссылки на инструменты:

5 голосов
/ 29 сентября 2016

Не wireshark, но для меня Microsoft Message Analyzer отлично сработал.

Чтобы получить все отправленные команды

  1. Начать новый сеанс
  2. Добавить Live Trace как источник данных
  3. Выберите сценарий (я выбрал Локальные сетевые интерфейсы )
  4. Введите выражение фильтра сеанса, например * address == 10.1.2.129 , чтобы отфильтровать только трафик на ваш сервер sql.
  5. Нажмите Пуск
  6. Щелкните правой кнопкой мыши заголовок столбца в массажной таблице и выберите Добавить столбцы ...
  7. Добавить TDS> SQLBatch> SqlBatchPacketData> SQLText

Это должно дать вам что-то вроде следующего enter image description here

К сожалению, в настоящее время автопрокрутка не реализована, но вы можете отсортировать по отметке времени, и новые запросы будут появляться вверху.

2 голосов
/ 08 января 2010

Вопрос, на который вы ссылаетесь, заключается в том, как доказать, что трафик зашифрован.

Так что они использовали wireshark, чтобы показать, что вы не можете прочитать его.

На предыдущих версиях SQL-сервера шифрование было слабым, но я не думаю, что легко расшифровать трафик SQL Server 2005.

1 голос
/ 24 мая 2012

Wireshark декодирует и показывает вам захваченные данные, когда понимает протокол (и уровень). Это означает, что захваченные данные не записываются. Если данные зашифрованы (т. Е. SSL), WS покажет только рукопожатия SSL и необработанные данные.

...