•  

Gefährdungen durch Man-in-the-Middle-Angriffe

Bieten sich einem Angreifer keine direkten Angriffsmöglichkeiten auf IT-Systeme und IT-Anwendungen oder gilt es in einer frühen Angriffsphase zunächst Informationen über die IT-Umgebung zu erlangen, sind sogenannte Man-in-the-Middle (MitM) Angriffe ein probates Mittel. Dabei wird die Kommunikation zwischen zwei Parteien im Netzwerk ausgespäht, indem den beiden jeweils die Identität des anderen vorgespielt wird. Insbesondere im Kontext unzureichend verschlüsselter Verbindungen und moderner Authentisierungsverfahren ist diesen vergleichsweise alten Angriffstechniken wieder eine erhöhte Aufmerksamkeit zu widmen.

Um einen MitM-Angriff durchzuführen, muss sich ein Angreifer entweder physisch im Leitungsweg der Datenübertragung befinden oder die technische Möglichkeit haben, die Datenübertragung aufgrund einer topologischen Nähe über ein von ihm kontrolliertes System zu führen. 

Wir werden im Folgenden verschiedene Angriffsvektoren analysieren. Hierfür arbeiten wir in Anlehnung an das TCP/IP-Schichtenmodell. Das Modell beschreibt auf eine abstrakte Weise, wie Daten über Systemgrenzen hinweg kommuniziert werden. Es gibt dabei vier unterschiedliche Schichten zu beachten. Die Netzwerkschicht bildet die erste Schicht und enthält die Signalübertragung und Auswertung der Signale. Hierzu gehören Netzwerkkarten und die darin enthaltene Codierung und Decodierung der Signale. Weiter befindet sich hier die Verbindungs-bereitstellung von physikalischen Verbindungen. Eine Schicht über der Netzwerkschicht befindet sich die Internetschicht mit dem bekannten IP-Protokoll. Hier ist die Zustellung von Daten geregelt. Möchte ein System mit einem anderen entfernten System kommunizieren, wird in dieser Schicht versucht einen Weg, womöglich über mehrere Systeme hinweg, bereitzustellen und die Kommunikationsdaten zu leiten. Die darüber liegende Schicht ist die Transportschicht. Die Datenübertragung zwischen zwei Systemen wird hierbei in den meisten Fällen über eines der Protokolle TCP oder UDP erfolgen. TCP ist ein verbindungsorientiertes Protokoll, das Zustands-daten auf beiden Systemen hält, um so den Datenfluss zu regeln. UDP hingegen ist ein sog. verbindungsloses Protokoll. Hier spielt der Zustand keine Rolle. Die oberste Schicht ist die Anwendungsschicht. Hier befinden sich die für verschiedene Verwendungszwecke spezifischen Protokolle, wie HTTP für die Verarbeitung von Webseiten oder SMTP für die Übertragung von E-Mails.

Mit diesem kleinen Abriss des Modells kommen wir nun zu den MitM-Angriffen. Wir werden klassische Angriffe wie ARP-Spoofing und DNS-Spoofing besprechen, aber auch auf zurzeit besonders relevante Themen, wie einem Angriff gegen RDP, eingehen. Wir beginnen mit drei Beispielen für die unterste Schicht (Netzwerkschicht). 

Angriffe auf LAN-Verbindungen

Der in Abbildung-1 dargestellte USB Ethernet Adapter ist technisch modifiziert und erlaubt das Mitlesen und Aufzeichnen von Kommunikationsdaten. Solche Adapter gibt es in verschiedenen Ausführungen, so können diese etwa ein WLAN-Modul integriert haben. Ein Angreifer muss einmal das Gerät platzieren und kann dann mit räumlichem Abstand die Daten empfangen. Bei der Platzierung wird ein vorhandenes LAN-Kabel in den Adapter umgesteckt. Unter Windows wird die Verbindung, wenn nicht entsprechende Schutzmaßnahmen getroffen wurden, automatisch auf den Adapter umgestellt. Unverschlüsselte Verbindungen können uneingeschränkt mitgelesen werden. Bei verschlüsselten Verbindungen mit Zertifikaten, wie über TLS/SSL, muss die Möglichkeit des Spoofens von Zertifikaten durch das Produkt gegeben sein. Hier könnten erfahrene Nutzer Anzeichen eines Angriffs erkennen. Quellen: https://www.hak5.org/gear/lan-turtle 

                      

Abbildung-1: USB Ethernet Adapter mit MitM Komponenten

Angriffe auf WLAN - Rogue Access Points

