noqqe


blog | sammelsurium | projects | about

Ports low as fuck

2013-05-06 @ bsd, inetd, ip, network, openbsd, openbsd-inetd, protokoll, protokolle, tcp, udp, xinetd

Wenn ich Urlaub habe spiele ich Dwarf Fortress, bastle an coffeestats.org und schaue mir Protokolle an, die kein Arsch mehr kennt.

Port 9: Discard Protocol

Erster Kandidat. Wow. Ein Protokoll das deine Message nimmt und wegwirft. Eingeführt wurde es aus Debugging Gründen. In den meisten Cases möchte ich wohl eher feststellen, dass das Netz funktioniert. Nicht umgekehrt. Vielleicht eine Art Null-Hypothese-Protokoll für den TCP/IP Stack.

Wie die meisten der nachfolgenden Protokolle ist Discard in (openbsd-)inetd enthalten und können durch einen einfachen Eintrag aktiviert und zum Spielen benutzt werden.

discard   stream  tcp     nowait  root    internal
discard   dgram   udp     wait    root    internal

Port 17: QOTD Protocol

Das Quote-of-the-Day Protokoll. Total gut.

$ nc ota.iambic.com  17
Always listen to experts. They'll tell you what can't be done, and why. Then do it. | Lazarus Long

Es gibt anscheinend eine Hand voll Server die diesen Dienst noch fahren. Wer braucht da noch einen Zitate Kalender? :)

Port 19: Character Generator Protocol

Wie bei so vielen RFCs hängt auch hier Jon Postel mit drin. Das CharGen Protokoll gibt Zeichenketten zurück. Interessant ist aber das Verhalten bei TCP und UDP.

Bei TCP schickt einem der Dienst so lange Zeichen bis die Session beendet wird. Damals muss das ziemlich viel Sinn gemacht haben. Da die Zeichenketten eindeutig sind konnte man leicht geflippte Bits oder fehlende Pakete ausmachen.

telnet localhost 19
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno
)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq
+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr
,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs
-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst
./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu

Bei UDP bekommt man eine zufällige Anzahl von Zeichen (zw. 0-512). Zumindest für DDOS Attacken soll es sich ja anbieten.

Konfiguration für inetd

chargen   stream  tcp     nowait  root    internal
chargen   dgram   udp     wait    root    internal

Port 13: Daytime Protocol

Nicht zu verwechseln mit dem Vorgänger von NTP (Time Protokoll) bietet das Daytime Protokoll eine für Debugging und Menschen lesbare Variante eines Timestamps.

$ nc localhost 13
> Mon May  6 16:27:33 2013

Die entsprechende inetd Konfiguration

daytime   stream  tcp     nowait  root    internal
daytime   dgram   udp     wait    root    internal

Comments (3)

Anaximander on 2013-05-07T11:09:29
Böse Zungen könnten jetzt behaupten, dass das Discard Protocol beim Support mancher Unternehmen immer noch täglich genutzt wird. ;-) Das Echo Protocol auf Port 9 könnte man auch noch nennen. Es macht genau das was man vermutet. Es sendet einfach das zurück was man hinschickt.

noqqe on 2013-05-07T14:53:12
hehe, like!

Freiheit on 2013-05-08T09:36:24
Bei einigen Unternehmen muss es da noch ein mir unbekanntes Protokoll geben. Dies senden einen Standardtext auf eine Beschwerde zurück, welches nichts mit dem Problem zu tun hat. ;-)