Report: TCP-Hijacking
Titelgrafik (16k) Jürgen Schmidt
Kidnapping im Netz
Cracker-Tool enführt Telnet-Verbindungen

Nach rechtsradikaler Propaganda und Kinderpornographie jetzt auch noch Entführungen im Internet! Gewissenlose Cracker kidnappen komplette Verbindungen, schleusen zerstörerische Befehlssequenzen in den Datenstrom ein und verschwinden unerkannt.
Panikmache? Nicht mehr, seit Juggernaut im Netz verfügbar ist.


Es ist passiert! Schon seit Jahren ist bekannt, daß es theoretisch möglich ist, bestehende Telnet-Sitzungen zu hijacken, also von einem fremden Rechner aus zu übernehmen [1]. Gerüchten zufolge hatten TCP/IP-Experten sogar schon konkrete Programme geschrieben, die dies in die Praxis umsetzen. Doch bisher war die Hoffnung weit verbreitet, die dafür notwendigen Kenntnisse der Netzwerkprogrammierung überstiegen die Fähigkeiten der Cracker im Netz. Diese Hoffnung hat sich nun endgültig als trügerisch erwiesen.
Vor kurzem veröffentlichte das Hackermagazin Phrack im Internet den Quellcode von Juggernaut. Dieses Tool kann jedermann durch ein einfaches 'make' auf einem Linux-Rechner übeisetzen. Auch der weitere Einsatz des Juggernauts erfordert keinerlei Spezialkenntnisse. Ebenso wie die bereits bekannten Netzwerk-Sniffer basiert der Juggernaut auf der Tatsache, daß im Ethernet im Prinzip jede Netzwerkkarte den gesamten Verkehr des lokalen Netzes sieht (solange die Rechner am gleichen Hub hängen). Im sogenannten 'promiscous mode' liest die Karte jedes einzelne Paket mit und liefert es an das System weiter. Dies nutzen beispielsweise Netzwerkmonitore zu Diagnosezwecken.
Abb. 1
Kopie und Original: Wenn die Textemulation stimmt, können sogar Text-Interfaces wie dieses Konfigurationstool ausspioniert werden.
Die Herausforderung besteht nun darin, 'rohe' IP-Pakete zu verarbeiten, eine Aufgabe, die normalerweise der TCP/IP-Stack des Betriebssystems übernimmt. Nachdem sie entsprechend entpackt sind, kann der Eindringling jede Verbindung, die über das lokale Netz geht, beobachten, da er über die gleichen Informationen verfügt wie der rechtmäßige Empfänger. Das gleiche gilt im übrigen auch für jeden Rechner auf dem Weg zwischen zwei Internet-Hosts. Ihr Internet-Provider etwa könnte jedes einzelne Paket mitlesen.
In einem zweiten Schritt stellt ein bösartiges Programm IP-Pakete selbst zusammen, die dann neben eigenen Daten auch eine beliebige Absenderadresse enthalten können. Damit kann man sich in eine bestehende Verbindung einklinken, da der Empfänger keine Möglichkeit mehr hat, den eigentlichen Absender festzustellen. Einzige Vorbedingung ist, daß die Pakete sich nahtlos in den bestehenden Datenstrom einfügen, das heißt, daß sie die korrekte Sequenznummer tragen.
Mit dem Juggernaut stehen auch Hackern ohne Netzwerkkenntnisse erschreckende Möglichkeiten zur Verfügung. Im Hintergrund gestartet, sammelt das Programm beispielsweise auf Wunsch Paßwörter. Wenn Sie jetzt denken 'Kein Problem, ich benutze weder Telnet noch FTP', freuen Sie sich wahrscheinlich zu früh. Oder holen Sie etwa Ihre Mail nicht über POP (Post Office Protocol)? Bei diesem Protokoll zur Übertragung von EMail wird das Paßwort ebenfalls im Klartext übertragen.
Innerhalb kürzester Zeit kann ein Eindringling die Mail-Paßwörter ganzer Abteilungen ausspioniqren. Mit ihnen kann er die gesamte EMail seiner Opfer mitlesen oder nach seinem Belieben filtern. Auch spezielle Paßwörter etwa zum Buchhaltungsprogramm oder der Zeiterfassung könnten mit geringen Kenntnissen der eingesetzten Software mitgeschnitten werden.

Sturmwarnung

