7. Sicherheitsbetrachtungen und Tests

7.1. Einleitung

Dieses Kapitel beschäftigt sich mit den verschiedenen theoretischen Einbruchsmöglichkeiten in ein Netzwerk (Punkte 7.3. und 7.4.). Darunter versteht der Autor auch Angriffe, die den Absturz oder das Beeinträchtigen des gesamten Systems oder eines Dienstes nach sich ziehen (Denial-of-Service Angriffe). Sehr oft steht vor dem eigentlichen Einbruch das Ausspionieren des Zielsystems (siehe Punkt 7.2.) hinsichtlich seiner Netzstruktur, eingeloggten Nutzern und wichtigen Systemkonfigurationsdateien. Die aufgeführten Möglichkeiten sind nicht auf bestimmte Betriebssysteme begrenzt. Sie stellen allgemeine Verfahren dar. Der Angreifer arbeitet in den seltensten Fällen unter dem gleichen System wie das Zielsystem. Es müssen demzufolge die Schwächen aller Systeme bekannt sein. Eine gute Firewall sollte diese Angriffe abblocken, da diese Methoden im allgemeinen sehr gut beschrieben sind. Die eingesetzte Firewall Eagle NT 4.0 wird mittels Hackertools auf ihre Sicherheit und Robustheit hin untersucht (Punkt 7.5.). Die verwendeten Tools stehen fast alle über das Internet zur Verfügung. Die verwendeten Downloadadressen können im Verzeichnis von Internetadressen nachgelesen werden. Alle besprochenen Möglichkeiten dienen nicht nur zum Angriff eines Systems von Außen. Vielfach wird ein Angriff auch von lokalen Benutzern verübt, sei es um sich mehr Rechte zu verschaffen, um weitere Angriffe unter einem falschen Namen zu verüben oder um jemanden zu schaden. Diese Fälle sollten nicht unterschätzt werden.

7.2. Das Ausspionieren des Zielsystems

7.2.1. Ermitteln allgemeiner Informationen des Zielsystems

Einige Angriffsmöglichkeiten funktionieren nur unter bestimmten Betriebssystemen und Versionen. Eine erste Aufgabe besteht also darin, diese Informationen herauszubekommen. Dies geht am leichtesten und schnellsten mit Telnet. Alle Telnet-Server präsentieren nach einen Verbindungsaufbau eine Meldung ähnlich folgender Art:

Linux 1.1.62 (alpha.stp.de) Der Angreifer weiß nun, ohne überhaupt schon etwas unternommen zu haben, daß das Zielsystem unter Linux Version 1.1.62 läuft und daß der Rechner zur Domain stp.de gehört. Er kann nun zielsicher nach Sicherheitslücken in genau dieser Betriebssystemversion suchen. Auch bei Einsatz einer Firewall kann ein Telnetversuch "sinnvoll" sein. Die eingesetzte Eagle Firewall meldet sich wie folgt:

Eagle Secure Gateway

Bei entsprechender Konfiguration läßt sie zwar keine Telnetverbindungen von Außen durch, die Meldung erscheint trotzdem. Der Einbrecher weiß nun, daß das Zielsystem mit einer Eaglefirewall abgeschirmt ist, und kann somit nach weiteren Informationen suchen, die eventuelle Bugs der Firewall beschreiben. Hat der Systemadministrator nicht die aktuellen Bugfixes installiert, steht einem Einbruch oder einem Serviceangriff nichts mehr im Wege.

Auch viele andere Dienste, wie FTP, Mail oder NNTP, präsentieren in diesen sogenannten Bannern ihren Namen und ihre Version.

Sehr nützlich sind in dieser Hinsicht auch die sogenannten Portscanner. Diese Programme stellen automatisch Verbindungen zu allen Ports des Zielsystems her und ermitteln auf diese Weise, welche Dienste das Zielsystem überhaupt anbietet.

7.2.2. Ermitteln der Netzstruktur mit einem Sniffer

Mit Hilfe eines Sniffers, noch besser wäre ein Netzanalysator, können zum Beispiel Loginnamen und Paßwörter abgehört werden, da die Übertragung dieser Daten im Normalfall im Klartext erfolgt. Dazu wird die Netzkarte im sogenannten "Promiscuous Mode" betrieben. In diesem Modus können alle ankommenden Pakete empfangen werden. Im Normalbetrieb verwirft das Netzinterface alle Pakete, die nicht an das Interface gerichtet sind, selbständig. Bei genauer Analyse der abgefangenen Protokolldaten können auch Quelladressen und im Fall einer DNS-Anfrage auch die dazugehörigen Namen ermittelt werden. Die Quelladressen geben unter Umständen einen Einblick in die verwendete Netzstruktur. So haben Server, die ja bekanntlich das lohnenste Ziel von Hackern sind, oft eine 1 als Hostanteil. Bei abgefangen Broadcasts ist es auch nicht weiter schwierig, die Netzmaske herauszubekommen. Eine weitere wichtige Information in einem abgefangen Paket ist das verwendete Protokoll und seine Version. Das Aufzählen aller relevanten Dinge würde den Umfang dieser Arbeit sprengen. Das unter den Punkten 7.3. und 7.4. vorausgesetzte Wissen über die Protokolldaten des Zielsystems kann in der Regel mit einem Sniffer herausgefunden werden. Abbildung 7.1. zeigt den Inhalt eines abgefangenen ping-Paketes. Der Screenshot stammt vom Microsoft Netzwerkmonitor.

Abb. 7-1: Analyse eines abgefangenen ping-Paketes

7.2.3. Ermitteln von möglichen Nutzernamen mittels finger und Maildämon

Hat man eventuell schon Zugang zu einem System, können weitere Nutzer- und Rechnernamen mit Hilfe des finger-Befehls herausgefunden werden. Ein Ausgabe des finger-Befehls sieht in etwa so aus:

Login Name Tty Idle Login Time Office Office Phone
gast Gastzugang als Test p0 Oct 15 21:40 [ firewall2.stp.de]
Auf dem System gibt es einen Gastzugang. Vielleicht braucht der Gast auch kein Paßwort. Die Möglichkeit, daß auf weiteren Systemen auch ein Gastaccount existiert, ist groß. Außerdem gibt es einen Rechner namens firewall2 im Zielnetz. Die nächsten Angriffsziele dürften hiermit klar sein. Bei Übergabe bestimmter Parameter an finger, werden zusätzlich das Homeverzeichnis und die benutzte Shell (mit komplettem Pfad) des spezifizierten Nutzers ausgegeben. Alle finger-Befehle können auch direkt an ein fremdes System geschickt werden. Zum Beispiel durch Angabe des Systems als Parameter oder durch eine Telnetsitzung auf den finger-Port 79.

Der berühmte Internet-Wurm basiert auf einer Sicherheitslücke im damaligen Code des finger-Befehls. Das Programm sendete eine bestimmte Folge von Zeichen an den finger-Server, der daraufhin im Administratorstatus Teile seiner internen Datenbereiche überschrieb. Diese Datenbereiche waren Teil des auszuführenden Programmcodes. Der Internet-Wurm konnte sich so innerhalb weniger Stunden verbreiten und über 6000 Hosts lahmlegen.

Durch eine Telnetsitzung auf den Mailport des Zielsystems können auch Informationen über die Benutzer herausgefunden werden. Die Befehle VRFY (Verify) und EXPN (Expand Account) geben die Mailadressen und -aliase von eingetragenen Benutzern zurück. Ein Hacker kann somit gezielt gegen diese Personen Aktionen unternehmen. Im weitverbreiteten Sendmail-Dämon schalten die Optionen "Opnovrfy" und "Opnoexpn" im Konfigurationsfile die Unterstützung dieser Befehle aus.

 
7.2.4. Ermitteln von Sicherheitsinformationen

Vielfach steht auf der Liste eines Hackers das Bekommen der passwd-Datei von Unixsystemen an erster Stelle. Auf den Inhalt der Datei, genauer auf die verschlüsselten Paßwörter der Nutzer, können dann diverse Knackprogramme angesetzt werden, wie zum Beispiel Cracker Jack, Brute Force und New Password Cracker. Meistens verwenden diese Programme Wortlisten aus verschiedenen Bereichen. Die enthaltenen Worte werden nach dem selben Verschlüsselungsalgorithmus wie der Paßwortalgorithmus verschlüsselt und die Ergebnisse mit den Einträgen der passwd-Datei verglichen. Das ist nicht weiter schwierig, da diese Algorithmen öffentlich dokumentiert sind. In den meisten Fällen kommt der bekannte Data Encryption Standard (DES)-Algorithmus zum Einsatz. Wenn der Angreifer mit obigen Methoden schon einige Daten über Nutzer ausfindig gemacht hat, kann er auch Tools nutzen, die auf Basis solcher Informationen Wort- und Buchstabenkombinationen bilden (zum Beispiel Cracker-Jack). Diese werden wiederum verschlüsselt und verglichen. Auch das Paßwortraten führt sehr häufig zum Erfolg, wenn von bekannten Logins folgende Dinge ausprobiert werden:

Die Liste ließe sich noch beliebig erweitern. Aktuelle und umfangreiche Wortlisten können von dem FTP-Server sable.ox.ac.uk aus dem Verzeichnis /pub/wordlists bezogen werden. Nachfolgende Tabelle gibt einen Überblick, wie erfolgreich Paßwortraten und das Verwenden von Wortlisten ist (Quelle: [15]).
 
 
Paßworttyp Größe der Wortbibliothek entschlüsselte Paßwörter in %
User-Account-Name 130 2,7
Gebräuchliche Namen 2239 4,0
Weibliche Namen 4280 1,2
Männliche Namen 2866 1,0
Vokabularlisten 19683 7,4
Maschinen 9018 1,0
Bibel 7525 0,6
Prominente 290 0,4
Wissenschaft 691 0,4
Tabelle 7-1: Erfolg von Wortlisten

