MAC Adresstabelle
Mit folgendem Befehl (im enable
Modus) kann man sich den Zustand der MAC-Adresstabelle anzeigen lassen:
show mac-address-table count
Die Ausgabe sieht in etwa so aus:
Mac Entries for Vlan 1:
---------------------------
Dynamic Address Count : 89
Static Address Count : 0
Total Mac Addresses : 89
Total Mac Address Space Available: 8178
Laut cisco.com ist der normale Timeout einer MAC-Adresse 5min (=300 Sekunden). Während der STP-Erkennung ist der Timeout 15 Sekunden – das erklärt auch, warum die MAC-Adresstabelle nach Ändern der Topologie plötzlich leer ist.
MAC Flooding Angriff
Üblicherweise schalten Switches bei überfüllter CAM-Tabelle (MAC <=> Port-Zuordnung) in eine Art Hub-Modus für unbekannte MAC-Adressen, so dass man auf allen Ports ALLE Pakete bekommt, die an MAC-Adressen gehen sollen, welche nicht in der Tabelle stehen. Dadurch wird das Mitsniffen von fremder Kommunikation möglich.
Dies ist nochmal genauer unter tomshardware.com erläutert. Demnach ändert sich für bereits bestehende Einträge der CAM-Tabelle nichts – diese werden weiterhin geswitcht.
Der genaue Ablauf ist auch nochmal unter hakipedia.com erklärt. Dort wird auch gezeigt, wie man den Switch gegen diesen Angriff absichern kann.
Versuchsaufbau
IP305 und IP110 sind VoIP-Geräte. Die IP305 ist die Telefonanlage, die beiden IP110 sind Telefone. Durch diesen Aufbau ist gewährleistet, das jeglicher Verkehr zwischen Telefonanlage und Telefon durch den Switch geht. Die Kommunikation unter den Telefonen bei erfolgtem Verbindungsaufbau dürfte direkt über den PoE-Switch abgewickelt werden.
Benutzte Software
- BackTrack 4 — insbes. das
macof
-Tool aus dem dsniff-Paket zum Fluten der MAC-Tabelle - PuTTY oder PuTTY Tray — für den Zugriff auf die Cisco-Konsole
- Wireshark — zum Mitprotokollieren des VoIP-Verkehrs
Vorbereitung
- BackTrack 4 in einer virtuellen Maschine auf dem Angreifenden PC booten (VM mit ca. 512MB oder mehr RAM anlegen, ISO-Image als CD-Laufwerk einbinden; alternativ direkt das VMware-Image herunterladen)
- mit
root
/toor
in BackTrack anmelden - mit folgenden Befehlen die IP-Adresse einrichten: (die IP durch eine freie IP im Netz ersetzen)
/etc/init.d/networking start
ifconfig eth0 192.168.0.9
- am Logging PC das Programm Wireshark installieren und starten
- eine Überwachungs-Sitzung auf dem benutzten Netzwerk-Interface starten
- in der Filterzeile folgenden Filter angeben und Anwenden:
h225 || q931
(Unterlässt man dies, wird Wireshark durch die MAC-Flut überlastet und man kann Stunden warten, bis die interessanten Pakete sichtbar sind.)
Durchführung
- auf dem Angreifenden PC wird jetzt in der VM das Tool
macof
gestartet:macof
- jetzt laufen haufenweise MAC-Adressen über den Bildschirm; die Bildschirmausgabe bremst allerdings den Ablauf des Programms. Schaltet man mit Strg–Alt–F2 auf ein anderes Terminal, wird die CAM-Tabelle schneller geflutet. (Mit Strg–Alt–F1 kommt man jederzeit wieder zurück
auf das erste Terminal.) - den Erfolg kann man an der Konsole des Switches mit dem o.g. Befehl verfolgen:
Switch>en
Switch#show mac-address-table count
Mac Entries for Vlan 1:
---------------------------
Dynamic Address Count : 8186
Static Address Count : 0
Total Mac Addresses : 8186
Total Mac Address Space Available: 0
- erhält man zuerst keine Pakete auf dem Logging PC, liegt das daran, dass die “echten” MAC-Adressen im Netz noch in der Tabelle des Switches stehen; das Löschen dieser kann man forcieren, indem man ein Kabel abzieht und/oder ansteckt – dadurch wird der MAC-Timeout auf 15 Sekunden gesetzt und 15 Sekunden später sind alle alten MAC-Adressen aus der Tabelle gefallen – dabei muss
macof
aktiv sein und die Telefone sollten in den 15 Sekunden nicht angefasst werden (sonst beginnt der Timeout von vorn), damit die freigewordenen Plätze gleich “zugemüllt” werden. - jetzt erscheinen im Wireshark die H225-Nachrichten, wenn man an einem Telefon einen Hörer abhebt bzw. das andere Telefon anruft:
Absicherung
Mit folgenden Befehlen kann man den Switch gegen solche Angriffe absichern:
Switch>en
Switch#conf ter
Switch(config)#interface range FastEthernet 0/1 - 8
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport port-security
Switch(config-if-range)#switchport port-security maximum 5
Switch(config-if-range)#switchport port-security violation shutdown
Switch(config-if-range)#end
Switch#
Dadurch werden pro Port nur 5 MAC-Adressen erlaubt. Kommen von einem Port Nachrichten von weiteren MAC-Adressen, wird dieser Port deaktiviert, d.h. das Gerät wird vom Netz getrennt. Die Befehle sind hier erläutert. Evtl. muss man noch switchport port-security aging
setzen, damit alte MAC-Adressen auch aus der Statistik genommen werden.
Die deaktivierten Ports bekommt man auf zwei Wege wieder an:
Switch>en
Switch#conf ter
Switch(config)#interface FastEthernet 0/2
Switch(config-if)#shutdown
Switch(config-if)#no shutdown
oder global:
Switch>en
Switch#conf ter
Switch(config)#errdisable recovery cause psecure-violation
Netgear FS108P PoE-Switch
Der gleiche Angriff auf einen Netgear FS108P Switch bringt den Switch nur dazu, Pakete an unbekannte MAC-Adressen zu ignorieren. Somit wäre das eine DoS-Attacke – aber keine Möglichkeit, fremde Daten mitzusniffen. Die Broadcast-Pakete hingegen werden auf allen Ports ausgegeben und fluten somit auch angeschlossene Switches/Router.