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

Pet*_*ete 19 sql-server wireshark

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

小智 10

编辑(2017-05-02):Microsoft网络监视器 - 已被Microsoft消息分析器取代- 它具有相同的用途.另请参阅此答案下方的评论或进一步了解如何使用它!


原答案:

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

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

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

TDS的示例会话(MSSQL)

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

处理TLS

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

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

工具链接:

  • MS网络监视器已被[Microsoft消息分析器](https://www.microsoft.com/en-us/download/details.aspx?id=44226)取代,它确实很好地解密了TDS内的TLS(NMDecrypt isn)不需要). (8认同)

Ale*_*orb 7

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

获取所有已发送的命令

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

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

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


Shi*_*iji 2

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

所以他们使用wireshark来显示你无法读取它。

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

  • 但问题是,他们如何证明它是加密的?您需要解码 TDS 流,但如何在wireshark 中执行此操作并不明显(至少对我来说)。 (2认同)