WLAN-Zugangspunkte (Access Point, kurz AP) bieten heutzutage durch Verschlüsselungs-techniken eine weitgehend sichere Kommunikation, können jedoch durch „bösartige“ Zugangspunkte (Rogue AP) überlagert werden. Ein Angreifer stellt hierfür einen eigenen AP auf und ahmt die Eigenschaften des legitimen APs nach. Hierbei handelt es sich um die SSID (Service Set Identifier) und den Namen des Funknetzes. Beide Informationen können durch eine WLAN-Karte empfangen werden.

Ein Nutzersystem verbindet sich automatisch mit dem AP, der das stärkste Signal liefert. Dazu muss das System entweder näher am Rogue AP sein oder der bösartige AP verstärkt sein fernes Signal, um das nähere zu überlagern. Handelsübliche Geräte müssen sich bei der Signalstärke an die einschlägigen EU-Richtlinien halten. Ob diese Richtlinien auch von einem Angreifer einge-halten werden, ist zu bezweifeln, denn technisch sind höhere Leistungen möglich. Verbindet sich also ein Nutzersystem mit dem Rogue AP des Angreifers, kann dieser zwar eine Internet-verbindung bereitstellen, jedoch wird das Opfer nicht auf firmeninterne Netzwerkdienste zugreifen können, solange der Angreifer nicht in der Lage ist, selbst mit seinem System auf die internen Dienste zuzugreifen und diese weiterzuleiten.

Es kann nun der Datenstrom mitgelesen werden, jedoch müssen bei SSL/TLS Verbindungen weitere Angriffe durchgeführt werden, um diese Verschlüsselung auszuhebeln (siehe Tools: Karmetasploit).

ARP-Spoofing

Dieser Angriff ist selbst in der Netzwerkschicht des TCP/IP-Modells verankert und zielt auf eine Fehlverwendung der Internetschicht. Das Address Resolution Protocol (ARP) dient der Auflösung von Media-Access-Control-Adressen (MAC-Adressen) zu gegebenen Internet-Protokolladressen (IP-Adressen). Die MAC-Adresse ist auch als Hardwareadresse bekannt und sollte ein weltweit eindeutiger Wert aus 48 Bit sein, der vom Hersteller der Netzwerkkarte erzeugt wurde. Dieser Wert kann jedoch manipuliert werden. Damit ein System mit einem anderen System in unmittelbarer Nähe, so wie etwa ein Computer und ein Router, oder zwei Rechner im selben Netzwerk Daten austauschen kann, muss ein Datenframe gebildet werden. Ein Datenframe enthält die MAC-Adressen des Absenders und des Empfängers. Damit ein Absender die MAC-Adresse des Empfängers kennt, muss diese über eine ARP-Anfrage ermittelt werden und beim Absender lokal gespeichert werden.

Die ARP-Anfrage enthält die MAC-Adresse des Absenders und dessen IP-Adresse sowie die IP-Adresse des zu ermittelnden Systems und wird über die Broadcast-Adresse (Verteilungs-Adresse) an alle im selben Netzwerksegment verfügbaren Systeme gesendet. Die Reichweite des Angriffs beschränkt sich nur auf die durch den Broadcast erreichbaren Systeme, auch Broadcast-Domäne genannt. Das Empfangssystem erkennt eine Anfrage, welche die eigene IP enthält und antwortet mit der eigenen MAC-Adresse an das fragende System.

Unter ARP-Spoofing versteht man nun das Fälschen von Einträgen in der lokal gehaltenen Zuordnungsliste von MAC-Adressen und IP-Adressen. Kann ein Angreifer erfolgreich die Identität von zwei Kommunikationsparteien übernehmen und der jeweils anderen Partei vorspielen, so wird die Kommunikation von nun an zu ihm stattfinden. Im nächsten Schritt wird er die Kommunikation weiterleiten, mitlesen und gegebenenfalls manipulieren. 

Dies wollen wir mit einem Experiment belegen. Wir stellen eine Kommunikation über den Ping-Befehl dar. Ping schickt eine Nachricht an ein anderes System, mit der Bitte zu antworten. Wird die Antwort erhalten, kann so die vergangene Zeit für die Ermittlung der Verbindungsgeschwindigkeit genutzt werden. In der ersten Abbildung schicken wir vom System mit der IP 192.168.30.251 endlose Ping-Anfragen an das System 192.168.30.240, die alle in einer sehr geringen Zeit beantwortet werden [Abbildung-2].

Abbildung-2: Ping Befehl und Ergebnisse

