如何使用wireshark解码SQL Server流量?

时间:2010-01-07 20:54:27

标签: sql-server wireshark

我可以使用wireshark捕获数据包,但我无法将数据流解码为任何可理解的数据。这个错误表明,这可能在SQL Server 2005或更新版本中不可能...... https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3098,但Stack Overflow上的一些人声称这是回答这个问题的好方法:How to SQL Server traffic is encrypted?。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:9)

编辑(2017-05-02):Microsoft网络监视器 - 已由Microsoft Message Analyzer取代 - 它具有相同的用途。另请参阅本答案下方的评论或进一步了解如何使用它的答案!


原始答案:

微软本身还有另一个被低估的工具:'Microsoft Network Monitor'。基本上这与wireshark非常相似,除了一些特定的MS协议比wireshark本身具有更好的解析器和可视化支持,显然它只能在windows下运行;-)。

这个工具已经很老了,看起来已经废弃了(到目前为止还没有看到过更新版本),但仍然做得很好,定义新协议的语法非常整洁/有趣 - 所以这仍然具有很大的功能未来。 mnm 3.4 about dialog

分析示例 - 针对TDS过滤记录 - 因此其他数据包主要被丢弃:

Example Session for TDS (MSSQL)

对于sql server连接也是如此。 MNM甚至可以通过电线显示结果集 - 非常简洁。尽管如此,如上所述的wireshark足以验证加密并在线路上应用证书。意味着它可以完全理解TDS-Protocoll。

处理TLS

还有一个扩展(所谓的专家)'NmDecrypt'和正确的证书(包括私钥) - 它可以解密协议 - 对于使用TDS INSIDE TDS的TDS来说非常好 - 难怪 - 没有人真的实现了作为wireshark的完全支持的协议;)

到目前为止 - 关于MSSQL-Traffic - 或者更准确的TDS-Protocol这是迄今为止我遇到过的最好的工具。 Wireshark很酷 - 但在这种情况下,MNM“更好”。有phun! ;)

工具的链接:

答案 1 :(得分:5)

不是wireshark,但对我来说Microsoft Message Analyzer对此非常有用。

获取所有已发送的命令

  1. 开始新会话
  2. 实时跟踪添加为数据源
  3. 选择方案(我选择本地网络接口
  4. 输入会话过滤器表达式,例如 * address == 10.1.2.129 ,以仅过滤到sql server的流量。
  5. 点击开始
  6. 右键单击按摩表中的列标题,然后选择添加列...
  7. 添加 TDS> SQLBatch> SqlBatchPacketData> SQLTEXT
  8. 这应该会给你以下内容 enter image description here

    不幸的是,目前还没有实现自动滚动,但您可以按时间戳排序并在顶部弹出新查询。

答案 2 :(得分:2)

您提到的问题是如何证明流量已加密。

所以他们使用wireshark来表明你无法阅读它。

早期版本的SQL Server加密很弱,但我认为解密SQL Server 2005流量并不容易。

答案 3 :(得分:1)

Wireshark在理解协议(和层)时解码并显示捕获的数据。这意味着捕获的数据不会被编入。 如果数据是encripted(SSL,即),WS将只显示SSL握手和原始数据。