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

问题描述:

我想知道连接的套接字是否使用telnet或不同的协议。有没有办法检测连接的套接字是否使用telnet?

需要什么来了解这一点?我需要检查网络流量吗?

还有一个第三方库可以帮助我吗?

有趣的问题。用户连接到“Telnet”套接字的第一个提示是端口号,官方端口是23,但服务器可能正在监听任何端口。

与检测的Telnet最大的问题是,有没有经常使用严格的“远程登录”协议(尽管存在),因为服务器可以选择不执行它,简单的谈直香草ASCII。你基本上是在处理普通的ASCII字符和通过简单的旧TCP连接传输的(可选的)控制字符。尽管大多数telnet服务器给出了一些很大的提示,但您需要检查流量以确保它们正常。

寻找在网络业务中的事情是:

  1. 交通主要是ASCII字符,通常用在混合英文单词或Linux的程序名。

  2. 控制字符。这些不能保证被所有Telnet服务器(或者坐在它后面的终端)执行,但几乎总是如此。特别注意CSI control codes,它可以改变终端大小,颜色和光标位置。

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

在TCP连接中检测到任何这些东西都是Telnet会话正在发生的一个相当大的迹象。

+0

SMTP和Telnet会话看起来是否一样? Telnet是否如此灵活,许多已建立的协议和服务看起来像telnet? 。 –

+0

尽管SMTP包含明文,但它缺少丰富的CSI控制代码和任何Telnet协商消息。但是,在包含特定附件编码的电子邮件中可能会检测到误报。 你也可以寻找SMTP等协议的明文和明确它们过滤掉,但在一天结束的时候真的有可能只是一个原始的TCP连接。任何东西都可能看起来像什么。 – Ryan