Wie kommt man nun an die passwd-Datei heran? Der erste Versuch erfolgt sicherlich mittels ftp oder tftp. Im FTP-Verzeichnis steht auch eine passwd-Datei. Es bietet sich an, in diese Datei falsche Paßwörter einzutragen, um einen Angreifer in die Irre zu führen. Dazu muß es aber auch möglich sein, diese Datei mit obigen Mitteln lesen zu können. Nach [16] sind auch schon die Dienste NIS, rsh, finger, uucp, X11 und Mail benutzt worden, um die Datei zu stehlen.

Ein beliebtes Angriffsziel sind auch andere wichtige Systemdateien wie:

 
7.3. Verwenden von Sicherheitslücken in Protokollen

7.3.1. Internet Address Spoofing

Das Internet Address Spoofing ist die am weitesten verbreitetste und häufigste Einbruchsmethode. Dabei werden vom Angreifer synthetische Pakete an das Zielnetz geschickt, die als Quelladresse eine Adresse des Zielnetzes eingetragen haben. Wenn das Gateway des Zielnetzes keine Eingangspaketfilterung unterstützt, wird das Paket erst einmal an den Ausgangsport (in Richtung Zielnetz) weitergeleitet. Die hier eingerichtete Paketfilterung erkennt die Quelladresse als eine Adresse des internen Netzes und nimmt an, daß das Paket auch von dort stammt. Das Paket wird ohne weiteres durchgelassen und an den Zielhost geschickt. Zur Verdeutlichung soll das Verfahren an einem Beispiel erläutert werden (siehe auch Abb.7-2).

Abb. 7-2: Internet Address Spoofing

Der Angreifer besitzt die eigene IP-Adresse 155.63.74.5. Er erzeugt nun ein künstliches Paket mit der Quelladresse 210.50.50.8 und der Zieladresse (das Opfer) 210.50.50.12. Der Firewallrouter leitet das Paket an den entsprechenden Ausgangsport (210.50.50.0) weiter. Dort erst wird mittels der Filtertabelle die Quelladresse überprüft. Das Paket wird an das gewünschte Ziel weitergeleitet, da es anscheinend aus dem eigenen Netzwerk stammt.

Das Internet Address Spoofing dient als Ausgangsbasis für viele weitere Angriffsmöglichkeiten. Wenn dieser Angriff unterbunden werden kann, ist man vor den folgenden Angriffsvarianten ebenfalls gut geschützt:

Es sollte demzufolge eine Firewall zum Einsatz kommen, die Input- und Outputfilter unterstützt oder direkt das Spoofing blockieren kann. Die getestete Eagle Firewall bietet beide Optionen (siehe auch Abb. 6-5).

 
7.3.2. TCP-Sequenznummernangriff

Mit Hilfe dieser Technik können alle Sicherheitssysteme, deren Zugangsmanagement auf der Auswertung von IP-Sendeadressen beruhen, überwunden werden. Der Angriff basiert auf einer Sicherheitslücke des Internetprotokolls (beschrieben von R.T. Morris im Bell Labs Computer Science Technical Report Nr. 116 im Februar 1985).

Voraussetzung hierfür ist die Möglichkeit des Einschleusens von IP-Paketen mit dem unter Punkt 7.3.1. beschriebenen Address Spoofing. In der 3stufigen Handshakesequenz des TCP bei einem Verbindungsaufbau liegt der Ansatz dieses Angriffs. Bei einem normalen Verbindungsaufbau von Client A zum Server B sendet A ein Datenpaket, in dem das Synchronisationsbit SYN (siehe auch Punkt 3.3.1.3.) gesetzt ist. Gleichzeitig wird B die Anfangssequenznummer SN_A mitgeteilt. B antwortet nun mit einer eigenen Anfangssequenznummer SN_B und bestätigt zugleich die Anfangssequenznummer von A SN_A. Zum Schluß sendet A noch eine Bestätigung für SN_B an B. Die Verbindung steht und bei allen weiteren Paketen wird die Sequenznummer inkrementiert. Abbildung 7-3 zeigt die Handshakingsequenz schematisch.

AàB: SYN, SN_A
BàA: SYN, SN_B, ACK(SN_A)
AàB: ACK(SN_B)

Abb. 7-3: Handshaking bei TCP-Verbindungsaufbau

Die Wahl der Anfangssequenznummern wird nur zum Schein zufällig gewählt. Tatsächlich steht nur ein einfacher Algorithmus dahinter. Er ist in der RFC 693 beschrieben und besagt, daß alle 4 µs ein 32-Bit Zähler an der niederwertigsten Stelle um 1 erhöht werden muß. In Wirklichkeit, das heißt in der Berkeley-TCP-Implementation, wird der Wert nur jede Sekunde erhöht, und zwar um 128 innerhalb einer Verbindung und um 64 für jede neue Verbindung. Es kann also mit sehr großer Wahrscheinlichkeit vorausgesagt werden, welche Sequenznummer ein System bei einem neuen Verbindungsaufbau benutzen wird.

Bei einem Sequenznummernangriff wird der Angreifer zunächst eine zulässige Verbindung unter Benutzung einer beliebige Quelladresse Q zum Zielsystem Z aufbauen, damit ihm das Zielsystem seine Anfangssequenznummer SN_Z mitteilt. Mit Hilfe von IP-Spoofing wird unter der Identität eines internen Systems I eine Verbindungsaufforderung an einen kritischen TCP-Port, eventuell rsh, gesendet, die vom Zielsystem mit einer Anfangssequenznummer SN_Z+ an den internen Host I gerichtet, beantwortet wird. Diese Nummer, und alle weiteren, kann aber wie schon beschrieben aus der schon ermittelten SN_Z berechnet werden. Nach Bestätigung dieser Nummer durch den Angreifer geht das Zielsystem von einer gesicherten und internen rsh-Verbindung aus. Der Angreifer kann nun auf dem Zielsystem beliebige Operationen ausführen, unter der Voraussetzung, daß er weiter als Host I auftritt. Das etwas kompliziertere Handshaking nun schematisch:

QàZ: SYN, SN_Q
ZàQ: SYN, SN_Z, ACK(SN_Q)
IàZ: SYN, SN_Q
ZàI: SYN, SN_Z+, ACK(SN_Q)
IàZ: ACK(SN_Z+)

Der Nachteil ist, daß der Angreifer nicht alle Antworten des Zielsystems mitbekommt, da diese an den internen Host I gesendet werden. Nun besteht die Gefahr, daß System I die Verbindung unterbricht, nachdem es eine Bestätigung einer Verbindung erhält, die es nie angefordert hat. Das kann verhindert werden, in dem man einen nicht existenten oder inaktiven internen Host simuliert oder die Station in einem vorhergehenden Angriff vorübergehend lahmlegt.

Bemerkt wird dieser Angriff durch das massierte Auftreten von ACK-Paketen, die lange im Netz kreisen. Viele Firewalls können daraufhin eingestellt werden, daß bei der Überschreitung einer bestimmten Anzahl von ACK-Paketen innerhalb eines begrenzten Zeitraumes Alarm ausgelöst wird. Durch die Vermeidung der Authentifikation eines Hosts auf Basis von IP-Adressen und durch Input-Paketfilter können solche Angriffe verhindert werden.
 

7.3.3. IP-Fragmentangriff

Die maximale Nutzlast, die ein Ethernet-Paket übertragen kann, liegt bei 1500 Bytes. Die maximale IP-Paketgröße beträgt jedoch 65535 Bytes. Betroffene IP-Datenpakete werden deshalb vom Gateway in Fragmente unterteilt. Die im IP-Header stehende Identifikationsnummer dient der eindeutigen Identität der Paketfragmente und der Fragmentoffset legt die richtige Reihenfolge fest. Am Zielgateway eintreffende Fragmente werden nicht sofort zusammengesetzt, sondern erst beim Eintreffen an ihrem eigentlichen Ziel. Außerdem wird bei solchen Fragmenten der Zielport nur im ersten Fragment übertragen. Paketfilter, die ihre Entscheidung anhand der TCP-Portnummer treffen, stellen somit eine Gefährdung dar, da Fragmente ohne TCP-Portnummer nicht herausgefiltert werden können. Normalerweise werden Paketfragmente verworfen, wenn das erste Paket einer Fragmentsequenz fehlt. Mit einer entsprechenden Modifizierung der TCP-Implementation können solche unvollständigen Fragmentsequenzen dennoch ausgewertet werden. Die Voraussetzung hierfür ist, daß eine solche Implementierung auf dem Zielhost eingesetzt wird. Ein Linuxsystem ist geradezu prädestiniert für solche Zwecke, da der gesamte Kernelcode inklusive der Netzprotokolle frei zugänglich ist. Wenn ein Angreifer im internen Netz ein solches Linuxsystem installieren kann, zum Beispiel mit Hilfe eines Komplizen, können mit Hilfe dieser Methode sensible Daten durch die Firewall geschleust werden. Dieser Angriff eignet sich daher nur, wenn Unterstützung von Innen vorhanden ist. Heutzutage nimmt die Zahl der PC-Netze radikal zu. Auch die Hardwareausstattung dieser PC (Festplattengröße, RAM, CDROM, ...) wächst in einem sehr großen Tempo. Selbst ein Nichtprofi ist in der Lage, innerhalb kürzester Zeit auf seinem Arbeitsplatzrechner ein zusätzliches Betriebssystem zu installieren und somit einen modifizierten Linuxkernel zur Ausführung zu bringen.

 
7.3.4. ICMP Angriffe

Das Internet Control Message Protocol (ICMP) ist ein fester Bestandteil von IP und kann demzufolge nicht deaktiviert werden. Es setzt nicht wie TCP oder UDP darauf auf. Es dient unter anderem dazu, Absendern von fehlerhaften Datenpaketen auf diese Probleme hinzuweisen. Da Hosts und Router solche Nachrichten meist selbständig auswerten und sich dementsprechend umkonfigurieren ist es kein Problem, mit Hilfe von gefälschten ICMP-Nachrichten Computersysteme zu bestimmten Reaktionen zu bewegen.

