Telnet

Last updated

Telnet (short for "telecommunications network") [1] is a client/server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. [2] It is a protocol for bidirectional 8-bit communications. Its main goal was to connect terminal devices and terminal-oriented processes. [3]

Contents

Telnet consists of two components: (1) the protocol itself which specifies how two parties are to communicate and (2) the software application that provides the service. User data is interspersed in-band with Telnet control information in an 8-bit byte oriented data connection over the Transmission Control Protocol (TCP). Telnet was developed as secret technology in 1969 beginning with RFC   15, extended in RFC   855, and standardized as Internet Engineering Task Force (IETF) Internet Standard STD 8, one of the first Internet standards. [4] [5] Telnet transmits all information including usernames and passwords in plaintext so it is not recommended for security-sensitive applications such as remote management of routers. [2] [6] Telnet's use for this purpose has waned significantly in favor of SSH. [7] Some extensions to Telnet which would provide encryption have been proposed. [8]

Components

Telnet consists of two components: (1) the protocol itself and (2) the service component. The telnet protocol is a client-server protocol, based on a reliable connection-oriented transport. [2] This protocol is used to establish a connection to Transmission Control Protocol (TCP) port number 23 or 2323, where a Telnet server application is listening. [3] [9] [10] The Telnet protocol abstracts any terminal as a Network Virtual Terminal (NVT). The client must simulate a NVT using the NVT codes when messaging the server.

Telnet predated UDP/IP and originally ran over Network Control Protocol (NCP). [11] The telnet service is best understood in the context of a user with a simple terminal using the local Telnet program (known as the client program) to run a logon session on a remote computer where the user's communications needs are handled by a Telnet server program.

Telnet Protocol

History

Even though Telnet was an ad hoc protocol with no official definition until March 5, 1973, [12] the name actually referred to Teletype Over Network Protocol as the RFC   206 (NIC 7176) on Telnet makes the connection clear: [13]

The TELNET protocol is based upon the notion of a virtual teletype, employing a 7-bit ASCII character set. The primary function of a User TELNET, then, is to provide the means by which its users can 'hit' all the keys on that virtual teletype. [14]

Essentially, it used an 8-bit channel to exchange 7-bit ASCII data. Any byte with the high bit set was a special Telnet character. On March 5, 1973, a Telnet protocol standard was defined at UCLA [15] with the publication of two NIC documents: Telnet Protocol Specification, NIC 15372, and Telnet Option Specifications, NIC 15373.

Extensions

Many extensions were made for Telnet because of its negotiable options protocol architecture. Some of these extensions have been adopted as Internet standards, IETF documents STD 27 through STD 32. Some extensions have been widely implemented and others are proposed standards on the IETF standards track (see below).

Telnet service

The Telnet service is the application providing services over the Telnet protocol. Most operating systems provide a service that can be installed or enabled to provide Telnet services to clients. [16]

Security vulnerabilities

Telnet is vulnerable to network-based cyberattacks, such as packet sniffing sensitive information including passwords and fingerprinting. [6] [17] Telnet services can also be exploited to leak information about the server (such as hostnames, IP addresses and brand) by packet sniffing the banner. This information can then be searched to determine if a Telnet service accepts a connection without authentication. Telnet is also frequently exploited by malware due to being improperly configured. [10] In fact, Telnet is targeted by attackers more frequently than other common protocols, especially when compared to UPnP, CoAP, MQTT, AMQP and XMPP [ citation needed ]. Common devices targeted are Internet of things devices, routers and modems.

The SANS Institute recommends that the use of Telnet for remote logins should be discontinued under normal circumstances for the following reasons: [18]

Extensions to Telnet provide Transport Layer Security (TLS) security and Simple Authentication and Security Layer (SASL) authentication that address the above concerns. [8] However, most Telnet implementations do not support these extensions; and they do not address other vulnerabilities such as parsing the banner information. [17]

IBM 5250 or 3270 workstation emulation is supported via custom telnet clients, TN5250/TN3270, and IBM i systems. Clients and servers designed to pass IBM 5250 data streams over Telnet generally do support SSL encryption, as SSH does not include 5250 emulation. Under IBM i (also known as OS/400), port 992 is the default port for secured telnet. [19]

