确定 Wireshark 中非标准端口的协议解码

网络工程 通讯协议 线鲨
2021-07-30 12:26:51

我想知道在使用非标准 TCP 端口时是否有启发式插件、软件或其他过程来确定协议。

Wireshark 将根据众所周知的端口号对数据包进行解码。例如,TCP 80 将被解码为 HTTP。有一定程度的灵活性,例如能够将 TCP 8080 流量定义为 HTTP 并进行相应的解码。我的问题围绕解码非标准端口号。如果协议已知,您可以使用“解码为...”功能来执行此操作。

下面是与服务器侦听 TCP 4443 的会话,这是官方的个人区域解决方案 P/L 远程邮件检查协议,没有解码,我很确定它不是:

TCP解码

我根据 443 和 4443 的相似性做了一个疯狂的猜测,并做了一个“解码为...”SSL 并得到了奖励:

在此处输入图片说明

这有效,但是可能需要大量猜测/反复试验。由于我可以分析有效负载并很可能找到有关协议的线索,是否有一种自动化方法可以在 Wireshark 或其他工具中执行相同操作?

2个回答

您需要执行 DPI(深度包检测)的软件。一些公司为某些协议制定了标准规则,其中在 TCP 或 UDP 数据包或某些序列中,它可以识别正在运行的协议或应用程序。

此类应用实现了对数据包的第7层分析,将数据包内容与庞大的规则数据库进行匹配。

就像@ojs 所说的那样,您可以尝试ntop使用nDPI,对其进行测试并查看结果。

Cisco 也有自己的数据库,可以与 OPNManager 一起使用,但需要许可证。

有很多方法可以做到

  1. 使用netstat 并且是CMD 中的扩展它会给你你想要的一切。

图片中的例子

在此处输入图片说明

在此处输入图片说明

netstate 命令的好教程NETSTATE COM

我知道这是一种非常困难的方法,但它是免费的

  1. SolarWinds Response Time Viewer for Wireshark
    这是您问题的逆向工程。它将列出您会话中使用的应用程序以及所有相关详细信息

西南

在此处输入图片说明

  1. 其他明智的,你将需要监视工具包括 DPI 功能(即 solarwinds , manageenginee )