Die ICMP-Nachrichten werden direkt in IP-Paketen eingekapselt. Die Adresse des Systems, das den Fehler entdeckt hat, wird als Quelladresse im ICMP-Paket eingetragen. Der Auslöser des Fehlers ist der Empfänger des Paketes. Das heißt, daß dem Absender des fehlerhaften Datenpaketes, nicht aber den dazwischen liegenden Stationen, mitgeteilt wird, daß ein Fehler aufgetreten ist. Abbildung 7-4 zeigt das Format eines ICMP-Headers, wobei zu beachten ist, daß der Header an der Stelle im IP-Header beginnt, wo normalerweise die IP-Optionen stehen.

Abb. 7-4: ICMP-Header

Die Tabelle 7-2 zeigt eine kleine Auswahl von möglichen Belegungen des Typfeldes, mit deren Hilfe die unterschiedlichen ICMP-Nachrichten spezifiziert werden.
 
Typ Beschreibung
0 Echo Reply (für ping)
3 Destination Unreachable (siehe Punkt 7.3.4.1.)
4 Source Quench (siehe Punkt 7.3.4.2.)
5 Redirect (siehe Punkt 7.3.4.3.)
8 Echo (für ping)
11 Time Exceeded (TTL auf 0)
12 Parameter Problem
30 Traceroute
Tabelle 7-2: Auswahl von ICMP-Nachrichtentypen

Für Angriffe werden am häufigsten die Typen 3 (Destination Unreachable), 4 (Source Quench) und 5 (Redirect) genutzt. Die damit verbundenen Möglichkeiten werden in den nachfolgenden drei Abschnitten beschrieben.

 
7.3.4.1. Destination Unreachable

Kann ein Datenpaket nicht bis zum Empfänger vermittelt werden, sendet die letzte aktive Station eine ICMP-Nachricht des Typs 3 (Destination Unreachable) an den Absender. Der Typ 3 besitzt noch eine Reihe von Untercodes um das Ganze noch etwas genauer zu spezifizieren, die in das Codefeld des ICMP-Headers (siehe Punkt 7.3.4.) eingetragen werden. Tabelle 7-3 zeigt einen kleinen Überblick über die möglichen Codes.
 
Code Beschreibung
0 Network Unreachable
1 Host Unreachable
3 Port Unreachable
4 Fragmentation Needed and DF set
5 Source Route failed (siehe Punkt 7.3.5.2.)
7 Destination Host unknown
11 Network Unreachable for Type of Service
12 Host Unreachable for Type of Service
Tabelle 7-3: Überblick über Codes der ICMP-Nachricht "Destination Unreachable"

Die ersten 64 Datenbytes des nicht zustellbaren Paketes werden zusätzlich neben dem ICMP-Header übertragen, damit die Sendestation genau erkennen kann, welche Verbindung abgebrochen werden muß. Bei einer normalen TCP/IP-Verbindung stehen im TCP-Header die Quell- und Zieladressen und -ports (siehe Punkt 3.3.1.3.). Der TCP-Header ist Teil der IP-Daten und demzufolge in den ersten 64 Datenbytes enthalten, die zurückgeschickt werden. Oft bestehen zwischen zwei IP-Adressen mehr als eine Verbindung mit jeweils unterschiedlichen Portadressen.

Das Problem liegt nun darin, daß viele ICMP-Implementierungen nicht in der Lage sind, diese Informationen aus den 64 Datenbytes zu extrahieren und einfach alle Verbindungen zu dem betreffenden System abbrechen. Ein Angreifer kann also mit Hilfe von künstlich erzeugten Destination-Unreachable-Nachrichten innerhalb kürzester Zeit eine große Anzahl von Internet-Verbindungen des anzugreifenden Systems aufheben. Eine etwas abgeschwächte Variante ist die permanente Versendung der Nachricht "Fragmentation Needed and DF set", wobei die angegriffenen Systeme dazu veranlaßt werden, ihre Daten zu fragmentieren und in immer kürzeren Paketen zu versenden. Die Folge davon ist eine Erhöhung der Netzlast.

Als Gegenmittel empfiehlt sich, die Router oder die Firewall so zu konfigurieren, daß nur eine bestimmte Anzahl von ICMP-Nachrichten innerhalb eines bestimmten Zeitintervalles in das innere Netz durchgelassen werden und bei erhöhtem Auftreten solcher Nachrichten automatisch Alarm ausgelöst wird. Die Eagle Firewall unterstützt mittels Paketfilter das Blockieren von konkreten ICMP-Nachrichten.

 
7.3.4.2. Source Quench

ICMP-Nachrichten vom Typ Source Quench werden in der Regel von Gateways benutzt, um die Übertragungsrate von Sendestationen zu reduzieren, um eine Überlastsituation zu beenden oder zu verringern. Die Sendestationen verringern daraufhin ihre Sendeleistung, bis keine Source-Quench-Nachrichten mehr eintreffen. Bei Mißbrauch, Versenden von künstlichen Source-Quench-Nachrichten, kann demzufolge der Netzverkehr erheblich gestört werden. Auch diese Nachricht kann mit einem Paketfilter von der Eagle Firewall blockiert werden.

 
7.3.4.3. Redirect

Normalerweise benutzen Router die ICMP-Nachricht "Redirect" dazu, Host zur Benutzung der optimalen Route zu veranlassen, wenn sie mit minimalen Routinginformationen neu im Netz aktiv werden. Mit Hilfe des IP-Spoofings (siehe Punkt 7.3.1.) ist es einem Angreifer möglich, künstliche ICMP-Redirects in das Netz zu schleusen und Router so zu einer Änderung der Vermittlungswege über beliebige Stationen, inklusive der Station des Angreifers, zu bewegen. Danach steht einem effektiven Einbruch nichts mehr im Wege.
 
Code Bedeutung
0 Redirect Datagramms for the Net
1 Redirect Datagramms for the Host
2 Redirect Datagramms for the Type of Service and Net
3 Redirect Datagramms for the Type of Service and Host
Tabelle 7-4: Codes der ICMP-Nachricht "Redirect"

Router sollten deshalb grundsätzlich nur nach ihren Routingtabellen vermitteln und so konfiguriert sein, daß sie nicht auf solche ICMP-Nachrichten reagieren.

 
7.3.4.4. Der Smurf-Angriff

Bei diesem Angriff handelt es sich um einen Denial-of-Service Angriff. Er ist relativ neu und beruht auf folgender Überlegung. Unter falschem Absender wird regelmäßig mit Hilfe von gespooften ICMP Nachrichten an eine Reihe von Broadcastadressen die Nachricht "ICMP echo request" (Typ 8) gesendet. Die Folge davon ist, daß jeder Client (weil Broadcast) die Nachricht beantwortet. Die Antwort wird an die gefälschte Sendeadresse geschickt und ist vom ICMP-Typ 0 (ICMP echo reply). Das Zielsystem wird mit Antwortpaketen bombardiert und seine verfügbare Netzbandbreite sinkt. Verhindert werden kann dieser Angriff, indem die Firewall keine entsprechenden ICMP-Nachrichten durchläßt. Allerdings ist das Netz dann blind, weil der ping-Befehl, auf dem dieser Angriff basiert, ein sehr wichtiges Administratorentool ist und somit nicht funktioniert. Wenn im Netz massenweise echo-replys auftauchen, ohne daß echo-requests existieren, ist dies ein deutlicher Hinweis auf diesen Angriff.

 
7.3.5. Routing Angriffe

7.3.5.1. RIP-Angriff

Ganze Kommunikationsverbindungen zwischen zwei Stationen können unbemerkt mit Hilfe des RIP-Angriffes über die Station eines Angreifers umgeleitet werden. Unter Zuhilfenahme des IP-Spoofings (siehe Punkt 7.3.1.) simuliert der Angreifer A eine interne Station I und übermittelt gefälschte RIP-Pakete an die anzugreifende Zielstation Z und den zwischen A und Z liegenden Gateways. Diese RIP-Pakete weisen Z und die Gateways an, alle Pakete, die von Z nach I gesendet werden sollen, nicht nach I sondern, entsprechend den modifizierten Routing Informationen, nach A zu senden. Der Angreifer checkt die angekommenen Pakete nach Paßwörtern, Logins oder ähnlichem durch und sendet sie mit aktivierter Source-Route-Option (siehe Punkt 7.3.5.2.) an das eigentliche Ziel I. Dadurch können vom Angreifer auch alle Anwortpakete von I nach Z überwacht werden.

Mit Hilfe eines Inputfilters wird dieser RIP-Angriff blockiert. Außerdem sollten alle Router so konfiguriert werden, daß ohne Rückfrage die Routingtabellen nicht überschrieben oder ergänzt werden können.

 
7.3.5.2. Source Routing Angriffe

Die im Internetprotokoll definierten Optionen (Optionfeld im IP-Header) können teilweise auch für Angriffe auf ein internes Netz von Außen mißbraucht werden. Eine Übersicht der möglichen Optionen zeigt Tabelle 7-5. Die Optionen 3 (Loose-Source-Routing) und 9 (Strickt-Source-Routing) ermöglichen zwei ähnlich aufgebaute Angriffsarten:

In beiden Fällen kann die Route, die das Datenpaket durch das Netzwerk nimmt, beeinflußt werden. Beim Strict Source Routing Angriff müssen dabei die Vermittlungsknoten, die das Paket passieren soll, in der richtigen Reihenfolge angegeben werden. Das heißt, daß zwei nacheinander eingetragene Knoten auch wirklich direkt miteinander verbunden sein müssen. Ansonsten erfolgt eine Fehlermeldung.
 
Option Beschreibung
0 End of option list
1 No operation
2 Security and handling restrictions
3 Loose Source Routing
4 Internet Timestamp
7 Record Route
8 Stream identifier
9 Strict Source Routing
Tabelle 7-5: IP-Optionen

