Telnet服务器可以通过协议检测正在使用的客户端吗?


Answers:


14

没有用户代理,但存在一些用于发送客户端信息的Telnet协议选项:

  • TERMINAL TYPE–显示使用的终端类型(例如xterm,urxvt,screen-256color ...)。您不能在不破坏事物的情况下真正摆脱它。这同样适用于NAWS该报告的窗口大小(列×行)。

  • OLD-ENVIRONNEW-ENVIRON-可以揭示一些特定的环境变量; 一些客户还会在伪造的$ DISPLAY变量中显示其FQDN。发送配置的系统区域设置($ LANG,$ LC_ *)或时区($ TZ)也很常见。

  • XDISPLOC –与上述类似,某些客户端将您的FQDN发送为X11显示位置。

  • 如果启用了任何身份验证功能,则它们可以显示您的操作系统用户名。

  • 最后,整个实现过程中公认的选项集会有所不同,并且可以用作Panopticlick样式的粗略指纹。

frost $ echo $ DISPLAY
0:

霜$ telnet
telnet> 设置选项
将显示选项处理。
telnet>打开m-net.arbornet.org
正在尝试162.202.67.157 ...
已连接到m-net.arbornet.org。
转义字符为'^]'。
发送禁止继续前进
发送的终端类型
寄送会NA
已发送速度
发送将会低
发送意愿线模式
SENT WILL NEW-ENVIRON
发送状态
发送将XDISPLOC
RCVD做认证
寄件授权书
RCVD将阻止前进
RCVD DO端子类型
RCVD DO NAWS
已发送IAC SB NAWS 0 95(95)0 46(46)
RCVD DO TSPEED
RCVD做低频
RCVD DO LINEMODE
发送IAC SB LINEMODE SLC SYNCH NOSUPPORT 0; IP VARIABLE | FLUSHIN | FLUSHOUT 3; AO变量15; AYT NOSUPPORT 0; ABORT VARIABLE | FLUSHIN | FLUSHOUT 28; EOF变量4; SUSP VARIABLE | FLUSHIN 26; EC变量127; EL VARIABLE 21; 电子战变量23; RP变量18; LNEXT变量22; XON变量17; XOFF变量19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0;
发送禁止继续前进
RCVD做新环境
RCVD会状态
RCVD DO XDISPLOC
RCVD将加密
发送不加密
RCVD做旧环境发送
邮件旧环境
RCVD IAC SB终端发送
发送的IAC SB终端速度为38400,38400
RCVD IAC SB X-DISPLAY-LOCATION发送
发送的IAC SB X-DISPLAY-LOCATION是“ frost.nullroute.eu.org:0”
RCVD IAC SB新环境发送 
已发送IAC SB新环境IS变量“ DISPLAY”值“ frost.nullroute.eu.org:0”
RCVD IAC SB终端类型发送
发送的IAC SB终端类型为“ XTERM-256COLOR”
RCVD DO ECHO
发送回音
RCVD将回声
发送回声
RCVD IAC SB切换流量控制关闭
RCVD IAC SB触发流控制重启-XON
RCVD点线模式
发送WONT LINEMODE
RCVD IAC SB LINEMODE SLC IP变量| ACK | FLUSHIN | FLUSHOUT 3; AO VARIABLE | ACK 15; 中止变量| ACK | FLUSHIN | FLUSHOUT 28; EOF VARIABLE | ACK 4; SUSP VARIABLE | ACK | FLUSHIN 26; EC VARIABLE | ACK 127; EL VARIABLE | ACK 21; EW VARIABLE | ACK 23; RP VARIABLE | ACK 18; LNEXT VARIABLE | ACK 22; XON VARIABLE | ACK 17; XOFF VARIABLE | ACK 19;

FreeBSD / i386(m-net.arbornet.org)(pts / 5)

登录: 

2
极好的答案。当我读到man telnet的时候,唯一列出的错误是: The source code is not comprehensible. 好奇是否有人用C以外的任何方式编写了最新的客户端
。– Thufir

3
这不会有太大用处,因为协议本身以及大多数服务器也已过时了……SSHv2是现代的替代品。//另外,请注意,有几个称为“ telnet”的不同客户端– inetutils-telnet和netkit-telnet等。
user1686 '16

1
不过,在相关说明中,SSH 确实具有用户代理字符串。
user1686 '16

1
但是,@ grawity telnet仍然有很多用途,例如用于诊断。由于TLS的普及(例如,使用OpenSSL -connect),它变得越来越不普遍了,但是对于基本的纯文本连接,仍然有许多有效的用法,就像telnet在针对非telnet服务器调用时所提供的那样。当然,您的观点仍然是telnet不仅仅是软件,它是协议;有点像调用Web浏览器HTTP。
CVn

1
@MichaelKjörling但是,当telnet命令用于调试网络通信时,它实际上并不是在说telnet协议。我刚刚使用telnet客户端进行了测试,只是告诉它要连接到哪个端口号将导致其更改行为。
kasperd '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.