有没有办法检测连接的套接字是否使用telnet?

时间:2017-03-21 01:25:41

标签: c# sockets telnet

我想知道连接的套接字是使用telnet还是使用其他协议。

需要知道什么?我是否需要检查网络流量?

还有第三方图书馆可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

有趣的问题。用户连接到" Telnet"的第一个提示。 socket是端口号,官方端口是23,但是服务器可以监听任何端口。

检测Telnet的最大问题是,并不总是严格的" Telnet"正在使用的协议(尽管存在一个),因为服务器可以选择不实现它并简单地说直接的vanilla ASCII。您基本上处理纯ASCII字符和(可选)控制通过普通旧TCP连接传输的字符。虽然大多数telnet服务器给出了一些大的提示,但是你需要检查流量才能确定。

网络流量中需要注意的事项是:

  1. 流量主要是ASCII字符,通常包含英文单词或linux程序名称。

  2. 控制字符。并不保证所有Telnet服务器(或其后面的终端)都能实现这些服务,但几乎总是如此。特别要查找CSI control codes,它会执行更改终端大小,颜色和光标位置等操作。

  3. 吸烟枪,Telnet Negotiation。通常,Telnet服务器在连接时发送这些命令,客户端也可以响应信息。它还处理一些其他功能,如终端调整大小和字符集,但同样,并非所有服务器都实现此功能。通过这些信息,您通常可以抓取客户端使用的客户端应用程序(例如Putty)。

  4. 在TCP连接中检测这些内容是发生Telnet会话的一个非常重要的迹象。