Uses

BusyBox running under the Microsoft Telnet Client from a router. Busybox DG834Gt.PNG
BusyBox running under the Microsoft Telnet Client from a router.

Historical uses

Historically, Telnet provided access to a command-line interface on a remote host. However, because of serious security concerns when using Telnet over an open network such as the Internet, its use for this purpose has waned significantly in favor of SSH. [20] The usage of Telnet for remote management has declined rapidly, especially on the public Internet, in favor of the Secure Shell (SSH) protocol. [2] [21] SSH provides much of the functionality of telnet, with the addition of strong encryption to prevent sensitive data such as passwords from being intercepted, and public key authentication, to ensure that the remote computer is actually who it claims to be.

Modern day uses

The Telnet client may be used in debugging network services such as SMTP, IRC, HTTP, FTP or POP3, to issue commands to a server and examine the responses. [16] For example, Telnet client applications can establish an interactive TCP session to a port other than the Telnet server port. However, communication with such ports does not involve the Telnet protocol, because these services merely use a transparent 8-bit TCP connection, because most elements of the telnet protocol were designed around the idea of accessing a command line interface and none of these options or mechanisms is employed in most other internet service connections.

For example, a command line telnet client could make an HTTP request to a web server on TCP port 80 as follows: [22]

$ telnetwww.example.com80GET /path/to/file.html HTTP/1.1Host: www.example.comConnection: close

The older protocol is used these days only in rare cases to access decades-old legacy equipment that does not support more modern protocols. [23] For example, a large number of industrial and scientific devices only have Telnet available as a communication option. Some are built with only a standard RS-232 port and use a serial server hardware appliance to provide the translation between the TCP/Telnet data and the RS-232 serial data. In such cases, SSH is not an option unless the interface appliance can be configured for SSH (or is replaced with one supporting SSH).

Telnet is commonly used by amateur radio operators for providing public information. [24]

Despite recommendation against it, security researchers estimated that 7,096,465 exposed systems on the Internet continue to use Telnet as of 2021. However, estimates of this number have varied significantly, depending on the number of ports scanned beyond the default TCP port 23. [10]

Technical details

The technical details of Telnet are defined by a variety of specifications including RFC   854. [3]

USASCII control codes

NameByte codeExplanationNotes
NULL0
Line feed10
Carriage return13
Bell7
Backspace8
Horizontal tab9
Vertical tab11
Form feed12
Source: J. Postel and Reynolds (1983) [3]

Telnet commands

Telnet commands consist of at least two bytes. [3] The first byte is the IAC escape character (typically byte 255) followed by the byte code for a given command:

NameByte codeExplanationNotes
SE (Subnegotiation end)240End of negotiation (or data block) of a sub-service of a protocol mechanism
NOP (No operation)241Data packet that does nothing
Data Mark242
Break243
Interrupt Process244Request that other party ends current process
Abort output245Request that other party stops sending output
Are you there?246
Erase character247
Erase Line248
Go ahead249
SB (Subnegotiation begin)250Initiate the negotiation of a sub-service of a protocol mechanism
WILL251Informs other party that this party will use a protocol mechanism
WON'T252Informs other party that this party will not use a protocol mechanism
DO253Instruct other party to use a protocol mechanism
DON'T254Instruct other party to not use a protocol mechanism
IAC255Sequence Initializer/Escape Character
Source: J. Postel and Reynolds (1983) [3]

Interpret As Command

All data octets except 0xff are transmitted over Telnet as is. (0xff, or 255 in decimal, is the IAC byte (Interpret As Command) which signals that the next byte is a telnet command. The command to insert 0xff into the stream is 0xff, so 0xff must be escaped by doubling it when sending data over the telnet protocol.) [3]

Telnet options

Telnet also has a variety of options that terminals implementing Telnet should support.

