Schauen wir uns ein Beispiel an, welches Anfangs vielleicht ein wenig verrückt und unrealistisch klingt, aber dann noch beängstigend wird.

Wir gehen weg von den Access-Layer und bewegen wir uns zwischen Core oder im Distribution Bereich.

Um die Dramatik in meinem Beispiel zu erhöhen, stellen wir uns eine Umgebung in der Forschung vor. Wie wir denken, arbeiten diese mit hochmoderne Computers, die oft mittels GPUs schwierige Simulationen Tage- oder Wochenlang berechnen. Aber es gibt auch andere Geräte, wie Mikroskope, die weiterhin über einen Serial RS-232 Kabel angeschlossen sind, oder Software die nur unter Windows XP laufen, oder sogar eine Datenbank in Microsoft Access 2000… vielleicht auch Microsoft Access 1998… Ja, eine Datenbank aus dem letzten Jahrhundert. Viele schütteln jetzt den Kopf und behaupten laut: „Wie kann das denn sein?“. Dennoch werden mir viele bestätigen können, das solche Systeme noch im Umlauf sind, und es ist auch nicht vorgesehen, diese zu aktualisieren, oder zu ersetzen! Es werden sogar alte Geräte gekauft, um diese als Backup zu haben, um ein Windows 2000 fähiges Gerät zu haben, damit man die Datenbank innerhalb ein paar Stunden oder Tagen wiederherstellen kann.

Systeme die seit mehr als 10 Jahre keine Patch mehr erhalten haben und tausende von offenen Systemlücken enthalten.

Solche Geräte gehen an der Abteilung IT-Security nicht vorbei. Die wissen davon Bescheid, und können in vielen Situationen nichts anderes entscheiden als solche Systeme, die in einem so genantes „non-routable“ Netzwerk platzieren.

Auf dem ersten Blick klingt das nach einem Plan… Aber…

Schauen wir uns ein Beispiel noch im Detail an.

Wir haben auf einem Switch das VLAN 2 auf zwei Ports definiert. In diesem Netz befindet sich kein anderes Gerät, es gibt auch kein Gerät, welches ein Fuss in einem weiteren Netzwerk hätte, um als Gateway zu agieren. Somit besteht keine Verbindung von Aussen nach Innen und ebenfalls von Innen nach Aussen. Doch die restlichen Ports sind standardmässig auf VLAN 1 für andere Clients, welche über dieses VLAN mit der Rest der Infrastruktur kommunizieren ohne in das „non-routable“ VLAN reinschauen zu können.

Und hier kommt der Haken. Viele Engineers nehmen die Aufgabe der Netzwerk Härtung nicht so ernst wie sie sollten. Der Switch muss irgendwie als Solches an die Infrastruktur angeschlossen werden, um diesen verwalten zu können. Um das Deployen der Switches zu beschleunigen nehmen viele Firmen einfach das VLAN 1 für die Clients (Plug and Pray).

Nun setzt sich der Netzwerk Engineer vor dem Rechner, greift auf den Switch zu und konfiguriert Port GigabitEthernet0/1 und Port GigabitEthernet0/2 beide im VLAN 2. Einen weiteren Port, GigabitEthernet0/48, wird im VLAN 23 konfiguriert, um der Switch über die Normale Infrastruktur zu verwalten. Die Restlichen Ports bleiben wie besprochen innerhalb der VLAN 1.

Um das zu überprüfen gibt der Netzwerk Engineer „show interface status“ in der Console ein.

Port Name Status Vlan Duplex Speed Type
Gi0/1 connected 2 a-full a-1000 10/100/1000BaseTX
Gi0/2 connected 2 a-full a-1000 10/100/1000BaseTX
Gi0/3 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/4 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/5 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/6 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/7 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/8 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/9 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/10 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/11 notconnect 1 auto auto 10/100/1000BaseTX

Port Name Status Vlan Duplex Speed Type
Gi0/12 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/13 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/14 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/15 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/16 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/17 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/18 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/19 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/20 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/21 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/22 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/23 notconnect 1 auto auto 10/100/1000BaseTX

Port Name Status Vlan Duplex Speed Type
Gi0/24 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/25 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/26 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/27 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/28 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/29 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/30 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/31 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/32 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/33 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/34 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/35 notconnect 1 auto auto 10/100/1000BaseTX

Port Name Status Vlan Duplex Speed Type
Gi0/36 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/37 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/38 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/39 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/40 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/41 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/42 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/43 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/44 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/45 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/46 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/47 notconnect 1 auto auto 10/100/1000BaseTX

Port Name Status Vlan Duplex Speed Type
Gi0/48 notconnect 23 auto auto 10/100/1000BaseTX
Gi0/49 notconnect 1 auto auto Not Present
Gi0/50 notconnect 1 auto auto Not Present
Fa0 disabled routed auto auto 10/100BaseTX
Switch#

Die drei Ports sind nach Auftrag in einem nicht existierenden Netzwerk/VLAN platziert worden. Einer von den Forscher bestätigt die Erreichbarkeit des Mikroskopes vom Windows 2000 Rechner aus. Somit Auftrag erledigt!

Analyse des Ausliferungszustandes eines Cisco Catalyst Switch

Wie wir vorher aus dem Auszug des „show interface status“ Befehls erkennen konnten, sind alle restlichen Ports auf „notconnect“, dies bedeutet nichts anders als, dass dieser Port eingeschaltet ist, aber kein Kabel steckt.

Schauen wir uns die default Konfiguration eines Ports an.

Gar keinen Statement… aber wie ist der Port tatsächlich konfiguriert.