Das Transport Control Protocol (TCP) bietet verläßliche Full-Duplex-Verbindungen zwischen zwei Hosts. Dazu versieht der Absender jedes Paket mit seiner aktuellen Sequenznummer. Der Empfänger bestätigt den Erhalt mit einem Acknowledgement-Paket (kurz ACK), das die Nummer des nächsten von ihm erwarteten Pakets enthält und mit seiner eigenen aktuellen Sequenznummer versehen ist.
Diese Sequenznummern werden zu Beginn einer Verbindung ausgehandelt. Erhält einer der beiden Hosts ein Paket außerhalb dieses Stroms, verwirft er es und fordert über eine nochmalige Bestätigung der letzten korrekt übertragenen Daten das seiner Meinung nach fällige Paket an.
Sind Client und Server desynchronisiert, weil ein Dritter Pakete in den Paketstrom eingeschleust hat, sendet beispielsweise der Client Pakete mit einer veralteten Sequenznummer. Der Server weist ihn mit einem ACK-Paket auf das Mißverständis hin. Dummerweise entspricht aber die Sequenznummer der Bestätigung nicht den Vorstellungen des Client, woraufhin dieser sich genötigt fühlt, ein weiteres ACK zu senden - und so fort.
Befinden sich alle beteiligten Rechner im selben lokalen Netz, schaukelt sich diese Endlosschleife zu einem sogenannten ACK-Storm auf, der erst abflaut, wenn die Kapazität des Netzes überlastet ist und Pakete verlorengehen. Diese ACK-Stürme sind charakteristisch für Angriffe auf die Synchronisation über Sequenznummern. Treten Phasen auf, in denen deutlich über 90% des Verkehrs auf einem lokalen Netz aus Acknowledgements ohne Daten bestehen, sollte der Netzwerkadministrator sofort entsprechende Maßnahmen einleiten.
Es ist sogar denkbar, eine einzelne Boot-Diskette mit einem Juggernaut-Batch zu erstellen. Diese steckt der Eindringling im Vorbeigehen in das Diskettenlaufwerk eines unbenutzten Rechners, startet den Rechner und holt die Diskette nach einer Stunde mit den gesammelten Paßwörtern wieder ab.
Noch gefährlicher sind die interaktiven Features des Juggernaut. Im diesem Modus registriert er alle neu initialisierten Telnet-Verbindungen. Diese können nach Belieben beobachtet und unterbrochen werden. Ein kleiner Daemon kann automatisch jeden Verbindungsaufbau zwischen bestimmten Rechnern verhindern und so eine Netzwerkstörung simulieren. Während dieser Zeit kann der Eindringling in aller Ruhe seiner Tätigkeit nachgehen.
Die eigentliche Krönung aber ist das Hijacking. Dabei schleust der Cracker mit Hilfe des Juggernaut einzelne Befehle in den Datenstrom ein. In der Regel bedeutet dies, daß der legitime Benutzer 'abgehängt' ist. Der Server hat bereits die eingeschmuggelten Pakete erhalten und akzeptiert, das heißt, er verwirft die 'echten' Pakete als veraltet. Client und Server sind desynchronisiert (siehe auch Kasten 'Sturmwarnung'). Der Benutzer bemerkt nur, daß seine Verbindung plötzlich tot ist.
Dieser Angriff hat im Vergleich zu den herkömmlichen Versuchen, Paßwörter auszuspionieren, eine neue Qualität. Denn selbst starke Authentifizierungsverfahren wie Einweg-Paßwörter (SKey und Co.) oder Ticket-basierte Systeme wie Kerberos bieten davor keinen Schutz. Der Einbruch erfolgt erst, nachdem die Authentifizierung durchgeführt wurde und sich der Benutzer rechtmäßig eingeloggt hat.
Der Quellcode von Juggernaut beschränkt sich auf das Entführen von Telnet-Verbindungen. Da der Angriff aber nur auf den Synchronisationsmechanismen des Transport Control Protocol (TCP) basiert, sind generell alle TCP-basierten Dienste gefährdet. Mit Grundkenntnissen in der Netzwerkprogrammierung ließe sich der Code auch auf rlogin, rsh, SMTP, HTTP oder FTP übertragen.

Praktische Piraterie

Konkret gelang es uns, mit dem Juggernaut zumindest einzelne Befehle einzuschleusen. Aber ein einziges 'del *.*' beziehungsweise 'rm -rf *' kann schon mehr als genug Schaden anrichten. Dabei aktivierten wir den Reset-Daemon, so daß der rechtmäßige Benutzer, nach dem er einmal abgehängt wurde, keinen Zugang mehr zum System erhält. In der Regel wird er das Problem auf eine Störung des Netzwerks schieben.
Sitzt der Angreifer im Internet, irgendwo auf dem Weg zwischen zwei Hosts, funktioniert der Angriff noch besser, da die im Kasten geschilderten Acknowledgement-Stürme nicht sOlche Dimensionen annehmen wie im lokalen Netz. Ein Benutzer, der sich über Telnet von außen einloggt, gefährdet damit unter Umständen das ganze Firmennetz. Ein Einbrecher könnte sich durch geschicktes Einschleusen von Befehlen Zugang zu einem Rechner hinter dem Firewall verschaffen. Einmal im LAN, kann er zum Beispiel mit Hilfe des eingebauten Paßwort-Sniffers weitere Rechner attackieren.
Der Netzwerkadministrator kann Juggernaut-Angriffe eigentlich nur auf zwei Wegen bemerken. Zum einen sollten Beschwerden der Benutzer über Netzwerkstörungen die Alarmglocken schrillen lassen. Zum anderen fallen bei einer regelmäßigen Analyse des Paketverkehrs die Ack-Stürme auf. Während eines Angriffs machen Telnet-Acknowledgements bis zu 99 Prozent des gesamten LAN-Traffic aus.
Die einzige Möglichkeit, sich gegen Hijacking-Angriffe zu schützen, besteht in der Verschlüsselung der kompletten Sitzung. Da TCP/IP in der aktuellen Version 4 keine Verschlüsselung auf Transportoder Linkebene vorsieht, müssen zusätzlich Programme für den gesicherten Transport sorgen. Das Paket ssh (Secure Shell) etwa bietet verschlüsselte Kanäle zwischen zwei Rechnern, über die rlogin, rsh oder auch File-Transfers abgewickelt werden können. Die Verschlüsselung erfolgt über IDEA oder Triple-DES. In IP Version 6 bietet IPSEC ähnliche Features.

(ju)

Literatur

  1. 'A Simple Active Attack Against TCP', Laurent Jonceray, 4/95, http://www.deter.com/unix/papers/tcp attack.pS.gZ
  2. Informationen zu ssh: http://www.cs.hut.fi/ssh/, ftp://ftp.cert.dfn.de/pub/tools/net/ssh

c't

c't 1997, Heft 10