Ein Angreifer in einer MitM-Position kann diese Anfragen sehen. Der Angreifer sendet gefälschte ARP-Antworten, um die lokalen ARP-Tabellen der Systeme zu überschreiben. Hierfür benutzt dieser das Programm arpspoof wie nachstehend dargestellt [Abbildung-3] 

ODER

Abbildung-3: Angriff auf die ARP Tabelle.

Der Wert –i eth1 gibt an, dass es sich um die Netzwerkkarte eth1 der verwendeten Maschine handelt. –t 192.168.30.240 ist das System, das angegriffen wird. Die IP 192.168.30.251 soll gespooft, also die MAC-Adresse in der Tabelle auf dem System 192.168.30.240 soll mit der Angreifer-MAC überschrieben werden. Nun landen die Ping-Pakete auf dem Angreifer-System. Folglich erhält das System 192.168.30.251 keine Antworten auf die Ping-Abfragen [Abbildung-4]

Abbildung-4: Fehlende Antworten auf eine Ping-Anfrage

Der Angreifer aktiviert eine Weiterleitung. Nun werden die Ping-Pakete an die richtige IP-Adresse weitergeleitet. Damit der Angreifer auch den Rückverkehr kontrollieren kann, muss auch auf dem anderen System die ARP-Tabelle überschrieben werden. Hierfür vertauscht er die in Abbildung-3 angegebenen IP-Adressen im Befehl.

Ist dies getan, bekommen die Ping-Anfragen wieder eine Antwort auf dem System 192.168.30.251.

Der Vergleich der TTL-Werte von Abbildung-2 und -5 zeigt, dass der Wert nun um eins niedriger ist. TTL bedeutet Time to Live und wird bei der Übertragung von IP-basierten-Paketen für jedes passierte System um 1 heruntergezählt. Das hat den Sinn, dass Pakete eine begrenzte Reichweite haben und nicht für immer durch das Internet geschickt werden. In unserem Fall können wir damit erkennen, dass es nun ein System in der Mitte, einen Eindringling, in der Kommunikation gibt. Mit etwas Aufwand kann ein Angreifer jedoch verhindern, dass die TTL durch sein System dekrementiert wird.

Abbildung-5: Ergebnis der gespooften Ping-Anfrage

ARP-Spoofing funktioniert in LANs sowie in WLANs. Dabei stellt eine Verschlüsselung, wie zum Beispiel WPA2, keinen Schutz vor Paketumleitung dar. Um im Netzwerk kommunizieren zu können, müssen die beteiligten Systeme die MAC-Adressen auflösen, was für IPv4 nur über ARP funktioniert und damit die Möglichkeit zu ARP-Spoofing eröffnet.

IP-Spoofing

Daten werden auf der IP-Ebene mittels Paketen übertragen. Dabei werden in den Kopfdaten des Pakets u.a. die IP-Adresse des Absenders und die des Empfängers eingetragen. Ein Angreifer kann die Quelladresse manipulieren und an den Empfänger schicken, wenn hier keine schützenden Mechanismen wie Verschlüsselung vorgesehen sind. Standardmäßig gibt es diese nicht in IPv4. Der Nachfolger IPv6 besitzt Möglichkeiten zu Authentifizierung und Verschlüsselung. Allerdings würde der Empfänger eine Antwort an das System mit der vorher genannten Quelladresse schicken. Somit lohnt sich der Angriff nur, falls keine Kommunikation in beide Richtungen erforderlich ist oder die Antwort vorhersehbar ist. Dieser Angriff kann gegen TCP- und UDP-Verbindungen eingesetzt werden. Wobei das zustandshaltende Protokoll TCP eine sogenannte Sequenznummer besitzt.

Die Sequenznummer wird beim Verbindungsaufbau einmal zufällig gewählt und ab dann hochgezählt. Sie befindet sich zwischen 0 und etwa 4,3 Milliarden. Das Zielsystem wird in einer TCP-Verbindung nur ein IP-Paket akzeptieren, das die richtige TCP-Sequenznummer enthält. Der Angriff ist in Zusammenspiel mit dem ARP-Spoofing erheblich einfacher, da die Kommunikation zwischen zwei Systemen mitgelesen werden kann. So können IP-Pakete an entsprechenden Stellen eingeschleust werden. Wobei für ARP-Spoofing nicht vergessen werden darf, dass sich die Zielsysteme in der gleichen Kollisionsdomäne befinden müssen.

SSLStrip