Upsala! Dieser Port lässt zu einen Trunk auszuhandeln. Das heisst, dass wenn wir es schaffen mit dem Port auf Dynamic Trunk Protocol zu kommunizieren, dann könnten wir einen Trunk aufbauen. Das ist ein Problem, da in einem Trunk, sofern nichts anderes konfiguriert ist, kann man über alle VLANs kommunizeren. Dafür muss man nur Pakete mit dem richtigen Tag für das richtige VLAN versenden.

Wie funktioniert Dynamic Trunking Protocol?

Für das Aufbauen eines Trunk Ports über DTP braucht es lediglich eine Gegenstelle die von Zeit zu Zeit das richtige Paket mit passende Information schickt. HIer eine Aufnhame mit Wireshark.

Und der Switch schickt ebenfalls über das Native VLAN Information über den Port raus.

Aus der Wireshark Aufnahme können wir sehen, dass der Client auf „Desirable“ ist und der Switch auf „Auto“. Somit es steht nichts mehr im Weg, dass der Port im Trunk-Modus hochkommt.

VLAN-Hopping mit Kali Linux

Ich habe auf meiner Kali Linux Maschine „yersinia“ installiert. Ich bin so fasziniert vom Tool gewesen, dass ich bestimmt weitere Post darüber schreiben werde :). Damit kann man einen Trunk mit dem Switch aufbauen. Einfach auf das Register „DTP“ gehen und oben Rechts auf „Launch Attack“ klicken.

Sobald der Angriff lanciert ist. Sehen wir auf dem Switch, dass der Port hoch kommt und sich dabei um einen Trunk handelt.

Danach kann man einfach nur den Traffic aus dem Trunk abhören. Da auf dem Cisco Switch by Default PVST+ (Per VLAN Spanning-Tree) läuft, dann könnte man jedes BPDU anschauen und daraus lesen für welches VLAN es bestimmt war.

Dies kann man ganz einfach im Wireshark aus der Information dieser Frames auslesen, oder wenn man in einem Frame rein schaut.

Wir können hier BPDUs aus verschiedenen VLANs sehen (Siehe Screenshot rechts, rote Markierung). Jede Menge BPDUs für VLAN 1, 2 und 23.

Sobald wir diese Information haben, können wir unter Linux ein Subinterface unserer Netzwerkkarte erstellen und ein bestimmtes VLAN zuweisen.

802.1q aktivieren und ein Interface dazu konfigurieren

root@kalicito:/home/max# modprobe 8021q
root@kalicito:/home/max# vconfig add eth0 2

Warning: vconfig is deprecated and might be removed in the future, please migrate to ip(route2) as soon as possible!

root@kalicito:/home/max# ifconfig eth0.2 up
root@kalicito:/home/max# ifconfig eth0.2 192.168.1.62
root@kalicito:/home/max# ifconfig eth0.2

eth0.2: flags=4163 mtu 1500
inet 192.168.1.62 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2618:1dff:fef3:c6b0 prefixlen 64 scopeid 0x20
inet6 2a02:120b:c3d5:3610:2618:1dff:fef3:c6b0 prefixlen 64 scopeid 0x0
ether 24:18:1d:f3:c6:b0 txqueuelen 1000 (Ethernet)
RX packets 65 bytes 4992 (4.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 728 (728.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@kalicito:/home/max# ping 192.168.1.75
PING 192.168.1.75 (192.168.1.75) 56(84) bytes of data.
64 bytes from 192.168.1.75: icmp_seq=1 ttl=128 time=0.429 ms
64 bytes from 192.168.1.75: icmp_seq=2 ttl=128 time=0.409 ms
64 bytes from 192.168.1.75: icmp_seq=3 ttl=128 time=0.421 ms
^C
--- 192.168.1.75 ping statistics ---

Das Interface ist UP and Running, und es sieht sogar si aus, als hätte man bereits Konnektivität mit der Windows 2000 Maschine. Was könnte man jetzt als nächstes machen?

Windows Maschine hacken

Ich will gar nicht ins Detail gehen, da in dieser Post geht es nur ums VLAN-Hopping. Was danach passiert, kann sich jeder selber vorstellen. Aber mir ist trotzdem wichtig, dass die Leute sehen, wie leicht es ist in eine Maschine einzudrigen.

Auf die Schnelle grief ich unter Metasploit zu einem sehr bekannten Exploit (ms17_010). Nach dem Ausführen vergehen keine 3 Sekunden und schon ist man auf der Maschine drauf.

An diesem Punkt, sind wir in der Lage problemlos die Dateien der entfernter Maschine zu durchsuchen. Nach einer kleinen Suche hab ich der Ordner „ForschungsDaten“ und darin die Datei „geheime aufnahme.txt“ gefunden. Naja… so schwer war das auch nicht, da ich die Windows 2000 Maschine aufgesetzt habe.

Entschärfung

Das ganze kann verhindert werden, in dem man das aushandeln der Ports verhindert

switchport nonegotiate

zu dem sollte man Ports welche nicht im Gebrauch sind, im Access Mode setzen und ein Parking VLAN zuweisen. Diese Ports sollten auch ausgeschaltet werden.

switchport mode access
switchport access vlan 999
shutdown
!
vlan 999
name Parking_VLAN
shutdown

Fazit

Schon wieder konnte wir in ein Netzwerk in Minuten eindringen. Und daher sehen wir, dass eine der Grössten Schwachstellen im System ist der Mensch selber. Viele Schwachstellen entstehen durch eine falsche oder nicht genügende Konfiguration der Infrastruktur.

In diesem Post hätte es auch bös für die ganze Infrastruktur enden können. Denn wir hätten weitere Geräte im VLAN 23 angreifen können, welches definitv ein „routable“ network ist

Vielen Dank und bis zum nächsten Post

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..