Telnet Options
CodeNameSpecNotes
0Binary Transmission RFC   856 The 8-bit mode (so named binary option) is intended to transmit binary data, not ASCII characters. The standard suggests the interpretation of codes 0000–0176 as ASCII, but does not offer any meaning for high-bit-set data octets. There was an attempt to introduce a switchable character encoding support like HTTP has, [25] but nothing is known about its actual software support.
1Echo RFC   857
2ReconnectionNIC 15391 of 1973
3Suppress Go Ahead RFC   858 The "Go Ahead" command code (249) in the original Telnet protocol is used to notify to the other end that the other end could start sending back messages. This was used in "half duplex" communication, as some terminals could send messages and receive messages, but not simultaneously.
4Approx Message Size NegotiationNIC 15393 of 1973
5Status RFC   859
6Timing Mark RFC   860
7Remote Controlled Trans and Echo RFC   726
8Output Line WidthNIC 20196 of August 1978
9Output Page SizeNIC 20197 of August 1978
10Output Carriage-Return Disposition RFC   652
11Output Horizontal Tab Stops RFC   653
12Output Horizontal Tab Disposition RFC   654
13Output Formfeed Disposition RFC   655
14Output Vertical Tabstops RFC   656
15Output Vertical Tab Disposition RFC   657
16Output Linefeed Disposition RFC   658
17Extended ASCII RFC   698
18Logout RFC   727
19Byte Macro RFC   735
20Data Entry Terminal
21SUPDUP
22SUPDUP Output RFC   749
23Send Location RFC   779
24Terminal Type RFC   1091
25End of Record RFC   885
26TACACS User Identification RFC   927
27Output Marking RFC   933
28Terminal Location Number RFC   946
29Telnet 3270 Regime RFC   1041
30X.3 PAD RFC   1053
31Negotiate About Window Size RFC   1073
32Terminal Speed RFC   1079
33Remote Flow Control RFC   1372
34Linemode RFC   1184
35X Display Location RFC   1096
36Environment Option RFC   1408
37Authentication Option RFC   2941
38Encryption Option RFC   2946
39New Environment Option RFC   1572
40TN3270E RFC   2355 See IBM 3270
41XAUTH
42CHARSET RFC   2066
43Telnet Remote Serial Port (RSP)
44Com Port Control Option RFC   2217
45Telnet Suppress Local Echo
46Telnet Start TLS
47KERMIT RFC   2840 See Kermit (protocol)
48SEND-URL
49FORWARD_X
50-137Unassigned
138TELOPT PRAGMA LOGON
139TELOPT SSPI LOGON
140TELOPT PRAGMA HEARTBEAT
141-254Unassigned
255Extended-Options-List RFC   861
Source: Internet Assigned Numbers Authority (n.d.) [26]

Telnet clients

Star Wars: Episode IV – A New Hope from 1977 has been recreated as a text art movie served through Telnet. [27]

See also

Related Research Articles

<span class="mw-page-title-main">HTTP</span> Application protocol for distributed, collaborative, hypermedia information systems

HTTP is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser.

<span class="mw-page-title-main">Kerberos (protocol)</span> Computer authentication protocol

Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

The Secure Shell (SSH) Protocol is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web, email, remote administration, and file transfer rely on TCP, which is part of the Transport layer of the TCP/IP suite. SSL/TLS often runs on top of TCP.

Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior. Devices that typically support SNMP include cable modems, routers, network switches, servers, workstations, printers, and more.

<span class="mw-page-title-main">Email client</span> Computer program used to access and manage a users email

An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email.

The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and data connections between the client and the server. FTP users may authenticate themselves with a plain-text sign-in protocol, normally in the form of a username and password, but can connect anonymously if the server is configured to allow it. For secure transmission that protects the username and password, and encrypts the content, FTP is often secured with SSL/TLS (FTPS) or replaced with SSH File Transfer Protocol (SFTP).

Remote Authentication Dial-In User Service (RADIUS) is a networking protocol that provides centralized authentication, authorization, and accounting (AAA) management for users who connect and use a network service. RADIUS was developed by Livingston Enterprises in 1991 as an access server authentication and accounting protocol. It was later brought into IEEE 802 and IETF standards.

SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded. A SOCKS server accepts incoming client connection on TCP port 1080, as defined in RFC 1928.

