20

我可以使用wireshark 捕获数据包,但我无法将流解码为任何可理解的内容。

WireShark 错误数据库中的此项表明,这可能在 SQL Server 2005 或更高版本中是不可能的。但是 Stack Overflow 上的几个人声称这是回答这个问题的好方法:

如何验证 SQL Server 流量是否加密?

任何帮助表示赞赏。

4

4 回答 4

10

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

注意: Microsoft Message Analyzer已于 2019 年末弃用,不再提供下载。

原始答案

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

该工具已经很老了,看起来已经被废弃了(到目前为止还没有看到更新的版本),但仍然做得很好,并且用于定义新协议的语法非常简洁/有趣 - 所以这对于未来仍然具有很大的影响力。 mnm 3.4 关于对话框

分析示例 - 为 TDS 过滤记录 - 所以其他数据包大多被丢弃:

TDS (MSSQL) 的示例会话

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

处理 TLS

还带有扩展名(所谓的专家)“NmDecrypt”和正确的证书(包括私钥) - 可以解密协议 - 对于使用 TDS 内部的 TLS 的 TDS 来说非常好 - 难怪 - 没有人真正实现这一点作为wireshark 的完全支持的协议;)

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

工具链接:

于 2014-06-16T14:55:31.503 回答
7

不是wireshark,但对我来说,Microsoft Message Analyzer非常适合。

获取所有发送的命令

  1. 开始一个新的会话
  2. 添加实时跟踪作为数据源
  3. 选择场景(我选择了本地网络接口
  4. 输入像*address == 10.1.2.129这样的会话过滤器表达式以仅过滤到您的 sql 服务器的流量。
  5. 点击开始
  6. 右键单击按摩表中的列标题并选择添加列...
  7. 添加TDS > SQLBatch > SqlBatchPacketData > SQLText

这应该给你类似以下的东西 在此处输入图像描述

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

于 2016-09-29T08:19:16.683 回答
2

您所指的问题是如何证明流量是加密的。

所以他们用wireshark来表明你看不懂。

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

于 2010-01-07T21:13:01.847 回答
1

Wireshark 在了解协议(和层)时解码并向您显示捕获的数据。这意味着捕获的数据没有被加密。如果数据是加密的(SSL,即),WS 将只显示 SSL 握手和原始数据。

于 2012-05-23T20:42:05.140 回答