In der Transportschicht wird als Sicherheitsmaßnahme das Transport Layer Security (TLS) Verfahren (die Weiterentwicklung des Secure Sockets Layer (SSL)) eingesetzt. Hierbei handelt es sich um ein Verschlüsselungsprotokoll, um die Daten der Anwendungsschicht sicher zwischen zwei Kommunikationspartnern zu übertragen und die Schwächen der unteren Schichten belanglos zu machen. Das Verfahren existiert in der ersten Version seit 1994 und umfasst verschiedenste kryptografische Verfahren, die im Laufe der Zeit jeweils dem Stand der Technik angepasst wurden.

TLS verwendet Zertifikate, die kryptographisch abgesicherte Informationen über ein System erhalten. So ist es einem Client beispielsweise möglich, sich von der Identität eines Serversystems zu überzeugen. Zertifikate werden hierfür i.A. von einer als vertrauenswürdig angenommenen Stelle (Certificate Authority (CA)) ausgestellt. Viele dieser CAs sind standardmäßig in Systemen und Browsern hinterlegt. Zertifikate können auch unternehmensintern ohne Rückgriff auf eine externe CA ausgestellt werden. Dann muss jedoch sichergestellt werden, dass alle Systeme der unternehmensinternen CA vertrauen.

Mittels der in einem Zertifikat vorhandenen Informationen können Client und Server auf sichere Weise einen geheimen Schlüssel austauschen, der dann für die Verschlüsselung der Kommunikation zwischen ihnen genutzt wird.

Für einen MitM-Angreifer stellen derart gesicherte Verbindungen ein schwieriges und im optimalen Fall nicht zu lösendes Problem dar. Der Einsatz von veralteten kryptografischen Verfahren und Fehlkonfigurationen, wie auch ungeschulte Nutzer, die Warnhinweise ignorieren, sind in der Praxis allerdings häufige Schwachstellen. Das schlimmste Szenario für TLS sind erfolgreiche Angriffe gegen autoritative Stellen selbst. Angreifer, die sich von diesen Stellen Zertifikate ausstellen lassen können, werden von den meisten Endsystemen als vertrauenswürdig angesehen. So entdeckte der Wissenschaftler Stephan Schrauger im Jahr 2015, dass ihm die anerkannte Zertifizierungsstelle WoSign als Besitzer einer Subdomäne ein Zertifikat für die Hauptdomäne ausstellte. Dies bewies er indem er sich Zertifikate für die Domäne Github.com ausstellen lies.

Mit dem Programm SSLStrip können HTTPS-Verbindungen vom Server, die mit SSL/TLS gesichert sind, auf dem Rechner des Angreifers entgegengenommen und als unverschlüsselte http-Verbindung an das Ziel weitergeleitet werden. So wird die Webseite für den Nutzer wie gewohnt funktionieren (sind nicht weitere Vorkehrungen getroffen), jedoch kann dieser anhand von Symbolen in seinem Browser erkennen, dass es sich um eine unverschlüsselte Verbindung handelt.

DNS-Spoofing/Cache Poisoning

Prinzipiell ähnlich dem ARP-Spoofing, jedoch auf der Anwendungsebene angesiedelt, können Angriffe auf die Namensauflösung zu IP-Adressen als weiterer Vektor für MitM-Angriffe genutzt werden. Das Domain Name System (DNS) dient der Beantwortung von Namensanfragen, wie beispielsweise test.de auf die zugehörige IP-Adresse 192.168.0.1 oder umgekehrt.

Ähnlich wie bei ARP-Spoofing halten Rechner eine lokale Tabelle, nur haben diese Namenseinträge anstelle von MAC-Adressen, die mit IP-Adresse hinterlegt werden. Um die IP-Adresse eines Systems anhand des Namens zu ermitteln, werden DNS-Anfragen versendet. Diese richten sich an einen im System hinterlegten DNS-Server. Kennt dieser die Antwort für die Namensauflösung, so teilt er diese dem System mit. Falls dies nicht der Fall ist, fragt der DNS-Server selbst über eine DNS-Anfrage einen weiteren DNS-Server, ob dieser die Frage beantworten kann.

Der Angriff besteht darin, einem System eine DNS-Anfrage zu beantworten und so einen falschen Eintrag in die lokale Tabelle des Systems einzuschleusen. Hierfür muss die DNS-Anfrage entweder schneller vom Angreifer als vom DNS-Server beantwortet werden oder der DNS-Server durch einen Angriff wie DoS im Betrieb eingeschränkt sein. Wurde ein gefälschter Eintrag hinterlegt, wird das System mit dem Angreifer-System kommunizieren. Wie auch die Einträge in der ARP-Tabelle haben die Daten des DNS-Cache eine zeitlich beschränkte Gültigkeit. Der Angriff muss daher wiederholt oder kontinuierlich ausgeführt werden um die Umleitung des Datenstroms aufrecht zu erhalten.

