Oleg Petukhov, Rechtsanwalt im Bereich des Völkerrechts und des Schutzes personenbezogener Daten, Spezialist für Informationstechnik sicherheit, Schutz von Informationen und persönlichen Daten.
Telegramm-Kanal: https://t.me/datenschutzmit
Die Gruppe im Telegramm: https://t.me/datenschutzmit1
Website: https://legascom.ru
E-Mail: online@legascom.ru
#informationssicherheit #informationssicherheit
Der Switch verfügt über eine CAM-Tabelle (Content Address Memory), die die Bindung von MAC-Adressen an die Ports des Switches enthält. Das heißt, diese Tabelle zeigt an, welche MAC-Adressen an welchem Port akzeptiert werden. Die Tabelle SELBST hat eine begrenzte Größe, z. B. für einen Cisco Catalyst 2960 Switch kann eine Tabelle bis zu 8192 MAC-Adressen speichern, während die Catalyst 6000er-Serie bis zu 128.000 MAC–Adressen speichern kann.
Wenn die Tabelle vollständig ausgelastet ist, können keine neuen Datensätze hinzugefügt werden, und der gesamte Datenverkehr wird an alle Ports weitergeleitet. In diesem Fall funktioniert der Switch wie ein normaler Hub, und Sie können den gesamten Datenverkehr, der durch ein bestimmtes Netzwerksegment fließt, auf dieselbe Weise hören, die wir im vorherigen Abschnitt verwendet haben, indem Sie das Dienstprogramm Wireshark verwenden. Natürlich kann ein Angreifer den gesamten Datenverkehr im lokalen Netzwerk auf diese Weise nicht abhören, aber ein Insider, der beispielsweise in einem Netzwerksegment arbeitet, kann den Datenverkehr abfangen und vertrauliche Informationen erhalten.
Sie können diesen Angriff mit dem Dienstprogramm macchanger implementieren, mit dem Sie die MAC-Adressen ändern können.
Als Beispiel können wir die MAC-Adresse auf einer Maschine ersetzen, die an den Switch angeschlossen ist.
root@kali:~# ifup eth0
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:16:ec:f1:45:e8
Sending on LPF/eth0/00:16:ec:f1:45:e8
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.1.3 from 192.168.1.101
DHCPREQUEST of 192.168.1.3 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.3 from 192.168.1.101
bound to 192.168.1.3 -- renewal in 42928 seconds.
if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface eth2 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface ath0 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface wlan0 before doing NFS mounts
Beim Einschalten wurde eine Anforderung an den DHCP-Server gesendet, um eine IP-Adresse zu erhalten. Sehen Sie sich dann den aktuellen Status der Netzwerkschnittstellen an.
root@kali:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:ec:f1:45:e8
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:ecff:fef1:45e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3952 (3.9 KB) TX bytes:1780 (1.7 KB)
Interrupt:21 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Die aktuelle MAC-Adresse unserer Netzwerkschnittstelle ist 00:16:ec:f1:45:e8. Jetzt ist es diese Adresse, die in der CAM-Tabelle des Schalters registriert ist. Jetzt ändern wir diese Adresse.
root@kali:~# macchanger –r eth0
Current MAC: 00:16:ec:f1:45:e8 (unknown)
Faked MAC: 04:2f:11:65:fc:0a (unknown)
Ändern Sie die Netzwerkschnittstelle neu:
root@kali:~# ifdown eth0
root@kali:~# ifup eth0
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/04:2f:11:65:fc:0a
Sending on LPF/eth0/04:2f:11:65:fc:0a
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.1.8 from 192.168.1.101
DHCPREQUEST of 192.168.1.8 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.8 from 192.168.1.101
bound to 192.168.1.8 -- renewal in 42928 seconds.
if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface eth2 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface ath0 before doing NFS mounts
if-up.d/mountnfs[eth0]: waiting for interface wlan0 before doing NFS mounts
Sehen wir uns noch einmal die Konfiguration der Netzwerkschnittstellen an.
root@kali:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr : 04:2f:11:65:fc:0a
inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:ecff:fef1:45e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5801 (5.9 KB) TX bytes:1100 (1.1 KB)
Interrupt:21 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Wie Sie sehen können, hat sich die MAC-Adresse der eth0-Schnittstelle geändert. Mit einem einfachen Szenario können Sie die Aktionen zum Ändern der MAC-Adresse in einer Schleife erzwingen, die ausgeführt wird, bis die Tabelle SELBST überläuft. Das Schreiben eines solchen Skripts überlasse ich den Abonnenten des Kanals als Hausaufgabe. Ich werde nur bemerken, dass das Dienstprogramm macchanger für uns immer wieder nützlich ist, wenn wir Netzwerkangriffe implementieren.
Wenn wir eine Bedrohung bezeichnen, gehen wir zu den Schutzmethoden über. In vielen Sicherheitshandbüchern wird empfohlen, die MAC-Adresse der Arbeitsstation fest an den Switch-Port zu binden oder die Anzahl der an den Port angeschlossenen MAC-Adressen auf eine einzige Adresse zu beschränken. Diese Tipps sind natürlich korrekt, aber Sie müssen vorsichtig sein, da sehr oft ein einzelner Port am Switch mit mehreren MAC-Adressen übereinstimmen kann. Zum Beispiel verwendet ein Switch alle Ports, aber Sie müssen mehrere weitere Arbeitsplätze mit ihm verbinden (aufgrund der Erweiterung oder umgekehrt). Die beste Lösung wäre in einer solchen Situation, einen weiteren Switch mit diesem zu verbinden und den Anschluss des neuen Switches hinter der entsprechenden MAC-Adresse zu reservieren. In den derzeitigen wirtschaftlichen Bedingungen entscheiden sich jedoch viele Unternehmen dafür, zu sparen und dieselben Hubs für den Anschluss zu verwenden.
Es gibt auch Fälle, in denen mehrere Workstations abwechselnd an einen einzelnen Switch-Port angeschlossen werden können. Zum Beispiel wird das oft in Besprechungsräumen gemacht. Daher rate ich Ihnen, bei der Einstellung der Beschränkungen für die Anschlüsse an den MAC-Adressen nicht übermäßig mit dem «Schrauben der Muttern» beschäftigt zu sein, um weitere Schwierigkeiten in der Zukunft zu vermeiden.
Lassen Sie uns nun zum praktischen Teil übergehen. Betrachten wir als Beispiel die Konfiguration des Cisco Catalyst 2960 Switch mit dem IOS-Betriebssystem. Dieses Modell verfügt über 24 Ports, mit denen Benutzer verbunden sind. Sie müssen sicherstellen, dass an jedem Port nicht mehr als drei Maschinen angeschlossen werden können (mit anderen Worten, drei MAC-Adressen). Dazu müssen Sie eine Remote-Verbindung mit dem Switch oder über die Konsole herstellen und die folgenden Befehle ausführen:
Switch# conf t
Switch(config)# int range f0/1-24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport port-security
Switch(config-if-range)# switchport port-security violation shutdown
Switch(config-if-range)# switchport port-security maximum 3
Switch(config-if-range)# switchport port-security mac-address sticky
Jetzt kurz darüber, was jedes Team macht. In der ersten Zeile wechseln wir in den globalen Konfigurationsmodus, in der zweiten in den Portkonfigurationsmodus. Im dritten weisen wir ausdrücklich darauf hin, dass alles
die ausgewählten Ports funktionieren im Zugriffsmodus. Als nächstes aktivieren wir den Port-Security-Schutz. In den folgenden drei Zeilen geben wir dem Switch an, was zu tun ist, wenn mehr als drei Workstations versuchen, eine Verbindung zum Port herzustellen. Zuerst geben Sie an, dass Sie den Port deaktivieren und eine entsprechende Nachricht über snmp und syslog senden müssen. Sie können diese Option übrigens nicht erzwingen, da sie standardmäßig aktiviert ist. Neben dem Shutdown-Modus, den wir verwenden, gibt es auch protect und restrict. Der Sinn der letzten beiden Modi besteht darin, dass der Port nicht ausgeschaltet wird (dh in den Shutdown-Zustand versetzt wird), sondern dass Pakete nur blockiert werden, wenn eine Verletzung der MAC-Adressen erkannt wird. Der Unterschied zwischen diesen beiden Modi besteht darin, dass restrict im Falle einer freiberuflichen Situation snmp-trap und syslog eine Meldung über einen Verstoß gegen die Sicherheitsrichtlinie senden kann.
Im folgenden Befehl geben wir an den Switch an, wie viele MAC-Adressen an diesem Port zu sehen sind. In unserem Fall sind es drei. Schließlich versetzt der letzte Befehl den Switch-Port in den Lernmodus, dh die ersten drei MAC-Adressen, die über diesen Port empfangen werden, und werden automatisch in der running-config gespeichert.
Zusammenfassend werde ich sagen, dass all diese Teams ausreichen, um einen Angriff auf einen CAM-Tabellenüberlauf zu verhindern.