如何使用Wireshark解码SQLServer通信量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我可以使用Wireshark捕获数据包,但我无法将流解码成任何可理解的内容。此错误表明,在SQLServer 2005或更高版本中,这可能是不可能的。

提问于
用户回答回答于

不是Wireshark,而是对我来说Microsoft消息分析器对此效果很好。

获取所有发送的命令

  1. 开始一个新的会话
  2. 活迹AS作为数据源
  3. 选择场景(我选择了本地网络接口)
  4. 输入会话筛选表达式,如*地址=10.1.2.129只过滤到SQL服务器的通信量。
  5. 单击“开始”
  6. 右键单击按摩表中的列标题并选择添加列..。
  7. TDS>SQLBatch>SqlBatchPacketData>SQLText

这应该会给提供如下内容

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

用户回答回答于

MicrosoftNetworkMonitor-已被Microsoft MessageAnalyzer所取代--其用途相同。也请参阅下面的评论,这个答案或更低的答案如何使用它!

原文:

还有一种来自微软自身的被低估的工具:“MicrosoftNetworkMonitor”。基本上,这与Wireshark非常相似,但一些特定的MS协议比Wireshark本身具有更好的解析器和可视化支持,显然它只能在Windows下运行;-)。

这个工具已经很老了,看起来已经被抛弃了(到目前为止还没有看到一个更新的版本),但是它仍然做得很好,定义新协议的语法也很整洁/有趣--所以这对于未来仍然有很大的威力。

分析示例-TDS的记录被过滤-因此其他数据包大部分被丢弃:

对于SQL服务器连接也是如此。MNM甚至可以将结果集可视化,使其通过导线--相当整洁。尽管如此,如上所述,Wireshark将足以在线路上验证加密和应用证书。意味着它可以完全理解TDS协议。

装卸TLS

还有一个扩展(所谓的专家)‘NmDecUpt’和正确的证书(包括私钥)--可以解密原型--对于在TDS内部使用TLS的TDS来说相当不错--难怪--还没有人真正实现它作为Wireshark的一个完全支持的协议;)

到目前为止,关于MSSQL-流量-或者说更严格的TDS协议,这是我迄今遇到的最好的工具。Wireshark很酷,但在这种情况下,MNM是“更好”的。有!)

工具链接:

  • Microsoft网络监视器
  • NMDecUpt

扫码关注云+社区