Die gewünschten Knotenpunktadressen werden dabei einfach am Anschluß an den IP-Header im IP-Datenfeld eingetragen. Die Abbildung 7-5 verdeutlicht dieses Schema.

Abb. 7-5: IP-Vermittlungsknotenpunkte in einem IP-Datenpaket

Mehr Freiheit erlaubt der Loose Source Routing Angriff. Bei dieser Option ist es auch zulässig, daß zusätzliche Vermittlungsstellen zwischen den eingetragenen Knotenpunkten liegen dürfen. Es kann damit problemlos der Datenstrom zur Zielstation direkt an das System des Eindringlings umgeleitet werden. Der Angreifer simuliert mit Hilfe von IP-Spoofing (siehe Punkt 7.3.1.) eine Station im internen Netz und öffnet mit Hilfe der Option Loose-Source-Routing eine Verbindung zur Zielstation. Dabei wird für die Antwortpakete ein Pfad angegeben, der über das System des Angreifers führt. Das angreifende System kann alle Möglichkeiten nutzen, die eine reelle interne Station besitzt.

Wie schon unter Punkt 7.3.1. dargelegt kann man sich mit Hilfe eines Inputfilters schützen. Die Filterung von IP-Paketen mit aktivierter Source-Routing-Option bildet eine weitere Gegenmaßnahme.

 
7.3.6. ARP Angriffe

7.3.6.1. Denial-of-Service mittels ARP

Ein Denial-of-Service Angriff (siehe Punkt 7.3.7.) ist mittels ARP machbar. Normalerweise dient das ARP dazu, die Ethernet-Hardwareadresse einer Internetadresse herauszufinden, damit eine entsprechendes Ethernetpaket erzeugt werden kann. Dazu wird eine ARP-Anfrage mittels Broadcast an alle Teilnehmer des eigenen Netzwerksegmentes geschickt. Kann die Anfrage nicht beantwortet werden, wird sie über das Gateway per Broadcast an alle angeschlossenen Netzwerke weitergeleitet. Künstlich generierte ARP-Pakete zur Suche von nicht existierenden IP-Adressen führen dazu, daß alle Gateways versuchen, die Anfrage an die angeschlossenen Netzwerke weiterzuleiten. Die Folge davon sind Broadcaststürme, die über längere Zeit hinweg einen Großteil der Übertragungsbandbreite belegen, die Verfügbarkeit des Netzwerkes einschränken und die Funktionsfähigkeit stören. Das Versenden künstlicher ARP-Replies der nichtexistierenden IP-Adresse nach dem ersten Broadcaststurm verstärkt den Effekt noch, weil die Gateways diese Pakete wiederum per Broadcast verschicken. Wie schon unter dem Punkt 7.3.2. erwähnt, können viele Firewalls daraufhin eingestellt werden, daß im Fall extremer Überlastung Alarm ausgelöst wird.

 
7.3.6.2. Verändern der ARP-Tabelle

Bei diesem Angriff kann man den eigenen Host als einen anderen ausgeben, indem die ARP-Tabelle verändert wird. Der Sinn liegt zum Beispiel darin, daß dem Angreifer bekannt ist, daß ein Host A einen Host B vertraut. Dazu werden regelmäßig gefälschte ARP-Antworten an den einen Zielhost A versendet, in denen die MAC-Adresse des Angreifers mit der IP-Adresse des Zielhosts B assoziiert wird. Hosts A übernimmt nun diese Zuweisung in seinen ARP-Cache und braucht keine Requests mehr zu senden. Bei jedem Verbindungsaufbau von A zu B wird nun als Ziel-MAC die MAC-Adresse des Angreifers eingetragen und die Verbindung geht statt dessen zum Angreifer. Der muß nun nur noch die IP-Adresse des Hosts B emulieren. Dazu muß unter Unix nur ein ifconfig ausgeführt werden. Der Angriff funktioniert allerdings nur im lokalen Netz, da ARP-Pakete nicht geroutet werden. Gibt sich nun der Angreifer gegenüber einer Firewall als B aus und entscheidet der Application Proxy oder der Paketfilter dieser Firewall nur nach den IP-Adressen, ist auch die Firewall überlistet. Die Eagle Firewall bietet die Möglichkeit, einer IP-Adresse eine MAC-Adresse zuzuweisen (siehe Punkt 6.3.1.1.). Dies ist ein gutes Schutzmittel gegen diesen Angriff. Weiterhin kann der Angriff unterbunden werden, wenn nur statische ARP-Caches verwendet werden. Dazu wird unter Unix:

arp -s <hostname> <MAC-Adresse>

ausgeführt. Anschließend muß noch mit:

ifconfig <ethernet-device> -arp

verhindert werden, daß keine weiteren ARP-Einträge gemacht werden können. Ifconfig gibt es allerdings nicht unter Windows NT. Hier könnte man nur die MAC-Adressen überprüfen, aber wer macht das schon?
 

7.3.7. Denial-of-Service und Brute-Force Angriffe

Ein System anzugreifen bedeutet nicht zwingend, daß Hacker einbrechen müssen und/oder Daten zu stehlen. Auch das Beeinträchtigen des Systems hinsichtlich seiner Funktion oder das komplette Zerstören von Diensten oder des gesamten Systems sind als Angriffe aufzufassen. Wärend ein Denial-of-Service-Angriff nur bestimmte Dienste außer Gefecht setzt ist bei einem Brute-Force-Angriff das gesammte System mehr oder weniger betroffen.

Die einfachste und primitivste Möglichkeit sind sogenannte Mailbomben. Dazu wird eine Mail mehrere tausend Mal an das selbe Ziel geschickt. Die Folge davon sind gewaltige Einbrüche in der Performance und das Überlaufen des Festplattenspeichers. Die Schwierigkeit besteht für einen Administrator darin, sinnvolle Obergrenzen für solche Ressourcen festzulegen. Auch sollten Vorkehrungen für einen solchen Fall getroffen werden, das heißt, ein Mailer sollte erst dann den Empfang quittieren, wenn die Mail erfolgreich zwischengespeichert wurde. Ansonsten sollte die Mail zurückgeschickt werden. Auch der FTP-Dienst kann dazu mißbraucht werden, den Plattenspeicher zum Überlaufen zu bringen. Ein "wichtiger" Nebeneffekt bei einem Platten- und RAM-Überlauf ist, daß keine Prozesse mehr erstellt und ausgelagert werden können. Als Folge davon steht das System.

Weitere Formen von Denial-of-Service Angriffen stören die Kommunikation an sich. Die Möglichkeiten hierfür sind auch beträchtlich:

Den besten Schutz bieten dafür entsprechende Paketfilter. Allerdings ist es schwer, den Unterschied zwischen echten Meldungen, normalem Versagen und feindlichen Aktivitäten festzustellen.

Gute Beispiele für Denial-of-Service Angriffe sind die unter Punkt 4.3. beschriebenen Windows NT Sicherheitslecks:

 
7.4. Verwenden von Sicherheitslücken in Netzanwendungen

7.4.1. Angriffe durch Telnet und r-Tools

Eine weitere beliebte Angriffsart ist das Ausspionieren von Telnetsitzungen. Dabei wird mit Hilfe von Netzwerksniffern (siehe Punkte 7.5.6.-7.5.10.) der gesamte Netzverkehr abgehört. Das hat insofern schwerwiegende Folgen, da bei Telnetsitzungen der Loginname und das Paßwort im Klartext übertragen wird. Dabei wird jeder Buchstabe des Loginnamens und des Paßwortes in ein eigenes Datenpaket verpackt. Dem Autor war es möglich, mit Hilfe des Microsoft Netzwerkmonitors (siehe Punkt 7.5.10.) innerhalb von wenigen Minuten ein Login mit zugehörigem Paßwort auszuspionieren. Daraufhin entwickelte er ein Tool, daß diese Aufgabe automatisch erledigt (siehe Punkt 7.5.11.).

Eine zweite Möglichkeit besteht darin, Trojanische Pferde einzuschleusen, die den eigentlichen Loginvorgang simulieren und die Benutzereingaben aufzeichnen. Danach löscht sich das Programm meist selbst oder ruft seinerseits das Richtige auf. Oft wird vor dem Selbstlöschen noch eine Meldung ausgegeben, in der der Benutzer informiert wird, daß er ein falsches Paßwort eingegeben hat. Er nimmt nun an sich vertippt zu haben und versucht das Ganze noch einmal, diesmal mit dem richtigen Programm.

Die Gefahren bei der Nutzung der r-Tools (rsh, rlogin, ...) sind noch etwas größer. Hier ist es bei entsprechend konfigurierten Hosts möglich, eine Anmeldung ohne Eingabe eines Paßwortes durchzuführen bzw. Befehle ohne vorherigen Login-Vorgang auf dem Zielsystem auszuführen. Die Konfiguration dieser Hosts erfolgt in einer der beiden folgenden Dateien:

Diese Dateien sind demzufolge ein lohnenswertes Ziel von Angriffen. Besonders die rhosts-Datei in den einzelnen Homebereichen. So wurden schon rhosts-Dateien in FTP- oder UUCP-Verzeichnissen gefunden! Die Ausführung eines r-Befehls muß den folgenden Kriterien genügen:  
7.4.2. Mail Angriffe

7.4.2.1. Mail Spoofing

Die Übertragung der Mail geschieht über sogenannte Message Transfer Agents (MTA). Ein User Agent (UA), in der Regel das Mailfrontend, übergibt die Mail an den lokalen MTA und dieser verschickt die Mail über die verschiedenen Teilnetzwerke an weitere MTA zum Ziel-MTA. Dieser speichert die Nachricht dann in der lokalen Mailbox des Empfängers aus der sie der UA des Empfängers liest und zur Anzeige bringt. Ein MTA wartet dabei auf eine Verbindung auf dem TCP-Port 25. Nach einem Verbindungsaufbau werden verschiedene Schlüsselworte ausgetauscht, in denen der Empfänger, der Absender und die Mail an sich angegeben werden. Man kann nun mit Hilfe einer einfachen Telnetsitzung eine Mail unter einem fremden Namen verschicken (Mail-Spoofing). Dazu wird eine Telnetverbindung zu irgendeinem Host aufgebaut in dem der Zielport 25 angegeben wird:

telnet host 25

Die folgenden Zeilen zeigen den Mitschnitt einer solchen Sitzung. Kursiver Text stellt die Meldungen des Zielsystems dar, während der fette Text von Hand eingegeben wurde.

220-alpha.stp.de Sendmail 8.6.9/8.6.9 ready at Thu, 30 Oct 1997 21:51:29 +0100
220 ESMTP spoken here
HELO
250 alpha.stp.de Hello firewall2.stp.de [200.1.1.1], pleased to meet you
MAIL FROM: irgendwer@host.net
250 irgendwer@host.net... Sender ok
RCPT TO: testuser@alpha
250 testuser@alpha... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Der Empfaenger erhaelt diese Mail vom user irgendwer@host.net.
.
250 VAA00091 Message accepted for delivery
QUIT
221 alpha.stp.de closing connection
Wie dieses Beispiel zeigt, ist es nicht möglich nachzuweisen, daß eine Mail wirklich vom angegebenen Absender stammt, wenn keine elektronischen Unterschriften eingesetzt werden. Dazu kommt noch, daß die Mail als 7-Bit-ASCII-kodierter Klartext übertragen wird und deshalb ohne Probleme mit Hilfe von Sniffern mitgelesen werden kann. Anfang 1995 existierte sogar für kurze Zeit eine Web-Seite (http://www.netcreations.com/fakemail/), auf der man mit oben beschriebener Methode Nachrichten mit beliebigen Absender erzeugen konnte.

 
7.4.2.2. Risiken von MIME

Die Multipurpose Internet Mail Extension (MIME) ist, wie der Name schon ausdrückt, eine Erweiterung der Internet Mail. MIME dient dazu, die Beschränkung der Übertragung von nur ASCII-Dateien auf die Übertragung von Graphiken, Sprache und Binärdateien zu erweitern. Diese Daten werden in die eigentliche Mail integriert ohne daß Zusatzsoftware (zum Beispiel UUENCODE / UUDECODE) erforderlich ist. Vorausetzung ist, daß der Empfänger ebenfalls MIME unterstützt. Die enthaltene Grafik kann zum Beispiel direkt angezeigt werden. Allerdings können MIME-Mails auch Befehle beinhalten, die das interpretierende Programm zur Ausführung bringt. Der Nachrichteninhalt wird dazu vom Empfänger mit der unter "Access Type" angegebenen Methode zur Ausführung gebracht. Die definierten Optionen sind:

Die folgende MIME-E-Mail kann zum Beispiel dazu genutzt werden, die passwd-Datei des Empfängersystems auf das eigene System zu übertragen und dann auszuwerten. From: Sender
To: Empfänger
Subject: getpasswd
MIME-Version: 1.0
Message-ID: <idx@irgendwo.com>
Content-Type: multipart/alternative; boundary=42
Content-ID: <idy@nochirgendwo.com>
--42
Content-Type: message/external-body;
name="passwd";
site="localhost";
access-type=TFTP;
directory="/etc";
mode="image";
expiration="Fri, 27 Feb 1998 20:00:00 -0400 (EDT)"
Content-type: application/text
Content-ID: <id42@nochirgendwo.com>
--42
Weitere Informationen zu MIME sind in den folgenden RFCs zu finden:  
7.4.2.3. Sendmail Angriffe

Sendmail ist die sicher am weitesten verbreitete SMTP-Implementation. Obwohl es sehr leistungsfähig ist, besitzt es doch eine Reihe von Nachteilen, die vor allem die Sicherheit gefährden können. Sehr häufig läuft zum Beispiel der Sendmaildämon als Root-Prozeß ab, was zur Folge hat, daß das Ausnutzen von eventuellen Programmfehlern durch Hacker viel größere Schäden eintreten können. Weiterhin ist die Konfiguration von Sendmail sehr kompliziert und kryptisch. Die Wahrscheinlichkeit des Einschleichens von Mißkonfigurationen ist demzufolge auch sehr hoch. Desweiteren wurden in den letzten Jahren immer wieder neue Sicherheitslücken von gewieften Hackern entdeckt und auch genutzt. Die Sendmail-Version 5 ist davon am meisten betroffen. In dieser Version kann man durch Eingabe bestimmter Befehle nach einer Telnetverbindung auf den Mail-Port Befehle zur Ausführung bringen sowie Dateien modifizieren oder kopieren (CERT Advisory August 1995; CA-95:08). Da das Programm eventuell noch im Supervisormodus läuft, sind diesen Manipulationen gar keine Grenzen gesetzt. Auch der Internet-Wurm basiert zum Teil auf Sendmailbugs. Als Gegenmaßnahmen bieten sich an:

 
7.4.3. DNS Angriffe

7.4.3.1. Angriff auf DNS-Cache und die Zonendatei

DNS-Angriffe dienen häufig zur Vorbereitung eines Einbruchs mit Hilfe der r-Tools, da ja eine Voraussetzung die Zusammengehörigkeit von Benutzername und Internet-Adresse ist (siehe Punkt 7.4.1.). Das Ziel des Angreifers ist hierbei, die in-addr.arpa Tabelle des betreffenden DNS zu modifizieren und seine eigene IP-Adresse dem vertrauten Host zuzuweisen. So kann ein nachfolgender Einbruch mit einer r-Applikation erfolgreich durchgeführt werden, da die Überprüfung oben genannter Forderung erfolgreich verläuft. Häufig wird von der Applikation die Adresse nochmals in der entgegengesetzten Richtung überprüft. Damit hier die Täuschung nicht entdeckt wird, muß der Einbrecher sich noch Zugang zum DNS-Cache verschaffen.

Die Zonendateien des DNS-Servers sind ein weiteres lohnenswertes Ziel für Hacker. Diese enthalten wertvolle Informationen über den internen Netzwerkaufbau, wie Struktur und Adressierung. Das kann verhindert werden, indem nur der sekundäre DNS-Server Zugriff auf die Zonen-Dateien hat (TCP-Port 53).

 
7.4.3.2. Der Query-ID Angriff

Bei parallel laufenden DNS-Anfragen dienen 16bittige ID-Zahlen der Zuordnung von Antwortpaketen. Diese Query-IDs sollen zusätzlich vor gefälschten Antworten schützen. Wenn einem Angreifer bekannt ist, daß soeben eine DNS-Anfrage an einen Provider gestellt wurde und der Angreifer die Query-ID der Anfrage kennt, kann er die Antwort mit richtiger ID aber gefälschtem Inhalt an den Fragenden schicken. Dieser wird die Antwort glauben und speichern, da die ID stimmt. Der Hacker benötigt dazu aber eine eigene Domain mit einem selbst verwalteten Namespace und einem Programm, welches Anfragen am UDP-Port 53 entgegen nimmt. Mit einer nslookup-Anfrage ermittelt er dann den echten Name-Server, dessen Antworten er fälschen will und fragt dann bei ihm nach einem eigenen Rechner. Im Antwortpaket ist nun die Query-ID enthalten. Diese wird von den zur Zeit üblichen Name-Servern sequentiell durchnumeriert und bei jeder Anfrage um eins erhöht. Damit kennt der Angreifer die Query-ID der nächsten Anfrage. Nun wird vom Angreifer eine Anfrage nach dem zu verändernden Eintrag gestellt (zum Beispiel www.abc.de), die der Name-Server an einen anderen Name-Server weiterleiten muß. Hinterher wird sofort ein gefälschtes Antwortpaket an den Opfer-Name-Server geschickt, der die Antwort mit der richtigen Query-ID übernimmt. Zur Sicherheit schickt der Hacker mehrere Pakete mit immer größer werdenden IDs, damit für alle Fälle die richtige dabei ist. Da die gefälschten Antworten sofort nach der Anfrage gesendet wurden, sind sie schneller da, als die richtigen Antworten des zuständigen Name-Servers. Diese überzähligen Pakete werden bei Ankunft allerdings verworfen. Alle Anfragen nach www.abc.de werden nun mit der gefälschten IP-Adresse beantwortet. Der Angreifer kann somit sofort feststellen, ob der Angriff erfolgreich war. Wenn nicht, waren noch echte Daten im Cache. Allerdings sagt das TTL-Feld aus, wie lange diese Daten noch gültig sind. Der Hacker kann deshalb nach genau der richtigen Zeitspanne den Angriff wiederholen.

Möglich wird dieser Angriff nur mit Hilfe von gespooften IP-Paketen (gefälschte Sendeadresse). Das Verwenden von Query-IDs, die durch Permutation oder einen Zufallszahlengenerator entstehen, wäre ein effektiver Schutz vor diesem Angriff. Dieser kann aber auch durch eine Brute-Force-Methode vorgetragen werden, bei dem einfach alle 65536 mögliche Query-IDs durchprobiert werden.

 
7.4.4. NIS Angriffe

Von der Tatsache abgesehen, daß mit einem Sniffer die mittels NIS übertragenen Dateien abgehört werden können, sind auch NIS Clients Angriffsziele. Durch NIS-Server-Spoofing können dem Client falsche Paßwort- und Host-Adress-Dateien zugespielt werden.

 
7.4.5. Risiken von FTP und TFTP

7.4.5.1. FTP

Bei einer FTP-Sitzung wird für jede neue Datenübertragung eine neue Verbindung aufgebaut, die jedoch nach den Spezifikationen des TCP-Protokolls jedesmal eine andere neue Portnummer besitzen muß. Demzufolge kann nicht vorhergesagt werden, über welchen Port die Daten übertragen werden. Es ist deshalb sehr schwer, den FTP-Dienst über eine Firewall hinweg sicher zu ermöglichen. Außerdem läuft der FTP-Server mit Root-Rechten, da er die privilegierten Ports 20 und 21 benutzt. Im Laufe der Jahre wurde auch eine große Anzahl von Sicherheitslücken in diversen FTP-Server-Implementationen enthüllt. So wurde zum Beispiel 1994 ein Sicherheitsleck im FTP-Server wuftpd entdeckt. Bei einem Telnet auf den FTP-Port 21 und der nachfolgenden Eingabe des Befehls SITE EXEC wurden Root-Rechte auf dem betreffenden System erlangt (CERT Advisory April 1994; CA-94:07). Auch bei der Konfiguration als "anonymen File Server" sollte die notwendige Sorgfalt vorherrschen. Bei Mißkonfiguration können wichtige Systemdateien übertragen oder die angebotenen Dateien durch gehackte Versionen ersetzt werden. Eventuell kann auch eine rhosts-Datei auf das Zielsystem geschmuggelt werden. Da im etc-Verzeichnis des Root-FTP-Verzeichnisses eine passwd- und group-Datei existieren muß, sollte darauf geachtet werden, daß das nicht die Originaldateien sind. Es bietet sich an, eine modifizierte passwd zu erzeugen, in der die Paßwörter einen Sinn ergeben, falls sie geknackt werden sollten. Die entschlüsselten Paßwörter könnten zum Beispiel folgenden Satz bilden:

Es lohnt nicht hier einzubrechen, das System ist geschuetzt!

Einen Nachwuchshacker hält diese Meldung vielleicht schon von weiteren Versuchen ab.

 
7.4.5.2. TFTP

Noch größere Sicherheitsmängel bestehen beim Trivial File Transfer Protocol (TFTP). Es setzt nicht einmal ein Anmelden mit Benutzernamen und Paßwort voraus. Das Protokoll dient normalerweise dazu, beim Booten von Diskless-Workstations das Kernelimage vom Server in den Hauptspeicher zu laden. Dazu läuft TFTP auch auf UDP ab und setzt kein Protokoll mit garantierter Übertragung voraus. Mit einer simplen TFTP-Sitzung können so wichtige Systemdateien übertragen werden. TFTP-Operationen sollten deshalb nur auf die entsprechenden Dateibereiche beschränkt sein, wie die Boot- oder X11-Verzeichnisse. Sind keine Diskless-Workstations im Netz, sollten alle TFTP-Server gelöscht sein. Auch ein Boot-Angriff ist denkbar. Dazu werden zuerst die Verbindungen der Workstations zum Server unterbrochen, um einen Bootvorgang auszulösen. Danach können modifizierte Kernels gesendet werden, die die Workstation zur Ausführung bringt.

 
7.4.6. NTP Angriffe

Mittels dem Network Time Protcol (NTP) wird innerhalb eines Netzwerkes die Zeit der einzelnen Computer synchronisiert (UDP-Port 123). Die gemeinsame Zeitbasis nutzen einige Applikationen, wie zum Beispiel einige Authentifikationssysteme, die auf der Basis der aktuellen Zeit Einmalpaßwörter generieren. Durch Manipulation dieser gemeinsamen Zeitbasis (Zurücksetzen) können zum Beispiel schon abgelaufene Einmalpaßwörter nochmals benutzt werden. Die folgende Tabelle gibt einen Überblick über die möglichen Angriffsmethoden. Verhindern kann man einige dieser Angriffe, in dem die Zeitinformation verschlüsselt übertragen wird. Allerdings ist der Dekodierschlüssel nur einer bestimmten Station zugeordnet. Die Folge davon ist, daß die Zeitinformation nicht mehr über Broadcast mitgeteilt werden kann, sondern jedem Host einzeln übertragen werden muß.
 
Angriff Beschreibung
Maskerade Vortäuschen eines Time-Servers
Modifikation Modifizieren der Zeitnachrichten
Replay Wiederholen bereits gesendeter Zeitnachrichten
Unterbrechnung Löschen der Pakete des Time-Servers
Verzögerung Überschwemmen des Netzwerkes des Time Servers, um die Übertragung der Zeitnachrichten zu verzögern
Tabelle 7-6: NTP Angriffsarten

 
7.4.7. NNTP Angriffe

Am TCP-Port 119 werden die Internet-News-Dienste auf der Basis des Network News Transport Protocols (NNTP) angeboten. Ähnlich wie das SMTP ist NNTP auch sehr einfach aufgebaut und es kann auch auf ähnliche Weise mißbraucht werden. Mittels interaktiver Abfragen können Artikel übertragen werden, die auf dem Empfängersystem noch nicht existieren, wie zum Beispiel durch die Unternehmensphilosophie verbotene Newsgruppen. Da die Newsdateien in der Regel sehr groß sind (mehrere Megabyte) ist es möglich, durch entsprechende Manipulation die Festplatte zum Überlaufen zu bringen. Die Folge sind erhebliche Performanceeinbußen.

 
7.4.8. Risiken durch WWW und Gopher

7.4.8.1. WWW

Mit Hilfe von modifizierten URLs können u.a. wichtige Systemdateien übertragen werden. Auch die Angabe von Ports ist in einer URL zulässig. Dadurch lassen sich beispielsweise die Dienste auf den betreffenden Ports starten. Diese wiederum können durch ensprechende Eingaben zum Absturz gebracht werden oder eventuell bekannte Sicherheitslücken werden geöffnet. Das unter dem Punkt 7.4.2.1. beschriebene Mail-Spoofing kann auch mittels eines Webbrowser durchgeführt werden.

Eine weitere Gefahr besteht durch die Ausführung von CGI-Scripts (Common Gateway Interface). Sie werden von WWW-Seiten aufgerufen und dienen der Kommunikation zwischen WWW-Server und Programmen. Die Scripts haben die Aufgabe, die vom Nutzer in der Seite eingegeben Daten an das zu startende Programm zu übergeben und das Ergebnis an den Server weiterzuleiten. Hauptsächlich werden die Scripts in TCL oder Perl verfaßt. Die Gefahr besteht nun darin, daß ein Einbrecher sich Zugang zu den Scripts verschafft, diese modifiziert und anschließend zur Ausführung bringt. Auch die häufig unzureichende Prüfung der vom Nutzer eingegebenen Parameter stellen eine ernstzunehmende Gefahr dar, da einige CGI-Programme durch Eingabe der Parameter, gefolgt von einem Semikolon und einem Unixbefehl dazu gebracht werden können, den Unixbefehl auszuführen, nachdem die normalen Parameter bearbeitet wurden. Unter Unix dient das Semikolon als Trennzeichen von zwei Befehlen. Wird nun die Nutzereingabe direkt an die Shell weitergeleitet (warum auch immer) werden die nachfolgenden Befehle direkt abgearbeitet und das vielleicht sogar mit Rootrechten. CGI-Scripts sollten deshalb aus allen Eingaben die folgenden Zeichen herausfiltern:

 
7.4.8.2. Gopher

Das Gopherprotokoll setzt auf einer TCP-Verbindung des Ports 70 auf. Es werden nur Steuerbefehle vom Client zum Server und umgekehrt die Antworten übertragen. Nach Verbindungsaufbau sendet der Client zunächst eine Leerzeile, worauf der Server das Hauptmenü überträgt. Jede Zeile wird mit einem Carriage Return (CR) und Line Feed (LF) abgeschlossen. Das erste Zeichen jeder Zeile gibt dabei an, um was für ein Objekt es sich handelt (Datei, Suchdienst, Unterverzeichnis, ...). Danach folgen eine Kurzbeschreibung und ein "Selector-String". Als Trennzeichen kommt ein Tabulator zum Einsatz. Der Selector-String besteht häufig aus Pfad- und Dateiname und wird vom Client an den Server geschickt.

Durch Eingabe von bestimmten Zeichenketten können Gopher-Server dazu gebracht werden, Dateien zu versenden. Zum Beispiel ältere Versionen akzeptierten die Eingabe von:

../../../../../etc/passwd

und übertrugen die Datei anstandslos. Durch Modifizieren der Clientsoftware kann auch der Selector-String verändert werden. Ähnlich wie schon unter Punkt 7.4.8.1. beschrieben, kann durch Anfügen eines Semikolons mit nachfolgendem Befehl dieser Befehl zur Ausführung gebracht werden. Als Gegenmaßnahmen bieten sich folgende Möglichkeiten an:

Das Gopher Protokoll ist in der folgenden RFC ausführlich beschrieben:  
7.4.9. Überschreiben von Feldgrenzen

Eine beliebte Methode Systemdienste bzw. Dämonen zu bestimmten Dingen zu bewegen, wie zum Beispiel das Ausführen von Systembefehlen, oder zum Abstürzen zu bringen, ist die Übergabe falscher oder unzulässiger Parameter. So wurden zum Beispiel bei dem bekannten "ping-of-death" mehr als die zulässigen Bytes als Daten geschickt. Der ping-Server der Gegenseite speicherte die Daten in einen Feld, ohne vorher die Bereichsgrenzen zu checken und überschrieb so seinen eigenen Code. Je nach Betriebssystem erfolgte eine andere Reaktion, jedoch mit dem gleichen Erfolg. Unter Mutlitaskingsystemen erkannte der Memorymanager eine Speicherschutzverletzung und der Server beendete sich mit einem Segmentation-Fault. Häufig um dabei noch andere Dienste mitzureißen. Unter DOS stürzte das ganze System ab.

Falls es gelingt, in dieser Art und Weise Programmbereiche zu überschreiben, ohne daß das System das Programm beendet, können Befehle zur Ausführung gebracht werden, wenn der überschriebene Bereich im Codesegment liegt. Unter DOS dürfte diese Methode keine Schwierigkeiten bereiten.

 
7.4.10. Mißbrauch des ping-Befehls

Selbst mit dem normalen ping können Brute-Force Angriffe durchgeführt werden. Mittel zum Zweck sind die beiden Parameter -f und -l des ping-Befehls. Der f-Parameter dient dazu, die Pakete nicht jede Sekunde, sondern nach wenigen Millisekunden zu schicken. Der Parameter -l verändert hingegen die Paketgröße. Durch Kombination der beiden Parameter und eventuellem parallelem Starten mehrerer dieser pings, kann das Zielnetz erheblich in seiner verfügbaren Netzbandbreite eingeschränkt werden.

 
7.5. Verwenden von Angriffssimulatoren, Sniffer und Hackertools

7.5.1. Internet Scanner Safesuite

Abb. 7-6: Internet Scanner Safesuite

Die Internet Scanner Safesuite ist eine Sammlung von Tools, mit denen nach bekannten Sicherheitslücken gesucht werden kann. Voraussetzung ist eine Netzwerkinstallation auf dem zu untersuchenden Host. Die Tools simulieren Hackerangriffe, testen Programme auf unsichere Versionen und suchen nach Fehlkonfigurationen und Sicherheitslecks im Betriebssystem (siehe Anhang C). Die entdeckten Mängel werden aufgelistet und können zu einem Report zusammengestellt werden. Abbildung 7-7 zeigt eine Auswahl von Mängeln, die nach der Installation von Windows NT 4.0 Workstation (englische Version) und nachfolgendem Einspielen des Servicepacks 3 und der Bugfixes (siehe Punkt 4.3.) aufgedeckt wurden.

Nach Installation und Konfiguration der Eagle Firewall bleibt nur noch ein Mangel übrig: traceroute ist möglich von 127.0.0.1 zu 199.1.1.1. Traceroute zählt aber zu den Anforderungen, die unterstützt werden sollen. Die Adresse 199.1.1.1 stand im Testsystem für das externe Interface und ist demzufolge die offizielle Adresse.

Abb. 7-7: Vom Internetscanner aufgedeckte Mängel

Zu allen Positionen können detailierte Informationen aufgerufen werden, die die Art des Mangels, die Gefährlichkeit und die Gegenmaßnahmen beschreiben. Die Safesuite ist für diverse Betriebssysteme verfügbar, unter anderem für Windows NT und Linux. Sie besteht aus folgenden Tools:

Der Internet Scanner ist im Internet frei verfügbar (http://www.iss.net/eval/eval.html). Die freie Version ist nur dahingehend eingeschränkt, daß nur der lokale Host (127.0.0.1) getestet werden kann. In der Vollversion können auch ans Netz angeschlossene Host einbezogen werden.

 
7.5.2. Satan

SATAN steht für "Security Administrator Tool for Analyzing Networks". Wie der Name schon sagt, handelt es sich hierbei auch um einen Angriffssimulator wie die Internet Scanner Safesuite. Er ist im Internet frei verfügbar (http://www.fish.com/~zen/satan/satan.html) und läuft unter verschiedenen Unixderivaten. Demzufolge checkt er auch hauptsächlich Bugs und Sicherheitslücken von Unixnetzen und Unixdiensten. Da Satan so konfiguriert werden kann, daß auch Hosts des selben Netzwerkes gescannt werden, kann sein Einsatz auch auf andere Rechnerwelten ausgedehnt werden. Das Programm ist sehr populär und wird ständig weiterentwickelt. In jede neue Version werden neu entdeckte Lücken aufgenommen. Satan kann auch von Hand auf neue Funktionen erweitert werden. Er wurde mit der Interpretersprache Perl entwickelt. Zum Funktionsumfang siehe auch Anhang C.

 
7.5.3. Cops

COPS (Computer Oracle and Password-System) testet das lokale System auf Sicherheitslücken. Darunter fallen:

 
7.5.4. Juggernaut

Abb. 7-8: Screenshot: Juggernaut

Die ziemlich simple Oberfläche von Juggernaut (Abb. 7-8) täuscht über den Funktionsumfang des Tools hinweg. Das Programm ist frei verfügbar (http://www.phrack.com - Phrack Magazin 50/6) und wurde vom Autor unter Linux getestet. Es dient hauptsächlich dazu, Telnetsitzungen auszuspionieren und Befehle in den Datenstrom einzuschleusen (Hijacking). Dazu wird der Befehl mit vorausberechneter Sequenznummer an die Telnetsession geschickt. Das Originaltelnet schickt aber auch Pakete mit diesen Sequenznummern. Auf das zweifache Auftauchen dieser Nummern antwortet die Gegenseite mit einem ACK-Paket, um den richtigen Client auf das Mißverständnis aufmerksam zu machen. Die Sequenznummer dieser Mitteilung entspricht aber nicht der erwarteten des Clients und demzufolge sendet er auch ein ACK-Paket. Das Ganze schauckelt sich zu einem sogenannten ACK-Sturm auf. Dadurch kann das Hijacking entdeckt werden. Das Einschleusen der Befehle kann direkt geschehen (Punkt 5 in Abb. 7-8) oder interaktiv, das heißt, bei Betätigen einer Tastenkombination (Ctrl-C) wird der vorher eingegebene Befehl aktiviert. Weitere Features des Programms sind:

Es ist dem Autor gelungen, auf dem Zielsystem eine rhosts-Datei zu erstellen, ohne daß dies im Originaltelnet bemerkt wird. Der einzige Schutz ist, daß zum Ausführen des Programmes Rootrechte gebraucht werden und daß das Programm im interen Netz gestartet werden muß. Beides läßt sich jedoch mit einer Bootdiskette umgehen. Ein Administrator sollte also unbedingt bei einem steilen Anstieg von ACK-Paketen reagieren.

Die Gefahr ist deshalb so groß, weil der Einbruch erst nach einem erfolgreichen Anmelden des rechtmäßigen Nutzers erfolgt. Auch starke Authentifikationsmechanismen bieten deshalb keinen Schutz. Durch die Verfügbarkeit des Quelltextes kann das Programm auch auf andere Dienste wie zum Beispiel FTP oder r-Tools erweitert werden.

 
7.5.5. SDDF / EDDF

Bei der Konfiguration der Eagle Firewall fiel dem Autor auf, daß bei den Protokolldefinitionen (siehe Punkt 6.4.6.1.) zwischen den verschiedenen ICMP-Nachrichtentypen unterschieden wird, jedoch der Untertyp bzw. der Code keine Berücksichtigung findet. Ein probeweise erstellter Paketfilter und einige mittels ICMPSEND (siehe Punkt 7.5.12.) verschickte Pakete bestätigten diesen Verdacht. Auf Grund dessen entwickelte der Autor zwei Tools:

Die folgende Abbildung zeigt in zwei Screenshots die Tools in Aktion.

Abb. 7-9: Screenshot: EDDF und SDDF

Laut Anforderungen (siehe Punkt 2.3.) soll es möglich sein, vom internen Netz ins Internet pingen zu können. Das wurde mit entsprechenden Paketfiltern und einem Local Tunnel realisiert. SDDF sendet nun ICMP-Nachrichten vom Typ 8 (wie ping) an das Ziel. Der Paketfilter erkennt den Typ als zulässig an und läßt das Paket passieren. Damit nun am Ziel sich der ping-Server nicht angesprochen fühlt, ist der Untercode auf 9 gesetzt und nicht auf 0 wie beim normalen ping. Diesen Untercode wertet aber die Filterregel nicht aus. Die sich im Anschluß an den ICMP-Header befindlichen Daten passieren also ungehindert die Firewall. Die zu übertragenden Daten werden als Parameter angegeben. Auf dem Zielhost muß nun noch das EDDF-Tool laufen, welches ankommende ICMP-Pakete auf oben genannten Typ und Untertyp hin überprüft und bei Übereinstimmung die Daten extrahiert. Diese werden angezeigt. Selbst ein Netzwerksniffer erkennt nicht, daß in so einem Paket eventuell firmeninterne Daten übertragen wurden. Während im Screenshot von IPS (Abb. 7-10) die ersten beiden ICMP-Pakete von einem normalen ping stammen, ist die Quelle des dritten und vierten Paketes auf SDDF zurückzuführen.

EDDF wird ohne Parameter aufgerufen, SDDF nach folgender Syntax:

sddf zieladresse datenstring1 [weitere datenstrings]

Die Zieladresse und ein Datenstring müssen angegeben werden. Weitere Datenstrings sind möglich.

Die Modifikation des Quelltextes dahingehend, daß keine Strings von der Kommandozeile gesendet werden, sondern komplette Dateien, dauert sicher nur wenige Minuten. Das Ganze in ein Script verpackt und schon können ganze Festplatteninhalte aus dem internen Netz geschmuggelt werden. Auch das Versenden und Ausführen von Befehlen ist denkbar. Eine Quelltextmodifikation dahingehend dauert auch nicht viel länger. Als "Krönung" könnte der Ping-Server, der normalerweise in den IP-Stack eingebunden ist, modifiziert werden. Das Tool wäre somit fest in den Kernel integriert, es würden keine zusätzlichen Programme laufen und das Tool wäre damit unentdeckbar.

Der Quelltext befindet sich im Anhang B.5. und B.6. und nutzt die Headerfiles des Anhangs A. Die einzige Einschränkung ist, daß nur Root die Dateien ausführen darf. Da die Tools unter Linux entwickelt und getestet wurden, besteht auch keine Schwierigkeit, eine Linuxbootdiskette, die SDDF/EDDF enthält, zu erstellen. Den einzigen wirkungsvollen Schutz, ohne ping zu verbieten, wäre ein Ping-Proxy. Dem Autor ist allerdings keiner bekannt.

 
7.5.6. IPS

Das Tool IPS (IP Sniffer) wurde vom Autor entwickelt, um zu demonstrieren, daß es relativ einfach ist, einen Netzwerksniffer zu programmieren. Das Programm zeigt alle ankommenden Pakete an und gibt Informationen darüber aus, wie:

Darüber hinaus werden alle Pakete als Raw-Daten gespeichert und können somit zu einem späteren Zeitpunkt analysiert werden. Die Dateinamen lauten dabei <protokoll>data.raw (zum Beispiel udpdata.raw). Die Abbildung 7-10 zeigt einen Mitschnitt der Bildschirmausgaben. Die Ports, Adressen und Nummern werden der Übersichtlichkeit halber hexadezimal ausgegeben. Bei einem TCP-Paket kommen die folgenden Abkürzungen vor: Die ersten vier Pakete sind ICMP-Nachrichten. Jeweils 2 von einem normalen ping (Typ 8 Option 0) und von SDDF (Typ 8 Option 9). Daran folgt eine komplette finger-Sitzung (Port 4FH = 79). Deutlich erkannt man den Verbindungsauf- und abbau an den gesetzten TCP-Flags und den Sequenz- und Acknowledgementnummern. Zum Schluß folgen zwei UDP-Pakete mit dem Zielport 45H = 69. Über diesen Port läuft der TFTP-Dienst.

Abb. 7-10: Screenshot: IP Sniffer

IPS wurde unter Linux entwickelt und getestet. Die verwendeten Headerfiles sind im Anhang A aufgeführt und der Quelltext ist unter Anhang B.1. zu finden.

Das IPS-Tool ist ideal zum Testen von Netzverbindungen und Paketfiltern. Es half dem Autor bei der Analyse von Telnet-Sitzungen und von ping-Paketen. Infolge dessen entstanden die Tools TS (siehe Punkt 7.5.11.), ICMPSEND (siehe Punkt 7.5.12.) und SDDF/EDDF (siehe Punkt 7.5.5.). Das Tool ist leicht um einige nützliche Funktionen zu erweitern, wie zum Beispiel das Reagieren auf bestimmte Ereignisse. So könnte etwa ein Logging realisiert werden, daß bei jedem Verbindungsversuch von r-Tools eine Mail sendet.

 
7.5.7. Ethload / Ethdump

Diese beiden Tools sind im Internet frei verfügbar und stammen vom selben Autor. Bei Ethdump handelt es sich um einen Paketcapture für DOS und Ethload ist ein Paketanalyser für DOS. Alle ankommenden Pakete schreibt Ethdump in eine Datei und ergänzt die Daten um allgemeine Informationen wie:

Ethload dagegen arbeitet interaktiv, das heißt, daß bei Eintreffen des Pakets dieses sofort analysiert werden kann. Es wird auch eine Statistik über die Netzlast geführt. Jedes Paket kann bis hinunter zu den Protokollheadereinträgen genauestens untersucht werden. Hierin liegt auch die Stärke des Programms. Es unterstützt alle gängigen Protokolle einschließlich ARP, RARP, DECnet, SPX (Sequence Paket Exchange) und IPX (Internetwork Paket Exchange). Ethload eignet sich hervorragend dazu, das Netzwerk hinsichtlich auftretender Protokolle und Netzlast zu analysieren. Es ist allerdings nicht möglich, die Pakete zu manipulieren oder direkt die übertragenen Daten anzuschauen. Für letzteres kann Ethdump benutzt werden.

 
7.5.8. Gobbler

Auch das Programm Gobbler ist wie Ethload ein Netzwerkanalyser für DOS. Allerdings liegt seine Stärke nicht in der Analyse, sondern in der Benutzung von Filtern. Mit Hilfe jedes einfachen Editors können neue Filter erstellt werden. Das Erstellen eines Filters für ein neues Protokoll ist durch die einfache Syntax kein Problem. So können auch exotische Protokolle analysiert werden. Hinzu kommt noch, daß die Datenpakete in eine Datei geschrieben werden können. Man kann diese Daten auch noch nachträglich dem Programm zur Untersuchung übergeben.

 
7.5.9. TCP-Dump

Auch bei TCP-Dump handelt es sich um einen Sniffer. Es existieren viele frei verfügbare Versionen für die unterschiedlichsten Unixderivate. Im Vergleich zu den anderen besprochenen Programmen besitzt es nicht so einen großen Funktionsumfang. Es kann nicht einmal mit einer Bedienoberfläche im Textmodus aufwarten. Sein Vorteil liegt aber in der Verfügbarkeit des Quelltextes für viele Betriebssysteme. Dadurch können wichtige Funktionen vom Benutzer noch selbst hinzuprogrammiert werden. Zum Auffinden von Fehlern in der Netzkonfiguration ist der Umfang von TCP-Dump ausreichend.

 
7.5.10. Microsoft Netzwerkmonitor

Das letzte hier aufgeführte Programm aus der Reihe von Netzwerkanalysatoren ist der Microsoft Netzwerkmonitor für Windows NT. Er ist Bestandteil des Microsoft Systems Management Server-Produktes. Die Abbildung 7-11 zeigt die Arbeitsoberfläche des Programms.

Abb. 7-11: Screenshot: Netzwerkmonitor

Der Monitor kann immer nur Pakete von einem Interface abfangen. Dafür glänzt er mit einer sehr guten Benutzeroberfläche und einer umfangreichen, 60 Protokolle umfassenden Unterstützung. Die abgefangenen Pakete können angezeigt und sofort genau analysiert werden. Die Daten werden dabei in einer baumähnlichen Sichtweise dargestellt (siehe Abb. 7-12). Man kann sich durch den ganzen Protokollstack durchklicken und alle protokollspezifischen Informationen anzeigen. Die Suche nach bestimmten Dingen geht dadurch sehr schnell. Die ankommenden Pakete können auch gefiltert werden, um nur bestimmte Protokolle zu untersuchen. Desweiteren können statistische Aussagen über die Pakete getroffen werden, wie:

Sollte der Netzwerkmonitoragent auf anderen Computern im Netzwerk installiert sein, kann das dortige Programm ferngesteuert werden. Der Agent ist für Windows NT Workstation, Windows NT Server und Windows 95 verfügbar.

Abb. 7-12: Paketanalyse im Netzwerkmonitor

Das Auslösen von vorher definierten Aktionen bei Eintreten bestimmter Bedingungen wird ebenso unterstützt wie das Vergeben von Paßwörtern. Während des Datensammelns werden Daten des aktuellen Pakets online angezeigt. Dazu gehören:

Leider arbeitet der Netzwerkmonitor nicht mit den virtuellen Netzadaptern der Eagle Firewall zusammen. Er wäre sonst eine hervorragende Ergänzung zur Überwachung der Firewall.

 
7.5.11. TS

Mit dem Programm TS (Telnet Sniffer) können Loginnamen und Paßwörter ermittelt werden. Voraussetzung ist, daß ein Benutzer sich auf der Maschine mittels Telnet anmeldet, auf der TS läuft.

Abb. 7-13: Screenshot: Telnet Sniffer

Einmal gestartet, wartet das Programm auf einen Verbindungsaufbau zum Port 23 (Telnet). Sobald ein TCP Paket mit gesetztem SYN-Flag ankommt, startet sich TS selbst noch einmal im Hintergrund. Während der Child-Prozeß diese Verbindung abhört und den Loginnamen und das Paßwort herausfiltert, wartet der Vaterprozeß auf neue Verbindungen. Nach erfolgreichem Sniffing wird das ermittelte Paßwort und der Loginname angezeigt und der Kindprozeß terminiert. Schon bestehende Verbindungen werden erkannt und bei Schließen einer Verbindung wird eine entsprechende Meldung ausgegeben. Mehrere gleichzeitige Verbindungsanforderungen stellen auch kein Problem dar. Sie werden anhand ihres Quellports auseinandergehalten. Bleibt noch zu erwähnen, daß TS nur von Root ausgeführt werden kann und unter Linux entwickelt und getestet wurde. Der Quelltext befindet sich im Anhang B.2. und es wurden wieder die unter Anhang A aufgeführten Headerfiles verwendet.

Im Anhang B.3. befindet sich der Quelltext zu einer erweiterten Version (TSI - Telnet Sniffer interactiv). Bei Aufruf mit dem Parameter "-i" (wie interaktiv) wird nur auf einen Verbindungsaufbau gewartet und kein weiterer Prozeß gestartet. Dafür werden alle Bildschirmausgaben, die der Nutzer der Telnet-Sitzung sieht, abgefangen und zur Anzeige gebracht. Es können somit alle Transaktionen mitverfolgt und eventuell mit Hilfe einer Ausgabeumleitung in einer Datei festgehalten werden. Durch leichte Modifikation und Erweiterung des Quelltextes sind auch Funktionen implementierbar, wie sie das Programm Juggernaut (siehe Punkt 7.5.4.) bietet, wie zum Beispiel das Einschleusen von Befehlsketten (Hijacking).

 
7.5.12. ICMPSEND

Das Tool ICMPSEND wurde vom Autor entwickelt, um die unter Punkt 7.3.4. beschriebenen ICMP-Nachrichten erzeugen zu können. Der Aufruf muß folgender Syntax genügen:

icmpsend loop adresse typ code [daten]

Der loop-Parameter gibt an, wieviele Pakete verschickt werden sollen. Die Zieladresse muß im normalen IP-Adressenformat (aaa.bbb.ccc.ddd) vorliegen. Der Typ und Code geben die zu versendende ICMP-Nachricht mit ihrem Untertyp an. Der Datenparameter ist optional. Wird er angegeben, wird versucht, dieses Argument in eine IP-Adresse umzuwandeln und diese Adresse als Daten verschickt. Das dient u.a. dazu, bei Redirect-Nachrichten die IP-Adresse anzugeben. Mit ICMPSEND ist es auch möglich, den ping-Befehl zu simulieren:

icmpsend 5 112.54.34.2 8 0

Die Adresse 112.54.34.2 wird fünf mal angepingt. Die Antwortpakete können zum Beispiel mit des Autors IPS Tools (siehe Punkt 7.5.6.) registriert werden. Wie die anderen Programme wurde auch dieses unter Linux entwickelt und getestet. Es ist nur von Root ausführbar. Der Quelltext und die Headerfiles sind in den Anhängen zu finden. Ein Aufruf ohne Parameter bringt einen kurzen Hilfstext auf den Bildschirm. ICMPSEND deckte das Sicherheitsleck der Eagle Firewall auf, das sich das Programmpaar SDDF/EDDF (siehe Punkt 7.5.5.) zunutze macht.



© by Stephan Pilz