Terminal Access Controller Access-Control System refers to a family of related protocols handling remote authentication and related services for network access control through a centralized server. The original TACACS protocol, which dates back to 1984, was used for communicating with an authentication server, common in older UNIX networks including but not limited to the ARPANET, MILNET and BBNNET. It spawned related protocols:

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

FTPS is an extension to the commonly used File Transfer Protocol (FTP) that adds support for the Transport Layer Security (TLS) and, formerly, the Secure Sockets Layer cryptographic protocols.

This article lists communication protocols that are designed for file transfer over a telecommunications network.

<span class="mw-page-title-main">Terminal server</span> Device that interfaces serial hosts to a network

A terminal server connects devices with a serial port to a local area network (LAN). Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication. The primary application scenario is to enable serial devices to access network server applications, or vice versa, where security of the data on the LAN is not generally an issue. There are also many terminal servers on the market that have highly advanced security functionality to ensure that only qualified personnel can access various servers and that any data that is transmitted across the LAN, or over the Internet, is encrypted. Usually, companies that need a terminal server with these advanced functions want to remotely control, monitor, diagnose and troubleshoot equipment over a telecommunications network.

A network host is a computer or other device connected to a computer network. A host may work as a server offering information resources, services, and applications to users or other hosts on the network. Hosts are assigned at least one network address.

In computer networking, a port or port number is a number assigned to uniquely identify a connection endpoint and to direct data to a specific service. At the software level, within an operating system, a port is a logical construct that identifies a specific process or a type of network service. A port at the software level is identified for each transport protocol and address combination by the port number assigned to it. The most common transport protocols that use port numbers are the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP); those port numbers are 16-bit unsigned numbers.

<span class="mw-page-title-main">OpenSSH</span> Set of computer programs providing encrypted communication sessions

OpenSSH is a suite of secure networking utilities based on the Secure Shell (SSH) protocol, which provides a secure channel over an unsecured network in a client–server architecture.

The Ident Protocol, specified in RFC 1413, is an Internet protocol that helps identify the user of a particular TCP connection. One popular daemon program for providing the ident service is identd.

Bitvise is a proprietary secure remote access software developed for Windows and available as a client and server. The software is based on the Secure Shell (SSH) protocol, which provides a secure channel over an insecure network in a client-server architecture.

