Czy serwer Telnet może wykryć, że klient jest używany przez protokół?

9

Podczas gdy przeglądarki internetowe przesyłają między innymi User-Agentciąg znaków, czy protokół Telnet ma podobną metodę określania czegokolwiek w łączącym się z nim kliencie? OS? Konkretny klient Telnet? Itp.

Thufir
źródło

Odpowiedzi:

14

Nie ma użytkownika użytkownika, ale istnieje kilka opcji protokołu Telnet do wysyłania informacji o kliencie:

  • TERMINAL TYPE- pokazuje użyty typ terminala (np. Xterm, urxvt, screen-256color ...) Naprawdę nie możesz się tego pozbyć bez zepsucia rzeczy. To samo dotyczy NAWSraportów o rozmiarze okna (kolumny × wiersze).

  • OLD-ENVIRONoraz NEW-ENVIRON- może ujawnić pewne określone zmienne środowiskowe; niektórzy klienci ujawniają również swoją nazwę FQDN w fałszywej zmiennej $ DISPLAY. Wysyłanie skonfigurowanych ustawień regionalnych systemu ($ LANG, $ LC_ *) lub strefy czasowej ($ TZ) również nie jest rzadkie.

  • XDISPLOC - podobnie jak powyżej, niektórzy klienci wysyłają twoją nazwę FQDN jako lokalizację wyświetlania X11.

  • Jeśli którakolwiek z funkcji uwierzytelniania jest włączona, mogą ujawnić nazwę użytkownika systemu operacyjnego.

  • Wreszcie cały zestaw rozpoznawanych opcji różni się w zależności od implementacji i może być używany jako szorstki odcisk palca w stylu Panopticlick.

mróz $ echo $ WYŚWIETLACZ
: 0

frost $ telnet
telnet> ustaw opcje
Pokaże przetwarzanie opcji.
telnet> otwórz m-net.arbornet.org
Próbuję 162.202.67.157 ...
Połączony z m-net.arbornet.org.
Znakiem ucieczki jest „^]”.
SENT DO SUPPRESS GO AHEAD
WYSŁANY BĘDZIE TYPU TERMINALU
WYSŁANE BĘDZIE NAWS
WYSŁANE BĘDĄ TSPEED
WYSŁANY BĘDZIE LFLOW
WYSŁANY BĘDZIE LINEMODE
WYSŁANE ZOSTANĄ NOWYCH ŚRODOWISKA
STAN WYSŁANEGO
WYSŁANE ZOSTANĄ XDISPLOC
RCVD DO AUTORYZACJI
WYSŁANO AUTORYZACJI
RCVD BĘDZIE TŁUMACZYĆ SIĘ
RCVD DO TYPU TERMINALOWEGO
RCVD DO NAWS
SENT IAC SB NAWS 0 95 (95) 0 46 (46)
RCVD DO TSPEED
RCVD DO LFLOW
RCVD DO LINEMODE
SENT IAC SB LINEMODE SLC SYNCH NOSUPPORT 0; ZMIENNA IP | FLUSHIN | FLUSHOUT 3; AO ZMIENNA 15; AYT NOSUPPORT 0; SKRÓCONA ZMIENNA | FLUSHIN | FLUSHOUT 28; EOF VARIABLE 4; ZMIENNA SUSP | FLUSHIN 26; ZMIENNA WE 127; EL VARIABLE 21; EW ZMIENNA 23; RP ZMIENNA 18; ZMIENNA LNEX 22; ZMIENNA XON 17; ZMIENNA XOFF 19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0;
SENT DO SUPPRESS GO AHEAD
RCVD DO NEW-ENVIRON
STATUS RCVD
RCVD DO XDISPLOC
RCVD ZASZYNUJE
WYSŁANO SZYFROWANIA
RCVD DO OLD-ENVIRON 
WYSŁANY WONT OLD-ENVIRON
RCVD IAC SB WYŚLIJ SZYBKOŚĆ TERMINALA
WYSŁANA PRĘDKOŚĆ TERMINALA IAC SB TO 38400,38400
RCVD IAC SB X-DISPLAY-LOKALIZACJA WYŚLIJ
WYSŁANA IAC SB X-DISPLAY-LOCATION IS „frost.nullroute.eu.org:0”
RCVD IAC SB NEW-ENVIRON SEND 
SENT IAC SB NEW-ENVIRON TO VAR „DISPLAY” VALUE ”frost.nullroute.eu.org:0”
RCVD IAC SB TYP TERMINALU WYŚLIJ
WYSŁANY IAC SB TYP ZACISKU JEST „XTERM-256COLOR”
RCVD DO ECHO
SENT WONT ECHO
RCVD BĘDZIE ECHO
SENT DO ECHO
RCVD IAC SB KONTROLA PRZEŁĄCZANIA PRZEŁĄCZANIA
RCVD IAC SB KONTROLA PRZEŁĄCZANIA RESTART-XON
RCVD DONT LINEMODE
SENT WONT LINEMODE
RCVD IAC SB LINEMODE SLC IP VARIABLE | ACK | FLUSHIN | FLUSHOUT 3; AO ZMIENNE | ACK 15; SKRÓCONA ZMIENNA | POTWIERDŹ | FLUSHIN | FLUSHOUT 28; ZMIENNA EOF | ACK 4; ZMIENNA SUSP | POTWIERDZENIE | FLUSHIN 26; ZMIENNA WE | ACK 127; EL VARIABLE | ACK 21; EW ZMIENNA | ACK 23; RP ZMIENNA | ACK 18; ZMIENNA LNEXT | ACK 22; ZMIENNA XON | ACK 17; ZMIENNA XOFF | ACK 19;

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

Zaloguj sie: 
użytkownik1686
źródło
2
doskonała odpowiedź. kiedy czytam, man telnetjedynym wymienionym błędem jest: The source code is not comprehensible. Ciekawe, czy ktokolwiek napisał aktualnego klienta w czymkolwiek innym niż C.
Thufir
3
Nie przydałoby się to dużo, ponieważ sam protokół jest również przestarzały, podobnie jak większość serwerów ... SSHv2 to nowoczesny zamiennik. // zauważ również, że istnieje kilka różnych klientów nazywanych „telnet” - między innymi inetutils-telnet i netkit-telnet.
user1686,
1
Chociaż, w powiązanej notatce, SSH ma ciąg agenta użytkownika.
user1686,
1
@grawity telnet nadal ma wiele zastosowań, np. do diagnostyki. Staje się nieco mniej powszechny dzięki rozprzestrzenianiu się TLS (na przykład na przykład OpenSSL -connect), ale wciąż istnieje wiele ważnych zastosowań rozsądnie czystego połączenia tekstowego, podobnie jak telnet, gdy jest wywoływane na serwerze innym niż telnet. Oczywiście chodzi o to, że telnet to nie tylko oprogramowanie, to protokół; to trochę jak wywoływanie przeglądarki HTTP HTTP.
CVn
1
@ MichaelKjörling Ale kiedy polecenie telnet służy do debugowania komunikacji sieciowej, tak naprawdę nie mówi protokołu telnet. Z klientem Telnet właśnie przetestowałem, mówiąc mu, z którym numerem portu się połączyć, spowoduje to zmianę zachowania.
kasperd