Internet Accessible QOTD Service

Description

The Quote of the Day (QOTD) service is an internet protocol defined in RFC 865, used to provide a message or quote to the connecting client, that is intended for testing and measurement purposes. The syntax for the message or quote is recommended to be limited to the American Standard Code for Information Interchange (ASCII) printing characters, space, carriage return, and line feed. The QOTD service, which can be accessed by both the Transport Transmission Protocol (TCP) and the User Datagram Protocol (UDP), will, without regard to the input received during the connection process, respond, with a short message, or a quote that has been determined by the server's administrator.

The QOTD service listens on port 17/TCP and port 17/UDP.

Problem

An Internet Accessible QOTD Service can be abused for a Distributed Denial of Service (DDoS) Reflection/Amplification attack against a third party.

The Bandwidth Amplification Factor (BAF) of the QOTD service is determined by the content and syntax used in the message or qoute of the day. RFC 865 state that the quote syntax should be less than 512 characters. The QOTD service has a maximum BAF of 140.3:1.

The Quote of the Day (QOTD) Service

The Quote of the Day (QOTD) service is one of six (6) simple services, that are internet protocols intended for testing and measurement purposes. These services can be used with both TCP and UDP, enabling each transport protocol to be tested. Each of these services are intended as "a useful debugging and measurement tool”. Tools that network operators can use to test the reachability of other hosts and to trouble shoot connectivity issues. Network operators can connect to another host and to receive data to verify end-to-end connectivity. The protocols are describe in their respective Request for Comments (RFC) dated May 1983 by the then RFC Editor Jonathan Postel, who made many significant contributions to the creation of the internet, particularly in the area of standards. Today, all six (6) protocols are regarded as obsolete.

Internet Protocols - Useful debugging and measurement tools

No. Protocol TCP/UDP Action
1. Echo Protocol Port 7 Returns identical copy of data received
2. Discard Protocol Port 9 No response - Discard data received
3. Active Users Protocol (systat service) Port 11 Return list of users currently login
4. Daytime Protocol Port 13 Returns current date and time
5. Quote of the Day (QOTD) Protocol Port 17 Broadcast a daily quote on request
6. Character Generator (CHARGEN) Protocol Port 19 Returns random generator character set

The QOTD service response to a TCP connection

An internet accessible QOTD service will, without regard to the input to port 17/TCP during the connection process, respond with a short message or quote. The QOTD service closes the connection after sending the quote. The data flow over the connection is limited by the normal TCP flow control mechanisms. The data received during the TCP connection process is discarded.

The QOTD service response to a UDP connection

An internet accessible QOTD service will, without regard to the input to port 17/UDP during the connection process, respond with a datagram that contains the message or quote of the day. The QOTD service will send one datagram in response of each datagram it receives. The data received during the UDP connection process is discarded.

Port Numbers and Ranges

In TCP/IP and UDP networks, a port is an endpoint to a logical connection and the way a client program specifies a specific server program on a computer in a network. The port number identifies what type of port it is. There are a total of 65,536 (0-65535) possible port numbers. The port numbers are divided into ranges:-

Well-Known Ports (0-1023)

These ports, also called low-numbered ports, are assigned by the Internet Assigned Numbers Authority (IANA). Port numbers within this range are associated with well-known services. These services include the Echo Protocol, the Discard Protocol, the Active Users Protocol, the Daytime Protocol, the Character Generator (CHARGEN) Protocol and the Quote of the Day (QOTD) Protocol. Most operating systems restrict the association (called binding) of any service with these ports to trusted processes, such as root.

Registered ports (1024-49151)

These ports are not assigned by the IANA, but for convenience to the community, the IANA lists the registered uses to these ports. These ports are not considered "trusted" because, in most operating systems, ordinary users may establish an association with any of these port numbers.

Dynamic and Private Ports (49152-65535)

These ports are not assigned or registered. There are no commonly known ports in this space.

Verification

To establish if a host has an Internet accessible service, simple utility programs or tools included with the standard Linux/Ubuntu distribution can be utilised. The test should not be run on the host itself or from the local network, instead it should be run from a different node on the Internet.