References

  1. Crocker, Stephen D.; Heafner, John F.; Metcalfe, Robert M.; Postel, Jonathan B. (1971). "Function-oriented protocols for the ARPA computer network". Proceedings of the November 16-18, 1971, fall joint computer conference on - AFIPS '71 (Fall). Association for Computing Machinery. pp. 271–279. doi:10.1145/1478873.1478908. ISBN   9781450379090.
  2. 1 2 3 4 Valenčić, D.; Mateljan, V. (2019). "Implementation of NETCONF Protocol". 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). pp. 421–430. doi:10.23919/MIPRO.2019.8756925. ISBN   978-953-233-098-4. S2CID   195883872.
  3. 1 2 3 4 5 6 7 Postel, J.; Reynolds, J. K. (1983). "Telnet Protocol Specification". Network Working Group. doi: 10.17487/RFC0854 . ISSN   2070-1721. RFC 854.
  4. Wheen, Andrew (2011). Dot-dash to Dot.Com: How Modern Telecommunications Evolved from the Telegraph to the Internet. Springer. p. 132. ISBN   9781441967596.
  5. Meinel, Christoph; Sack, Harald (2013). Internetworking: Technological Foundations and Applications. X.media.publishing. p. 57. ISBN   978-3642353918.
  6. 1 2 Daş, Resul; Karabade, Abubakar; Tuna, Gurkan (2015). "Common network attack types and defense mechanisms". 2015 23nd Signal Processing and Communications Applications Conference (SIU). pp. 2658–2661. doi:10.1109/SIU.2015.7130435. ISBN   978-1-4673-7386-9. S2CID   11256038.
  7. Todorov, Dobromir (2007). Mechanics of user identification and authentication : fundamentals of identity management. Boca Raton: Auerbach Publications. ISBN   978-1-4200-5220-6. OCLC   263353270.
  8. 1 2 Mahmood, H.B. (2003). "Transport layer security protocol in Telnet". 9th Asia-Pacific Conference on Communications (IEEE Cat. No.03EX732). Vol. 3. pp. 1033–1037 Vol.3. doi:10.1109/APCC.2003.1274255. ISBN   0-7803-8114-9. S2CID   56798078.
  9. "Service Name and Transport Protocol Port Number Registry". www.iana.org. Retrieved 2023-01-12.
  10. 1 2 3 4 Srinivasa, Shreyas; Pedersen, Jens Myrup; Vasilomanolakis, Emmanouil (2021-11-02). "Open for hire". Proceedings of the 21st ACM Internet Measurement Conference. IMC '21. New York, NY, USA: Association for Computing Machinery. pp. 195–215. doi:10.1145/3487552.3487833. ISBN   978-1-4503-9129-0. S2CID   240357287.
  11. Postel, J. (1981). "NCP/TCP transition plan". Network Working Group. doi: 10.17487/RFC0801 . ISSN   2070-1721. RFC 801.
  12. Telnet Protocol. April 3, 1972. doi: 10.17487/RFC0318 . RFC 318.
  13. Bruen, Garth O. (2015). WHOIS Running the Internet: Protocol, Policy, and Privacy (1st ed.). Wiley. p. 25. ISBN   9781118679555.
  14. J. White (9 August 1971). A User TELNET - Description of an Initial Implementation. Computer Research Lab, UCSB. doi: 10.17487/RFC0206 . RFC 206.
  15. TELNET Protocol Specification. 1 May 1973. doi: 10.17487/RFC0495 . RFC 495.
  16. 1 2 Shimonski, Robert J.; Eaton, Wally; Khan, Umer; Gordienko, Yuri (2002-01-01), Shimonski, Robert J.; Eaton, Wally; Khan, Umer; Gordienko, Yuri (eds.), "Chapter 11 - Detecting and Performing Security Breaches with Sniffer Pro", Sniffer Pro Network Optimization and Troubleshooting Handbook, Burlington: Syngress, pp. 513–565, doi:10.1016/B978-193183657-9/50015-0, ISBN   978-1-931836-57-9 , retrieved 2023-01-12
  17. 1 2 3 4 Samtani, Sagar; Yu, Shuo; Zhu, Hongyi; Patton, Mark; Chen, Hsinchun (2016). "Identifying SCADA vulnerabilities using passive and active vulnerability assessment techniques". 2016 IEEE Conference on Intelligence and Security Informatics (ISI). pp. 25–30. doi:10.1109/ISI.2016.7745438. ISBN   978-1-5090-3865-7. S2CID   11741873.
  18. Kirk, Jeremy (2007-02-12). "Zero-day flaw in Solaris allows remote attacks". Network World. Retrieved 2023-01-12.
  19. "TCP/IP Ports Required for IBM i Access and Related Functions". IBM Support. Archived from the original on 2016-09-18. Retrieved 2016-09-07.
  20. Todorov, Dobromir (2007). Mechanics of user identification and authentication : fundamentals of identity management. Boca Raton: Auerbach Publications. ISBN   978-1-4200-5220-6. OCLC   263353270.
  21. Poulsen, Kevin (2 April 2007). "Telnet, dead at 35...RIP". Wired. p. 24. Archived from the original on 21 December 2016. Retrieved 14 June 2017.
  22. "SysAdmin MD". www.sysadmin.md. Retrieved 2023-01-12.
  23. Ylonen, Tatu. "History of the SSH Protocol". SSH home page. SSH Communications Security, Inc. Archived from the original on 25 July 2018. Retrieved 14 June 2017.
  24. "Telnet | PDF | Networking Standards | Internet Standards". Scribd. Retrieved 2023-01-12.
  25. TELNET CHARSET Option. doi: 10.17487/RFC2066 . RFC 2066.
  26. "Telnet Options". www.iana.org. Retrieved 2023-01-12.
  27. "The Lost Worlds of Telnet". The New Stack. 10 March 2019. Retrieved 5 June 2022.

Further reading

Internet Standards

Proposed Standards

Informational/experimental

Other RFCs