Dies wollen wir mit einem Szenario demonstrieren. Ein Mitarbeiter mit bösartigen Absichten belauscht am Mittagstisch ein Gespräch, es gäbe momentan eine iPhone Verlosung auf der Seite winiphone.com. Dafür müsse man sich mit einem Facebook-Account verbinden.

Nach der Mittagspause greift ein Mitarbeiter auf die Seite zu, bevor der Angreifer in der Lage ist den Angriff durchzuführen. Die in unserem Beispiel gewählte Seite enthält in echt kein Gewinnspiel. Ein Zugriff würde folgendes Ergebnis zeigen [Abbildung-6]:

Abbildung-6:  Originale Webseite

Nehmen wir aber an, diese würde ein Gewinnspiel enthalten und der Mitarbeiter kann an der Verlosung teilnehmen. Hätte dieser einen Mitschnitt seines Netzwerkverkehrs gemacht, hatte er für die Namensauflösung folgendes erhalten:

Abbildung-7: DNS-Anfrage und Antwort

Hier sehen wir, dass der Mitarbeiter von dem System mit der IP 192.168.30.144 das System 192.168.30.1 mit dem DNS-Protokoll nach der IP des Namens winiphone.com anfragt. Das System 192.168.30.1 ist der DNS-Server. Dieser antwortet in der zweiten Zeile mit der gesuchten IP.

Spulen wir nun zurück und gehen den Fall durch, dass der Angreifer zuerst den Mitarbeiter angreift.

Der Angreifer führt den ARP-Spoofing Angriff, wie vorher beschrieben, zwischen dem Zielsystem 192.168.30.144 und dem DNS-Server 192.168.30.1, aus. Dies macht er, um sicherzustellen, dass der DNS-Server nicht schneller auf eine DNS-Anfrage antworten kann, als er selbst. Hierfür leitet er den Datenverkehr des DNS-Servers für die entsprechende Anfrage nicht weiter. 

Nun setzt er sich einen eigenen Eintrag für die Namensauflösung zur eigenen IP und beginnt mit dem Programm dnsspoof bösartige DNS-Einträge bei Anfragen zu verschicken [Abbildung-8].

Abbildung-8: Eintrag für eine Namensauflösung und Starten des Tools dnsspoof

Hierzu liefert er eine passende Webseite aus, auf der letztendlich ein Angriff auf die Zugangsdaten zu Facebook erfolgt. Der Mitarbeiter versucht nun die Webseite aufzurufen. Ein Mitschnitt der DNS-Anfrage gibt dieses Mal die IP des Angreifers bei der Namensauflösung zurück [Abbildung-9].

Abbildung-9: Gespoofte DNS-Anfrage

Auf der Seite des Angreifers können die DNS-Anfragen mitgelesen werden [Abbildung-10].

Abbildung-10: DNS-Anfragen, die durch dnsspoof manipuliert wurden

Nun sieht der Mitarbeiter in seinem Browser nichtsahnend die Seite des Angreifers[Abbildung-11].

Abbildung-11: Webseite des Angreifers

Der Mitarbeiter verbindet sein Facebook Profil[Abbildung-12] 

Abbildung-12: Eingabe der Zugangsdaten zu Facebook auf der Pishing-Seite des Angreifers.

Auf dem System des Angreifers landen so die Zugangsdaten [Abbildung-13].

Abbildung-13: Gestohlenes Password

Fazit

Ein Man-In-The-Middle - Angriff ist mit den richtigen Werkzeugen sehr leicht zu bewerkstelligen, wie gerade an einigen Beispielen gezeigt wurde. Werden im Netzwerk keine geeigneten Maßnahmen ergriffen, einen solchen Angriff zu verhindern, kann das unangenehme Folgen haben. Wer sich schützen will, sollte sich vorrangig mit Intrusion Detection Systemen befassen, auf Protokolle setzen, die sichere Verschlüsselung und Authentifizierung bieten und die Härtungsanweisungen für die genutzten Betriebssysteme befolgen. Mitarbeiter müssen entsprechend geschult werden, um offensichtliche Anzeichen eines Angriffs zu erkennen.

Diese Übersicht zu Man-In-The-Middle Angriffen wird fortgesetzt. 

Autor: Tobias Mayer, GAI NetConsult GmbH

Referenzen

Autor: Tobias Mayer

Diesen Artikel empfehlen