Man-in-the-Middle-Attacken stellen für Angreifer einen wirkungsvollen Weg dar, um in Unternehmensnetzwerken Datenpakete abzufangen und dann für unlautere Zwecke zu nutzen. Sogar das Ändern von Paketen ist hierüber möglich. Es gibt aber Tools wie das kostenlose WireShark, die beim Erkennen dieser Art von Attacken helfen. Unser Workshop zeigt, wie Sie dabei am besten vorgehen.
Bei einem Man-in-the-Middle-Angriff (MITM) platziert sich ein Angreifer zwischen dem Opfer und den verwendeten Ressourcen. Das versetzt ihn in die Lage, die Kommunikation abzufangen, zu lesen und unter Umständen sogar zu manipulieren. Dabei muss der Angreifer den Datenverkehr nicht komplett umleiten und sich als Ziel der Daten ausgeben. Vielmehr ist es möglich, die Daten im Netzwerk auszulesen und diese ungestört an das echte Ziel weiterlaufen zu lassen. Der Angreifer positioniert sich also in der Mitte des Datenflusses.
Dadurch erkennen viele Anwender und Administratoren die Angriffe erst, wenn es zu spät ist. Denn in den meisten Fällen sind Netzwerkdienste nicht durch MITM-Attacken gestört. Sie laufen normal weiter, während der Angreifer den Zugriff auf den Datenverkehr zwischen Client und Server nutzt. Identitätsdiebstahl, das Fälschen von Transaktionen oder das Stehlen von geistigem Eigentum sind nur einige mögliche Beispiele.
Die Attacken sind in Netzwerken auf Kabelbasis genauso durchführbar wie das Sniffen von Daten in einem WLAN. Dort kommen sie jedoch besonders häufig vor, da öffentliche WLANs oft kaum geschützt sind.
Bei einem Man-in-the-Middle-Angriff (MITM) platziert sich ein Angreifer zwischen dem Opfer und den verwendeten Ressourcen. Das versetzt ihn in die Lage, die Kommunikation abzufangen, zu lesen und unter Umständen sogar zu manipulieren. Dabei muss der Angreifer den Datenverkehr nicht komplett umleiten und sich als Ziel der Daten ausgeben. Vielmehr ist es möglich, die Daten im Netzwerk auszulesen und diese ungestört an das echte Ziel weiterlaufen zu lassen. Der Angreifer positioniert sich also in der Mitte des Datenflusses.
Dadurch erkennen viele Anwender und Administratoren die Angriffe erst, wenn es zu spät ist. Denn in den meisten Fällen sind Netzwerkdienste nicht durch MITM-Attacken gestört. Sie laufen normal weiter, während der Angreifer den Zugriff auf den Datenverkehr zwischen Client und Server nutzt. Identitätsdiebstahl, das Fälschen von Transaktionen oder das Stehlen von geistigem Eigentum sind nur einige mögliche Beispiele.
Die Attacken sind in Netzwerken auf Kabelbasis genauso durchführbar wie das Sniffen von Daten in einem WLAN. Dort kommen sie jedoch besonders häufig vor, da öffentliche WLANs oft kaum geschützt sind.
Bevor wir uns mit möglichen Abwehrmechanismen und -werkzeugen wie WireShark befassen, zeigen wir zunächst, wie ein MITM-Angriff mit Techniken wie ARP-Poisoning abläuft und wie Sie ihn entdecken und analysieren. Das hilft dann dabei, das eigene Netzwerk vor derartigen Attacken zu schützen und Ihre interne Sicherheitsstruktur entsprechend zu optimieren.
Einfallstor ARP
MITM-Attacken laufen häufig über den Cache des Address Resolution Protocol (ARP) ab. Dabei handelt es sich um den lokalen Zwischenspeicher für die Zuordnung zwischen IP- und MAC-Adresse. Dessen Inhalt lässt sich in Windows in der Befehlszeile zum Beispiel mit arp -a anzeigen. Auf Linux-Rechnern steht dazu ip n s zur Verfügung. Diese Informationen können dabei helfen, MITM-Angriffe zu erkennen, da das Kommando anzeigt, ob auf einem Rechner eine MAC-Adresse für zwei oder mehr verschiedene IP-Adressen gespeichert ist – dies kann auf ein ARP-Spoofing hindeuten.
Diese Daten kann aber auch jeder Angreifer auslesen und manipulieren. Es gibt keinerlei Authentifizierung und Schutz für den Cache. Jeder kann so IP-Adressen und die dazugehörigen MAC-Adressen einsehen, ändern und für Angriffe nutzen. Dabei findet das sogenannte ARP-Spoofing Verwendung, hier ein Beispiel: PC01 gehört dem Opfer. Dieses erhält ARP-Antworten vom Angreifer-PC, der sich als Router zum Internet ausgibt. Dadurch leitet PC01 seine ARP-Anfragen an den Angreifer-PC um, der diese an den echten Router weiterleitet und umgekehrt. Gleichzeitig erhält der Router ARP-Antworten vom Angreifer, der sich als PC01 ausgibt. Das resultiert darin, dass alle ARP-Informationen, die für PC01 gedacht sind, beim Angreifer-PC eingehen. Dieser leitet die Antworten an PC01 um.
Der Angreifer kann nun alle Pakete, die er erhält, einsehen und verändern. Wenn der Datenverkehr nicht verschlüsselt ist, erhalten Eindringlinge über diesen Weg zum Beispiel Anmeldedaten von HTTP-Webseiten oder den Inhalt von Dokumenten. Aber auch DNS-Spoofing, Phishing, Keylogging-Angriffe und viele weitere Attacken sind auf diese Weise möglich.
Die beste Methode, um ARP-Spoofing und damit MITM-Attacken zu verhindern, ist die Ende-zu-Ende-Verschlüsselung. Dabei ist der komplette Datenverkehr zwischen den beteiligten Geräten verschlüsselt und Angreifer können abgefangene Daten nicht nutzen. Möglich macht dies die Nutzung von Protokollen wie HTTPS, POP3S oder IMAP4S. Darüber hinaus bieten Managed Switches die Option, solche Attacken zu unterbinden. Allerdings muss zuvor die entsprechende Schutzfunktion auf dem Switch aktiviert sein. Auf Cisco-Switches trägt diese Funktion zum Beispiel die Bezeichnung Dynamic ARP Inspection (DAI).
Bild 1: Der ARP-Cache lässt sich in Windows über die Befehlszeile anzeigen.
WireShark zur MITM-Analyse einrichten
WireShark [1] positioniert sich wie der MITM-Angreifer im Netzwerk und hilft dabei, den Datenverkehr mitzuschneiden. Dadurch lassen sich Muster erkennen, die auf eine MITM-Attacke schließen lassen. Wire-Shark kommt aber auch häufig bei Angreifern zum Einsatz, da es Netzwerkpakete unauffällig analysiert. Leitet ein Eindringling über ARP-Spoofing Pakete zum eigenen Rechner, kann WireShark dies aber genauso analysieren – und ein IT-Admin solche Pakete im Netzwerk erkennen. Mit WireShark ist es also möglich, derartige Angriffe durchzuführen, zu verhindern oder nur zu protokollieren.
Unter Linux ist die libpcap-Bibliothek Voraussetzung für den Einsatz von WireShark. Ebenso ist eine Installation auf Windows 10 oder 11 möglich. Im Rahmen der Installation kann WireShark die aktuelle Version von Npcap einspielen. Unter Windows müssen Npcap oder WinPcap vorhanden sein, um live Netzwerkverkehr zu erfassen. WireShark enthält ab Version 3.x Npcap, die alten Versionen nutzten noch WinPcap. In Windows 10/11 und Windows Server 2016/2019 ist Npcap besser geeignet, um mit WireShark Daten im Netzwerk zu analysieren.
Nach dem Start von WireShark besteht der erste Schritt darin, das Programm für die Messung vorzubereiten. Das gilt auch für andere Aufgaben, die Sie mit WireShark durchführen, nicht nur für die Analyse von MITM-Attacken. Die wichtigsten Funktionen sind bei "Aufzeichnen / Optionen" zu finden. Über "Schnittstellen verwalten" stehen die lokalen Schnittstellen zur Verfügung, die Sie für die Überwachung nutzen können. Auf der Registerkarte "Eingabe" stehen die Netzwerkschnittstellen bereit, die WireShark zum Sniffen nutzt.
Ebenso wichtig ist der Menüpunkt "Bearbeiten / Einstellungen / Mitschnitt". Hier wählen Sie das Standard-Netzwerkinterface aus, das WireShark überwachen soll. Die Option "Paketliste in Echtzeit aktualisieren" stellt zusammen mit "Automatisches Scrollen während des Mitschnitts" sicher, dass im Fenster immer die aktuell mitgeschnittenen Pakete erscheinen. Ebenfalls wichtig ist bei "Bearbeiten / Einstellungen" der Punkt "Name Resolution". Hier sollte die Option "Resolve network (IP) addresses" aktiviert sein. Dadurch versucht WireShark, bei den angezeigten IP-Adressen auch den Namen der Geräte anzuzeigen.
Bild 2: WireShark kann Datenpakete im Netzwerk sniffen und so Man-in-the-Middle-Attacken erkennen, aber auch durchführen.
Entscheidend ist die Aktivierung des Promiscous Mode, auf deutschen Systemen ist von "Pakete im promiskutiven Modus mitschneiden" die Rede. Dadurch stellen Sie sicher, dass WireShark sämtliche Pakete im Netzwerk mitschneidet, nicht nur die, die ans eigene System adressiert sind. Die entsprechenden Settings stehen auch bei "Aufzeichnen / Optionen" über "Promiskutiven Modus für alle Schnittstellen aktivieren" zur Verfügung.
Auf der Registerkarte "Ausgabe" lässt sich festlegen, in welche Datei WireShark den Mitschnitt speichern soll. Um sicherzustellen, dass diese nicht den ganzen Speicherplatz belegen, können Sie mit "Einen Ringpuffer verwenden mit x Dateien" eine automatische Überschreibung von älteren Dateien aktivieren. Das Speichern der Mitschnitte erleichtert eine spätere Analyse von MITM-Attacken. Sie können die Angriffe aber natürlich auch bei der Live-Analyse mitschneiden.
Bild 3: Ettercap hilft dabei, MITM-Attacken durchzuführen, die Sie anschließend mit WireShark analysieren können.
Scans mit WireShark starten
Um mit WireShark Sniffing-Scans zu starten, reicht ein Klick auf das Symbol mit der Haifisch-Flosse aus. Alternativ klicken Sie doppelt auf die Schnittstelle, von der Sie Daten aufzeichnen wollen. Mit dem Stopp-Symbol beenden Sie den Scanvorgang und über den Menüpunkt "Datei" speichern sie ihn, sofern Sie dies wie oben erklärt nicht über die Einstellungen automatisiert haben. Im oberen Fenster zeigt WireShark die eingehenden Pakete an und nach dem Markieren eines Pakets dessen Inhalt im unteren Fenster. Sie können im oberen Bereich Filter aktivieren, damit WireShark nur die für Sie interessanten Daten auflistet.
Erste Tests für das Erkennen von Man-in-the-Middle-Angriffen und das Verstehen der entsprechenden Abläufe können darin bestehen, die Abfrage einer neuen IP-Adresse per DHCP zu überwachen. Darüber kommunizieren Clients mit dem Netzwerk und DHCP-Server kommunizieren mit Clients. Diese Daten lassen sich mit WireShark auf den Bildschirm bringen. So funktioniert grundsätzlich auch das Sniffen von anderen Informationen, die Clients zu Servern oder zu anderen Endpunkten schicken.
Sobald Sie das Sniffen des Datenverkehrs begonnen haben, können Sie auf einem Computer, der eine IP-Adresse benötigt – im laufenden Betrieb in Windows mit ipconfig /release und ipconfig /renew –, die IP-Adresse erneuern. Der dadurch ausgelöste Datenverkehr lässt sich dann aufzeichnen. Über einen Klick auf die Spalte "Protocol" ist es möglich, eine Sortierung durchzuführen, auch ohne Dateien zu speichern oder Filter zu setzen. Über das Protokoll "DHCP" sind die einzelnen Nachrichten zwischen Client und DHCP-Server zu finden. Im unteren Fenster von WireShark sind dann ebenso die IP-Adressen und Namen der beteiligten Computer erkennbar. Nach diesem Muster lassen sich andere Datenpakete auslesen.
MITM-Angriff mit Ettercap simulieren
Um eine MITM-Attacke zu verstehen und letztendlich abzuwehren, kann es hilfreich sein, einen solchen Angriff zunächst einmal selbst zu simulieren. Bedenken Sie stets, dass derartige Versuche in fremden Netzwerken – dazu zählen öffentliche WLANs – strafbar sind. Im eigenen Netzwerk lassen sich aber die dortigen Sicherheitsfunktionen und Barrieren auf den Managed Switches gut testen. Tools wie WireShark in Kombination mit Ettercap [3] helfen dabei, den Netzwerkverkehr mit gefälschten ARP-Daten zu fluten. Das Werkzeug steht für Linux zur Verfügung und ist auch in der Distribution Kali Linux enthalten, ebenso wie WireShark. Auf Ubuntu installieren Sie Ettercap mit folgendem Befehl:
sudo apt update
sudo apt install ettercap-common
Nach dem Start von Ettercap beginnen Sie den Sniffing-Vorgang und lassen sich die Liste der lokalen Netzwerk-Hosts anzeigen. Spezielle Settings sind hier nicht notwendig. Ettercap zeigt im Anschluss die gefundenen Netzwerkgeräte an, die Sie danach für Angriffe nutzen können. Um eine MITM-Attacke zu starten, klicken Sie einen Computer in der Host-Liste an und wählen "Add to Target 1".
Für einen effektiven Test erstellen Sie auf dem Computer noch eine Freigabe und eine Textdatei mit beliebigem Inhalt. So können Sie den Zugriff auf die Freigabe und das Öffnen der Datei sowie deren Inhalts in WireShark nachvollziehen. Überprüfen Sie vorher auf dem Rechner den ARP-Cache mit arp -a und notieren Sie sich die originale MAC-Adresse des Rechners mit der Freigabe. Bei dem folgenden Angriff vertauschen Sie die MAC-Adresse des ursprünglichen Computers mit der MAC-Adresse eines anderen Rechners, in diesem Fall mit dem, auf dem Sie Ettercap gestartet haben. Bis zu diesem Punkt hat Ettercap noch keine Aktionen durchgeführt, sondern liest nur Daten im Netzwerk ein, genauso wie es ein Angreifer tun würde.
XArp als weiteres Analysetool
Neben WireShark helfen Tools wie XArp [2] dabei, gefälschte Einträge in ARP-Tabellen zu erkennen. Sinnvoll kann hier auch eine Kombination verschiedener Tools sein, die gemeinsam eine umfassende Analyse oder einen Stresstest für die eigene Sicherheitsarchitektur durchführen. Eine Möglichkeit, diesen Angriff zu erkennen, besteht darin, die ARP-Tabelle auf dem Computer des Opfers genau im Blick zu behalten. XArp tut genau das und hilft so bei der wirkungsvollen Erkennung von ARP-Spoofing.
Danach wählen Sie einen weiteren Computer aus, den Sie für den Test sniffen wollen, und klicken hier auf "Add to Target 2". Das Definieren der Targets ist auch unten im Ettercap-Fenster ersichtlich. Der Ettercap-Rechner kann die Daten zwischen den beiden Geräten jetzt mitschneiden. Diese Vorgänge können Sie wiederum mit WireShark analysieren.
In der oberen Menüleiste von Ettercap sehen Sie auf der rechten Seite ein Icon mit einer Weltkugel. Klicken Sie dieses an, können Sie aus verschiedenen MITM-Attacken auswählen. Für das Testen eines Angriffs wählen Sie am besten "ARP-Poisoning" aus und bestätigen den Start. Die Attacke ist jetzt aktiv und lässt sich mit WireShark beobachten. Idealerweise starten Sie Wire-Shark auf dem gleichen Computer, auf dem Sie Ettercap laufen haben. Das geht zum Beispiel auch über das erwähnte Kali Linux, denn beide Tools sind bereits integriert. Sie können das ARP-Poisoning in Ettercap jederzeit stoppen oder andere Targets definieren. Nach dem Beenden des Angriffs haben die ausgewählten Zielsysteme nach kurzer Zeit wieder die richtige Zuordnung der MAC-Adressen.
Lachender Dritter
Starten Sie WireShark parallel auch auf dem Rechner, den Sie als Target 2 definiert haben, lässt sich der Angriff am einfachsten nachverfolgen: Öffnen Sie auf dem Target-2-Rechner die bereits erwähnte Freigabe und Datei – genauso würden Anwender vorgehen, wenn Sie auf Daten im Netzwerk zugreifen. Die beiden WireShark-Instanzen zeichnen währenddessen im Hintergrund die durchgeführten Aktionen auf.
Initiieren Sie nun auf dem Target-2-Rechner erneut mit arp -a die Abfrage des ARP-Caches, sehen Sie, dass bei aktivem MITM-Angriff von Ettercap die MAC-Adressen von Target 1 mit dem Ettercap-Rechner identisch sind. Der MITM-Computer hatte mit seiner ARP-Attacke Erfolg und kann sich als ein anderer Computer ausgeben. Der Client, den Sie als Target 2 definiert haben, geht davon aus, dass der Kali-Rechner mit Ettercap der Target-1-Computer ist, auf dem die bereits erwähnte Freigabe aktiv ist. Das ermöglicht das Aufzeichnen des Datenverkehrs auf dem Kali-Rechner, obwohl die Daten zwischen Target 2 und Target 1 hin und her laufen und der Kali-Rechner damit eigentlich nichts zu tun hat – eine typischer MITM-Fall.
Alle anderen Rechner bekommen davon nichts mit, denn die Attacke stört das Netzwerk nicht. Die Eingaben, die Sie vorgenommen haben, ermöglichen dem Rechner mit Ettercap und seiner gestarteten WireShark-Instanz das Auslesen von Daten, die zwischen Target 1 und Target 2 ausgetauscht wurden. Sind diese nicht verschlüsselt, lässt sich auf der WireShark-Instanz des Ettercap/Kali-Clients der Inhalt der Datenpakete extrahieren. Sie finden die entsprechenden Aufzeichnungen auf dem Kali/Ettercap-Rechner. Mit dem Schließen von Ettercap auf dem MITM-Rechner endet auch das ARP-Poisoning und der Angriff ist nicht mehr sichtbar.
Bild 4: Ein MITM-Angriff lässt sich über einen Wechsel der Anzeigefilter für ARP und SMB recht schnell erkennen.
Verwenden von Filtern
WireShark ist als Werkzeug für das Durchführen von MITM-Attacken genauso hilfreich wie bei deren Analyse. Aus diesem Grund ergibt es Sinn, sich als Administrator genau mit den Möglichkeiten des Tools auseinanderzusetzen. Ein wichtiges Merkmal sind die Filter: Aktivieren Sie in WireShark am Beispiel unseres oben geschilderten Angriffs einen ARP-Filter, bringen Sie den Netzwerkverkehr auf den Schirm, der den Datenverkehr bezüglich ARP betrifft. Verwenden Sie anschließend noch den Filter SMB oder SMB2, sehen Sie auch den SMB-Datenverkehr zwischen den Clients. Beim SMB-Filter tauchen alle Zugriffe zwischen Target 1 und Target 2 auf, inklusive dem Inhalt der Textdatei, die Sie für diesen Test erstellt und geöffnet haben.
WireShark verfügt noch über die Filter "arp.duplicate-address-frame" und "arp.duplicate-address-detected". Damit zeigt WireShark aus einem aufgezeichneten oder einem Live-Mitschnitt die Pakete an, bei denen es doppelte MAC-Adressen für unterschiedliche IP-Adressen gibt. Die genauen Informationen sind in der Spalte "Info" zu sehen. Finden Sie im Netzwerk solche Pakete, ist davon auszugehen, dass ein Angreifer versucht MAC-Adressen zu duplizieren. Klicken Sie solche Pakete an, ist bei der Analyse auch die ursprüngliche MAC-Adresse der jeweiligen Systeme zu finden.
Fazit
WireShark ist das ideale Werkzeug, wenn es um das Mitschneiden von Netzwerkverkehr geht. Dabei lässt sich das Tool auch gut für die Analyse von MITM-Angriffen einsetzen. Mit verschiedenen Filtern vollziehen Sie nach, ob Daten im Netzwerk auf derartige Attacken hindeuten. Zusammen mit Software wie XArp und Ettercap führen Sie im eigenen Netzwerk Stresstests durch und überprüfen so die interne Sicherheitslage.