¿Puede un servidor Telnet detectar el cliente que se utiliza a través del protocolo?

Respuestas:

14

No hay User-Agent, pero existen algunas opciones de protocolo Telnet para enviar información del cliente:

  • TERMINAL TYPE- muestra el tipo de terminal utilizado (por ejemplo, xterm, urxvt, screen-256color ...) Realmente no puede deshacerse de esto sin romper las cosas. Lo mismo ocurre con lo NAWSque informa el tamaño de la ventana (columnas × filas).

  • OLD-ENVIRONy NEW-ENVIRON- puede revelar algunas variables de entorno específicas; algunos clientes también revelan su FQDN en una variable $ DISPLAY falsa. Enviar su configuración regional del sistema configurada ($ LANG, $ LC_ *) o zona horaria ($ TZ) tampoco es infrecuente.

  • XDISPLOC - similar a lo anterior, algunos clientes envían su FQDN como la ubicación de visualización X11.

  • Si alguna de las funciones de autenticación está habilitada, puede revelar su nombre de usuario del sistema operativo.

  • Finalmente, el conjunto completo de opciones reconocidas varía entre implementaciones y puede usarse como una huella digital de estilo Panopticlick.

escarcha $ echo $ PANTALLA
: 0

helada $ telnet
telnet> establecer opciones
Mostrará el procesamiento de opciones.
telnet> abrir m-net.arbornet.org
Intentando 162.202.67.157 ...
Conectado a m-net.arbornet.org.
El carácter de escape es '^]'.
ENVIADO SUPRIMIR IR ADELANTE
ENVIADO SERÁ TIPO DE TERMINAL
ENVIADO VOLVERÁ
ENVIADO SERÁ TSPEED
ENVIADO FLUIRÁ
ENVIADO SERÁ LINEMODE
ENVIADO SERÁ NUEVO ENTORNO
ENVIADO HACER ESTADO
ENVIADO SERÁ XDISPLOC
RCVD HACE AUTENTICACIÓN
AUTENTICACIÓN ENVIADA
RCVD SUPRIMIRÁ ADELANTE
RCVD DO TIPO TERMINAL
RCVD DO NAWS
SENT IAC SB NAWS 0 95 (95) 0 46 (46)
RCVD DO TSPEED
RCVD DO LFLOW
RCVD DO LINEMODE
ENVIADO IAC SB LINEMODE SLC SYNCH NOSUPPORT 0; IP VARIABLE | FLUSHIN | FLUSHOUT 3; AO VARIABLE 15; AYT NOSUPPORT 0; ABORTAR VARIABLE | FLUSHIN | FLUSHOUT 28; EOF VARIABLE 4; SUSP VARIABLE | FLUSHIN 26; VARIABLE CE 127; EL VARIABLE 21; EW VARIABLE 23; RP VARIABLE 18; PRÓXIMA VARIABLE 22; XON VARIABLE 17; XOFF VARIABLE 19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0;
ENVIADO SUPRIMIR IR ADELANTE
RCVD DO NUEVO ENTORNO
RCVD ESTARÁ
RCVD DO XDISPLOC
RCVD ENCRIPTARÁ
ENVIADO NO ENCRIPTAR
RCVD DO ENVIRON 
ANTIGUO ENVIADO SIN ENTORNO ANTIGUO
RCVD IAC SB ENVÍO DE VELOCIDAD DE TERMINAL
LA VELOCIDAD DE TERMINAL SB ENVIADA ES 38400,38400
RCVD IAC SB X-DISPLAY-UBICACIÓN ENVIAR
ENVIADO IAC SB X-DISPLAY-LOCATION ES "frost.nullroute.eu.org:0"
RCVD IAC SB ENVÍO DE NUEVO ENTORNO 
ENVIADO IAC SB NUEVO ENTORNO ES VAR "DISPLAY" VALOR "frost.nullroute.eu.org:0"
RCVD IAC SB ENVÍO TIPO TERMINAL
ENVIADO EL TIPO DE TERMINAL SB IAC ES "XTERM-256COLOR"
RCVD DO ECHO
ENVIADO SIN ECHO
RCVD ECHO
ENVIADO HACER ECHO
RCVD IAC SB CONTROL TOGGLE-FLOW-OFF
RCVD IAC SB TOGGLE-FLOW-CONTROL RESTART-XON
RCVD NO LINEMODE
ENVIADO WONT LINEMODE
RCVD IAC SB LINEMODE SLC IP VARIABLE | ACK | FLUSHIN | FLUSHOUT 3; AO VARIABLE | ACK 15; ABORTAR VARIABLE | ACK | FLUSHIN | FLUSHOUT 28; EOF VARIABLE | ACK 4; SUSP VARIABLE | ACK | FLUSHIN 26; VARIABLE CE | ACK 127; EL VARIABLE | ACK 21; EW VARIABLE | ACK 23; RP VARIABLE | ACK 18; PRÓXIMO VARIABLE | ACK 22; XON VARIABLE | ACK 17; XOFF VARIABLE | ACK 19;

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

iniciar sesión: 
usuario1686
fuente
2
Excelente respuesta. cuando leí man telnetel único error enumerado es: The source code is not comprehensible. Curioso si alguien ha escrito un cliente actualizado en otra cosa que no sea C.
Thufir
3
Eso no sería de mucha utilidad, ya que el protocolo en sí también está desactualizado, al igual que la mayoría de los servidores ... SSHv2 es el reemplazo moderno. // también, tenga en cuenta que hay varios clientes diferentes llamados "telnet" - inetutils-telnet & netkit-telnet, entre otros.
user1686
1
Sin embargo, en una nota relacionada, SSH hace tener una cadena de agente de usuario.
user1686
1
Sin embargo, @grawity telnet todavía tiene mucho uso, por ejemplo, para diagnósticos. Se está volviendo un poco menos común gracias a la proliferación de TLS (a favor de, por ejemplo, OpenSSL -connect), pero todavía hay muchos usos válidos para una conexión de texto razonablemente simple, tal como lo hace telnet cuando se invoca contra un servidor que no es telnet. Por supuesto, su punto sigue siendo que telnet no es simplemente software, es un protocolo; es un poco como llamar a un navegador web HTTP.
un CVn
1
@ MichaelKjörling Pero cuando el comando telnet se usa para depurar la comunicación de red, en realidad no se trata del protocolo telnet. Con el cliente telnet que acabo de probar, simplemente diciéndole a qué número de puerto conectarse se producirá un cambio de comportamiento.
Kasperd