Eine Reihe von technischen Hilfsmitteln bieten grundsätzliche Analysemöglichkeiten innerhalb des Internet und TCP/IP-basierten Netzwerken und liegen in der Regel allen gängigen Betriebssystemen bei. Ihren Ursprung haben viele Tools aus der Unix-Welt und sie gehören zum festen Bestandteil eines "Werkzeugkoffers" eines Administrators.
ping - Das Echolot
ping ist das klassische Programm zum Überprüfen, ob ein Host in einem TCP/IP-Netz erreichbar ist. Hierzu werden von ping spezielle IP-Datenpakete (standardmäßig je 64 Byte groß) an den angegebenen Host geschickt und von diesem beantwortet. Aus der Laufzeit zwischen Anfrage und Antwort errechnet ping dann die Paketlaufzeit, mit der Aussagen über Leistungsfähigkeit und Auslastung eines Host und seiner Anbindung möglich ist, da zur Beantwortung eines ping auf dem Host auch gewisse Rechenressourcen benötigt werden. Sind also ping-Werte relativ hoch oder werden überhaupt nicht beantwortet, kann dies ein Indiz für eine Überlastung der Anbindung oder des Hosts sein.
> ping www.odem.org
Ping www.odem.org
[193.197.170.182] mit 32 Bytes Daten:
Antwort von
193.197.170.182: Bytes=32 Zeit=32ms TTL=47
Antwort von
193.197.170.182: Bytes=32 Zeit=16ms TTL=47
Antwort von
193.197.170.182: Bytes=32 Zeit=16ms TTL=47
Antwort von
193.197.170.182: Bytes=32 Zeit=32ms TTL=47
Ping-Statistik
für 193.197.170.182:
Pakete: Gesendet = 4, Empfangen = 4,
Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 16ms, Maximum = 32ms, Mittelwert = 24ms
Im obigen Beispiel habe ich einen ping auf den Host "www.odem.org" vorgenommen. Ohne Angaben von zusätzlichen Parametern werden nun vier ping-Pakete mit einer jeweiligen Größe von 32 Bytes an den Host gesendet und anhand der zurückkommenden Antwortpakete die Zuverlässigkeit und die Antwortzeit ermittelt.
Im Beispiel wurden alle vier ping-Pakete beantwortet. Der erste und der vierte ping hatten eine Laufzeit von je 32, der zweite und dritte jeweils von 16 Millisekunden. Die Statistik am Ende gibt dann eine Zusammenfassung der aktuellen Sitzung aus, aus der dann der mittlere Paketverlust (in diesem Fall 0 %) und die mittlere Paketlaufzeit (hier demnach 24 Millisekunden) abgelesen werden kann.
traceroute - Der Verfolger
traceroute ist ein Werkzeug, mit dem der Weg zwischen dem Absender- und Empfänger-Host ermittelt werden kann. Hierbei werden wiederum spezielle IP-Pakete an den Empfänger-Host verschickt, allerdings mit einem kleinen Trick versehen.
Damit überhaupt die einzelnen Stationen zwischen Absender und Empfänger angezeigt werden, wird bei jedem traceroute-Schritt der so genannte TTL-Wert um eins erhöht. Der TTL-Wert gibt einem IP-Paket vor, wie lange es "leben" darf. Er wird vom absendenden Computer festgelegt und jede Zwischenstation, die das Paket empfängt, muss den TTL-Wert um eins verringern. Erreicht der TTL-Wert schließlich bei einer Zwischenstation null, so quittiert diese Zwischenstation die Weiterleitung und schickt eine Fehlermeldung an den Absender zurück. Genau diese Fehlermeldung wird von traceroute verarbeitet.
traceroute startet also mit drei Datenpaketen mit einem TTL-Wert von 1, die an die Zieladresse versendet werden. Die erste Zwischenstation erhält die drei Pakete, senkt den TTL-Wert auf 0 und sendet für jedes Paket eine Fehlermeldung. traceroute berechnet dann anhand des Zeitstempels der Fehlermeldungen die Laufzeiten der einzelnen Pakete und startet die nächsten drei Datenpakete, nun mit dem TTL-Wert von 2 und so weiter. Dieses Spiel geht so lange, bis der Zielrechner erreicht ist, der durch einen kleinen Trick wiederum eine Fehlermeldung an den Absender sendet und dieser somit das Ende der Streckenverfolgung erkennt.
> tracert www.odem.org
Routenverfolgung zu
www.odem.org [193.197.170.182] über maximal 30 Abschnitte:
1 <10 ms <10 ms <10 ms gw-lan.pf.eplan.net [80.245.64.130]
2 <10 ms <10 ms <10 ms cisco3.pf.eplan.net [80.245.64.18]
3 <10 ms <10 ms 15 ms 213.182.129.9
4 <10 ms 16 ms 16 ms wdl1ip1-pos-6-0.ip.tesion.net
[213.30.193.202]
5 16 ms 16 ms 31 ms stuttgart2.belwue.de [129.143.103.57]
6 15 ms 16 ms 15 ms stuttgart1.belwue.de [129.143.1.33]
7 15 ms 16 ms 16 ms karlsruhe1.belwue.de [129.143.1.4]
8 16 ms 15 ms 32 ms hfg-karlsruhe1.belwue.de
[129.143.167.38]
9 16 ms 31 ms 16 ms belwue-gw.zkm.de [129.143.166.98]
10 15 ms 31 ms 16 ms gw-193-197-168-033.zkm.de
[193.197.168.33]
11 15 ms 16 ms 15 ms salon21.zkm.de [193.197.170.182]
Ablaufverfolgung beendet.
Im Beispiel wird nun ein traceroute zum Rechner "www.odem.org" durchgeführt. Die Zwischenstation 11 ist der wahre Zielrechner, da auf diesem Rechner vermutlich ein virtueller Webserver für "www.odem.org" eingerichtet ist und dieser deshalb nicht mit "www.odem.org" zurückantwortet.
nslookup - Die Adressauskunft
nslookup ist ein universelles und mächtiges Abfragewerkzeug für DNS-Einträge. Die Basisoperationen sind zweifellos die Ermittlung von IP-Adressen anhand von Hostnamen und umgekehrt. nslookup kann aber auch andere DNS-Eintragstypen abrufen und auch ganze Zonendateien (soweit vom DNS-Serverbetreiber zugelassen).
> nslookup www.netplanet.org
Server: ns.eplan.net
Address: 80.245.65.100
Name: www.netplanet.org
Address: 80.245.65.1
In meinem Beispiel habe ich mit nslookup eine Anfrage gestartet, welche IP-Adresse sich hinter "www.netplanet.org" verbirgt. Als erstes wird der Nameserver genannt, der die Anfrage bearbeitet und der zweite Block beinhaltet das gewünschte Ergebnis.
Alle weiteren Möglichkeiten von nslookup hier zu beschreiben, würde diese Kurzübersicht sprengen. Bei Interesse sei deshalb auf die Dokumentationen von nslookup verwiesen. nslookup lässt sich mit einem Aufruf ohne weitere Attribute oder Kommandos auch im eigenen Befehlsmodus starten, in dem so lange DNS-Abfragen vorgenommen werden können, bis dieser Modus wieder beendet wird.
whois - Die Besitzerauskunft
whois ist ein inzwischen altes und sehr bewährtes System zur Besitzerauskunft von IP-Adressen und Domain-Namen. Die Datenbanken der offiziellen Registrierungsstellen haben hierzu eine entsprechende Schnittstelle zu einem Whois-Server, der über whois-Clients abgefragt werden kann und in Echtzeit die entsprechenden Auskünfte erteilen kann. Inzwischen gibt es zwar für die meisten whois-Abfragen entsprechende Web-Abfragen, die jedoch meist im Hintergrund auch direkte whois-Abfragen ausführen.
besim@gruft:ttypo [~] whois -h
whois.ripe.net bez-ripe
% This is the RIPE Whois server.
% The objects are in RPSL format.
%
% Rights restricted by copyright.
% See
http://www.ripe.net/ripencc/pub-services/db/copyright.html
person: Besim Karadeniz
address: ePlan Internet
Service
address: Hohenzollernstrasse
16
address: D-75179 Pforzheim
address: Germany
phone: +49 7231
42869-0
fax-no: +49 7231
42869-50
e-mail: <E-Mail-Adresse>
nic-hdl: BEZ-RIPE
remarks:
*******************************************************
remarks: * PGP (DH/DSS
2.048/1.024) KeyID: 0xB02AABEF
*
remarks: * Fingerprint:
*
remarks: * 4C88
B786 CA56 438A C354 3618 1427 3394 B02A ABEF *
remarks:
*******************************************************
notify: <E-Mail-Adresse>
mnt-by: EPLAN-NET
changed: <E-Mail-Adresse>
20010730
changed: <E-Mail-Adresse>
20020319
source: RIPE
Die Bedienung von whois ist sehr einfach. Verschiedene Parameter bieten Möglichkeiten, verschiedene vordefinierte Whois-Server abzufragen, beispielsweise "-g" für den Whois-Server für die Top-Level-Domain ".gov". Der Parameter "-c" und eine darauf folgende Top-Level-Domain-Kennzeichnung leitet die Anfrage zum offiziellen Whois-Server der entsprechenden Top-Level-Domain. Beispielsweise führt der Parameter "-c de" die Anfrage an den offiziellen Whois-Server des DENIC.
Der Parameter "-h" ermöglicht die Angabe eines eigenständigen Whois-Servers, bei dem die danach folgende Angabe abgefragt werden soll. Damit ist das obige Beispiel erstellt worden, bei dem auf dem Whois-Server des RIPE das Handle "BEZ-RIPE" abgefragt wurde.
finger - Die Kundenkartei
Mit Finger können Sie auf einem bestimmten Host die eingetragenen und derzeit aktiven Benutzer anzeigen lassen und nähere Informationen über einen bestimmten Benutzer abrufen.
> finger bka www.netplanet.org
Login Name
TTY Idle When Bldg.
Phone
bka Besim Karadeniz
*p4 Sat 00:56 Haus
B2 -395
Das obige Beispiel enthält eine Finger-Simulation auf einen Host, auf dem ich in der Simulation aktuell eingeloggt bin. "Login" enthält das Kürzel, mit dem ich mich beim Host angemeldet habe, "Name" enthält, wie unschwer zu erkennen ist, meinen vollständigen Namen. "TTY" zeigt an, ob ich entweder direkt auf dem Gerät (dann würde hier "con" stehen) oder ein "Remote-Login", also von einem anderen Rechner aus, eingeloggt bin. In diesem Fall bin ich über Remote-Login im Rechner und habe den Port 4 belegt.
"Idle" gibt, falls vorhanden, die Leerlaufzeit an, also die Zeit, seit der aktuelle Login untätig ist, während "When" angibt, seit wann der User eingeloggt ist. Die letzten beiden Werte "Bldg." und "Phone" enthalten Informationen über das Gebäude, wo sich mein Büro befindet und meine Telefonnummer.
Auch für den Funktionsumfang von Finger gilt ähnliches wie bei nslookup; die Möglichkeiten sind enorm und können hier nicht in aller Ausführlichkeit behandelt werden. Da finger sehr viel Informationen preisgeben kann, ist der Dienst auf vielen Hosts gesperrt. Dies gilt auch für den oben genannten Rechner, deshalb handelt es sich auch nur um ein fiktives Ergebnis. Sie können es also lange probieren...
Einfache TCP/IP-Netzwerkprotokolle
Die so genannten einfachen TCP/IP-Netzwerkprotokolle gehören zu einer eigenen Gruppe von Diensten, die praktisch in allen TCP/IP-Implementierungen von Betriebssystemen und TCP/IP-fähigen Netzwerkgerätschaften existieren, da sie äußerst einfach aufgebaut sind und für einfache Analysezwecke eingesetzt werden können. In "freier Wildbahn" sind diese Dienste auf Rechnern im Internet jedoch inzwischen immer seltener zu finden, da sie nicht unmittelbar für die Funktionsfähigkeit des Internet benötigt werden und deren Missbrauch - beispielsweise durch Denial-of-Service-Attacken - die betreffenden Geräte lahmlegen können.
Spezifiziert sind die einfachen TCP/IP-Netzwerkprotokolle in einzelnen, recht kurzen RFC-Dokumenten im Jahr 1983. Da sie allesamt der gleichen Intention entstammen, sind deren RFC-Nummern nachfolgend:
RFC Nr. 862 - echo
RFC Nr. 863 - discard
RFC Nr. 864 - Character Generator
RFC Nr. 865 - Quote of the day
RFC Nr. 866 - Active Users
RFC Nr. 867 - daytime
RFC Nr. 868 - time
echo - Einfachste Übertragungskontrolle
echo dient zur schnellen Überprüfung einer Übertragung, in dem beliebige Zeichen an einen anderen Rechner gesendet werden und dieser die empfangenen Zeichen umgehend wieder zurücksendet. Aufgrund dieser Arbeitsweise des Protokolls ergibt sich bei korrekter Übertragung beim Absender ein Text, deren Buchstaben jeweils doppelt vorkommen.
> telnet bka 7
DDiieess iisstt eeiinn TTeesstt..
Realisiert wird echo durch einen echo-Dienst, der auf dem Zielrechner läuft und den TCP- und UDP-Port 7 abhört. Andere Rechner können per TCP oder UDP mit dem Dienst Verbindung aufnehmen und entsprechende Zeichen senden, die der Zielrechner empfängt und in der laufenden Sitzung ebenfalls an den Absender sendet. Im Idealfall sieht der Empfänger dann den Text mit doppelten Buchstaben. Erscheinen die Echozeichen nicht unmittelbar, kann dies ein Indiz für höhere Laufzeiten oder andere Performanzprobleme sein.
discard - Das "Schwarze-Loch-Protokoll"
discard ist in etwa das Gegenteil von echo. Anstatt dass der Zielrechner gesendete Daten als Echo spiegelt, wird mit discard schlicht nichts mehr zurückgesendet. discard funktioniert ebenfalls als Dienst auf dem Zielrechner, der auf dem TCP- und UDP-Port 9 hört.
> telnet bka 9
Der Sinn von discard ist, dass es ein Dienst ist, dass sozusagen "garantiert" keine Daten mehr zurücksendet, dennoch aber eine Verbindung zum Zielrechner etablieren lässt. Dies kann für bestimmte Netzwerkanalysen erforderlich sein.
Character Generator - Der Zeichengenerator
Mit dem Character Generator können von einem Zielrechner zufällig generierte Daten angefordert werden, die so lange an den Absender gesendet werden, bis dieser die Verbindung zum Dienst wieder trennt.
> telnet bka 19
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd
Der Character-Generator-Dienst horcht auf dem Zielrechner auf dem TCP- und UDP-Port 19 und beginnt unmittelbar nach dem Verbindungsaufbau mit dem Senden der zufällig generierten Daten als Datenstrom. Da dieser Dienst verhältnismäßig viel Daten senden kann, ist er auf den meisten Rechnern und Netzwerkgerätschaften grundsätzlich nicht aktiv.
Quote of the day - Die Tageslosung
Der Dienst "Quote of the day" ist ein ebenfalls nicht mehr häufig in freier Wildbahn anzutreffender Dienst, der nach dem Verbindungsaufbau zufallsgesteuert ein Zitat aus einer Zitatedatenbank zurückliefert. Diese Zitatedatenbank ist meist eine einfache Textdatei und kann auch für andere Zwecke umfunktioniert werden, beispielsweise für Abteilungsinformationen.
> telnet bka 17
"Wer von mir den Titel holen will, der muss bestraft
werden."
-- Arthur Abraham, dt. Boxer
Der "Quote of the day"-Dienst horcht auf dem TCP- und UDP-Port 17 und arbeitet ebenfalls ohne jegliche Parameter. Nach dem Verbindungsaufbau wird ein Zitat zurückgeliefert und die Verbindung sofort wieder getrennt.
Active Users - Aktive Benutzer
Der Dienst "Active Users" dient dazu, eine Liste von aktiven Benutzern auszugeben. Da dies ebenfalls eine sicherheitsrelevante Anwendung ist, ist dieser Dienst in freier Wildbahn im Internet praktisch überhaupt nicht anzutreffen.
> telnet bka 11
Timo Fuchs
Besim Karadeniz
"Active Users" wird als Dienst realisiert, der auf dem Zielrechner läuft und den TCP- und UDP-Port 11 abhört. Nach dem Verbindungsaufbau wird die Liste der Benutzer übermittelt und die Verbindung sofort wieder getrennt. Der Aufbau der Benutzerliste ist in der originalen Spezifikation nicht definiert.
daytime - Uhrzeit und Datum
daytime dient zur einfachen Übertragung der Systemzeit eines Zielrechners.
> telnet bka 13
Sunday, April 20, 2008 15:32:27-CEST
Connection closed.
Um per daytime die Zeit von einem Rechner abzufragen, muss auf diesem ein daytime-Dienst installiert und gestartet sein, der auf dem TCP- und UDP-Port 13 lauscht. Erreicht diesen daytime-Dienst per TCP oder UDP eine Anfrage (das kann lediglich eine Kommunikationsanfrage sein, da daytime keinerlei Parameter kennt), so sendet der daytime-Dienst seine aktuelle Systemzeit und das Sytemdatum an den Absender zurück und beendet die Sitzung.
Im Gegensatz zu anderen Netzwerkprotokollen zur Zeitübertragung ist daytime darauf ausgelegt, die Zeit in Klartext und auf einfachste Weise zu übertragen.
time - Sekundenangabe in Unix-Zeit
Im Gegensatz zu daytime existiert mit time noch ein weiterer Dienst zur Ausgabe der Systemzeit, allerdings in einer anderen Formatierung, nämlich in Sekunden. Als Referenzpunkt für die Sekunde 0 wird der 1. Januar 1900, 0:00:00 Uhr angenommen.
> telnet bka 37
1208698347
Im Gegensatz zu daytime liefert time eine computerlesbare Zeit zurück, da diese nur aus einer Zahl besteht. Realisiert ist time so wie alle anderen, obigen Dienste der einfachen TCP/IP-Netzwerkprotokolle, als Dienst auf dem Zielrechner, der auf einen TCP- und UDP-Port lauscht, in diesem Fall auf Port 37. Nach der Auslieferung der time-Zeit wird die Verbindung sofort wieder getrennt.