Nmap - (Network Mapper) - (https://nmap.org)

To confirm an Internet accessible QOTD service, the 'Nmap' open source network scanner utility program can be utilised.

Nmap is used to discover hosts and services on a computer network by sending packets and analysing the responses.

Insert the IP address of the host you wish to check for an Internet accessible QOTD service when invoking the 'Nmap' open source network scanner utility program together with the options included in the following example.

$ sudo nmap -sU -PN -p17-oG - xxx.xxx.xxx.xxx

An Internet accessible QOTD service listening on port 17/UDP will return information similar to that shown below:

$ sudo nmap -sU -p17 -oG - xxx.xxx.xxx.xxx
# Nmap 7.80 scan initiated Wed Aug 4 15:38:21 2021 as: nmap -sU -p17 -oG - xxx.xxx.xxx.xxx
Host: xxx.xxx.xxx.xxx ()	Status: Up
Host: xxx.xxx.xxx.xxx ()	Ports: 17/open/udp//qotd///

# Nmap done at Wed Aug 4 15:38:21 2021 -- 1 IP address (1 host up) scanned in 0.54 seconds

Options
sudo	:Elevated privileges are required to access raw sockets.
-sU 	:UDP Scan.
-p	:Only scan specified port.
-oG -	:Grepable Output.

Telnet - (https://datatracker.ietf.org/doc/html/rfc854)

To establish a connection to an internet accessible QOTD service, and elicit a response, the 'telenet' internet protocol can be used.

The 'telnet' (Teletype Network) internet protocol first developed in 1969 and defined in RFC 855 in May 1983, is a protocol that provides a command line interface for communication with a remote device or server using the TCP protocol. UDP connectivity can not be tested using Telnet.

Note: Telnet is not a secure protocol and is unencrypted. In a Telnet session, data is conveyed in plain text.

Insert the IP address of the host that has an Internet accessible QOTD service, together with the port number 17.

$ telnet [Host] [Port]

An Internet accessible QOTD service listening on port 17/TCP will return information similar to that shown below:

$ telnet xxx.xxx.xxx.xxx 17
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
"We have no more right to consume happiness without producing it than to
Connection closed by foreign host.it." George Bernard Shaw (1856-1950)

If telnet is invoked with a host argument, it performs an open command implicity.
Options
Host	:IP Address of host.
Port  	:Port Number (17).

Solution

If the QOTD Service is not required, disable it.

If the QOTD Service is required, restrict access to trusted clients or specific IP addresses by blocking incoming connections to port 17/TCP and 17/UDP on the firewall.

To disable the QOTD service on:-

Unix/Linux Systems.

1.	Navigate to the file /etc/inetd.conf (or equivalent - /etc/xinetd.d) file.
2.	Stop the inetd service - /etc/init.d/inetd stop
3.	With an editor, open the inetd file and locate the line that controls the Q0TD daemon.
4.	Insert a hash symbol (#) at the beginging of the line, to comment out the QOTD daemon.
5.	Save and exit from the file.
4.	Restart /etc/inetd/ (or equivalent - /etc/xinetd.d) service - /etc/init.d/inetd restart.

Microsoft Windows Systems.

The QOTD service is not inherent to Microsoft Windows, however in the event that the service has been installed, the following steps will render it inoperative.

Set the following registry keys to 0:

HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableTcpQotd HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableUdpQotd

1.	In Microsoft Windows, open the registry editor.
2.	Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SimpTcp\Parameters.
3.	Double-click the EnableTcpQotd key to display the DWORD Editor.
4.	Replace the value in the data field with 0.
5.	Click OK.
	Repeat these steps for:-
	HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableUdpQotd

For the changes made to the registry to take effect, the Simple TCP/IP Service has to be stopped and restarted.

1.	Launch cmd.exe and execute the following commands.
2.	net stop simptcp.
3.	net start simptcp.

Supplementary Information

Ingress & Egress Filtering

Filter Description
Ingress Filtering Ingress filtering is a simple and effective method to limit the impact of DoS attacks,  by denying traffic with a forged IP source address (IP spoofing) access to the network,  and to help ensure that traffic is traceable to its correct network.
Egress Filtering Egress filtering limits the impact of a compromised network in a Denial of Service (DoS) attack on networks of other organisations, by preventing traffic with a forged source (spoofed) IP address from leaving the network.  Port used for remote syslog capture

The implementation of best practice in relation to Ingress filtering limits the impact of a Denial of Service (DoS) attack on one's own network while the implementation of best practice in relation to Egress filtering limits the impact of a compromised network in a Denial of Service (DoS) attack on networks of other organisations.  Additional information on Ingress & Egress Filtering can be found at the following link - Ingress & Engress Filtering

UDP Based Denial-of-Service (DoS) Attack

The User Datagram Protocol (UDP), a generic carrier for several higher-level protocols, has a number of properties that makes it susceptible to exploitation for DoS attacks against third parties.   Additional information on the components and techniques deployed in an UDP based DoS attack can be found at the following link - UDP Based Denial-of-Service (DoS) Attack

Additional Information

IETF RFC 865- Quote of the Day Protocol
IETF RFC 862- Echo Protocol
IETF RFC 863- Discard Protocol
IETF RFC 864- Character Generator Protocol
IETF RFC 866- Active Users
IETF RFC 867- Daytime Protocol
Shadowserver - Open Quote of the Day Service Scanning Project
IETF RFC 1340 - Assigned Numbers
Good Intentions on the Old-Timey Internet