如何检测服务器上是否正在运行 telnet?

如何检测服务器上是否正在运行 telnet?

我有一个数字示波器,可以LAN连接。我想检查是否telnet在范围上运行(手册没有这么说,但手册没有提供有关 LAN 端口的任何有用信息)。

我尝试使用 netcat 和 telnet 进行连接(并成功)。该telnet命令确认连接,但我只能看到到 TCP 端口的连接(使用wireshark)。

根据我对该telnet协议的了解,从外部看,它看起来像是一个有人值守的 TCP 端口,并且配置协商命令是可选的,因此如果没有回复,发送这些命令就不会令人信服。

编辑:如果有人感兴趣,范围是 Owon SDS7102E。如果您对 LAN 连接感兴趣,请不要购买该示波器。该文档基本上不存在(它说“LAN 与 USB 相同”)。制造商似乎有兴趣提供帮助(至少回答了),但还没有真正的解决方案。

答案1

您可以通过在文件中添加 3 行来调试客户端上的 telnet 连接~/.telnetrc

scope
 set netdata
 set options

其中scope是作用域的主机名,必须位于第 1 列,其他 2 行必须缩进 1 个空格。

当您运行 telnet 时,它现在应该显示读取和写入的数据以及发送和接收的命令(如果有)。

您可以发送显式 telnet 协商命令来查看您的范围是否回复。请注意,当您将设置更改为遥控器认为已经存在的值时,它将不会回复,因此您可能需要尝试命令及其相反的命令。例如,(键入control-]进入命令模式)发送“你在吗?”:

telnet> send ayt
> 0x0   fff6
< 0x0   74643a207265637620494143204159540d0a0d0a5b686f6d65203a207965735d
< 0x20  0d0a
td: recv IAC AYT

[scope : yes]

和数据>线<是 的结果set netdata。谈判路线td:是 的结果set options。 (如果您没有看到它们,则可能您的 rc 文件被忽略,因此请在命令模式下显式键入它们。)

将 echo 设置为打开,然后关闭并再次打开:

telnet> send do echo

telnet> send dont echo
> 0x0   fffe01
< 0x0   74643a207265637620646f6e74204543484f0d0afffc0174643a2073656e6420
< 0x20  776f6e74204543484f0d0a
td: recv dont ECHO
td: send wont ECHO

telnet> send do echo
> 0x0   fffd01
< 0x0   74643a207265637620646f204543484f0d0afffb0174643a2073656e64207769
< 0x20  6c6c204543484f0d0a
td: recv do ECHO
td: send will ECHO

答案2

您可以连接到任何telnet 端口,即使其后面没有 telnet 服务器。如果端口期望客户端首先发送某些内容,那么您在连接时将看不到任何内容,而这正是您所遇到的情况。

因此,可能有一个 telnet 服务器正在运行并等待输入,可能还有其他东西正在运行,或者可能是一个防火墙功能,只是假装您可以连接到它。单独来看telnet很难说清楚。

如果您想找出未知设备上正在运行哪些可能的服务,我建议使用 进行探测nmap

相关内容