Was ist CDR? Und warum ist es in der modernen Cybersicherheit wichtig?

Jetzt lesen
Wir verwenden künstliche Intelligenz für Website-Übersetzungen, und obwohl wir uns um Genauigkeit bemühen, kann es sein, dass sie nicht immer 100%ig präzise sind. Wir danken Ihnen für Ihr Verständnis.

CVE-2023-20198 & CVE-2023-20273: Von unauthentifizierten Web-Anfragen zu Root auf IOS XE

von OPSWAT
Jetzt teilen
Teilnehmer des OPSWAT

Zusammenfassung

Ende 2023 deckten Sicherheitsforscher eine kritische, verkettete Schwachstelle auf, die Cisco IOS XE Web UI betrifft und es nicht authentifizierten Angreifern ermöglicht, die vollständige Kontrolle über betroffene Geräte zu erlangen. Die Angriffskette kombiniert zwei Sicherheitslücken - CVE-2023-20198 und CVE-2023-20273 - die, wenn sie zusammen ausgenutzt werden, zur Befehlsausführung auf Root-Ebene auf dem zugrunde liegenden Linux-Host mit IOS XE führen. Dies ermöglicht die vollständige Übernahme von Geräten, dauerhaften Zugriff und potenzielle Querbewegungen in Unternehmensnetzwerken.

  • CVE-2023-20198: In den Cisco IOS XE Software 16.0.x bis 17.9.x ermöglicht diese Schwachstelle nicht authentifizierten Angreifern den Erstzugang und die Erstellung eines Kontos der Berechtigungsstufe 15 (Administrator) über die Web-UI. Nach der Erstellung kann der Angreifer beliebige administrative Aktionen auf dem Gerät durchführen, was ein erhebliches Sicherheitsrisiko darstellt.
  • CVE-2023-20273: Diese Schwachstelle, die dieselben Software-Versionen betrifft, erlaubt es authentifizierten Benutzern mit Level 15-Rechten, beliebige Befehle mit Root-Rechten auf dem zugrundeliegenden Linux-Betriebssystem durch einen Befehlsinjektionsfehler in der Software-Management-Komponente auszuführen.

Im Rahmen des OPSWAT Fellowship-Programms führten unsere Fellows Hoa X. Nguyen und Nhan Nguyen eine eingehende technische Analyse dieser Angriffskette durch. In unserer Forschung reproduzierten wir die Schwachstellen auf einem Cisco Catalyst 9300-24T-E Switch, auf dem IOS XE 17.01 läuft, und demonstrierten, wie die Schwachstellen miteinander verkettet werden können, um das System unter realen Bedingungen vollständig zu kompromittieren.

Hintergrund

Cisco IOS XE Überblick

Cisco IOS XE ist ein modernes, modulares Netzwerkbetriebssystem, das auf vielen Unternehmensplattformen von Cisco eingesetzt wird - darunter Router, Switches und Wireless-Controller. Es vereint die umfangreichen Funktionen des klassischen Cisco IOS mit einer sichereren, programmierbaren und Linux-basierten Architektur, die Netzwerkadministratoren Flexibilität und verbesserte Leistung bietet.

Im Kern läuft IOS XE als Linux-Betriebssystem mit dem Hauptprozess IOSd (IOS Daemon). Dieser Daemon übernimmt traditionelle Netzwerkaufgaben wie Routing, CLI-Verwaltung und Konfigurationskontrolle. In IOS XE 17.01 befindet sich das IOSd-Binary unter /usr/binos/bin/x86_64_crb_linux_iosd_ngwc-universalk9-ms.

Anders als bei älteren Cisco-Systemen befinden sich IOS XE-Benutzer, die sich über SSH verbinden, in einer eingeschränkten IOSd-Subsystem-Shell und nicht in der zugrunde liegenden Linux-Umgebung. Dieses Design isoliert den echten Root-Level-Zugriff des Betriebssystems und stärkt die allgemeine Sicherheitsgrenze zwischen Benutzerinteraktionen und dem Host-Kernel erheblich.

Cisco-Berechtigungsstufen

Cisco-Geräte implementieren ein hierarchisches Berechtigungsmodell zur Steuerung von Benutzerberechtigungen:

  • Stufe 0 - Zugang auf Stufe Null: Dies ist die am stärksten eingeschränkte Stufe. Sie erlaubt in der Regel nur eine begrenzte Anzahl von grundlegenden Befehlen wie Abmelden, Aktivieren, Deaktivieren, Hilfe und Beenden.
  • Stufe 1 - Benutzer-EXEC-Modus: Standardzugriff für Standardanmeldungen, der grundlegende Systemanzeige, aber keine Konfigurationsänderungen ermöglicht.
  • Stufe 15 - Privilegierter EXEC-Modus: Dies ist die höchste Privilegstufe und gewährt vollständige Kontrolle über das Gerät. Benutzer dieser Stufe können alle Befehle ausführen, einschließlich Konfigurationsbefehlen, und das Gerät neu laden.

Die mittleren Ebenen (2-14) können so angepasst werden, dass sie bestimmte Berechtigungen gewähren. Die Rechte werden vererbt, d.h. Benutzer höherer Ebenen verfügen automatisch über die Rechte der niedrigeren Ebenen.

Cisco Web UI Architektur

Die Cisco IOS XE Web UI bietet eine browserbasierte Schnittstelle für die Verwaltung und Überwachung von Geräten und bietet Konfigurations- und Diagnosefunktionen, ohne dass ein Befehlszeilenzugriff erforderlich ist. Intern nutzt die Web UI NGINX als Middleware-Proxy, um Benutzeranfragen an verschiedene interne Dienste weiterzuleiten, darunter den Web Services Management Agent (WSMA).

Die WSMA-Komponente dient als Kommunikationsbrücke zwischen der Web-Benutzeroberfläche und dem zugrunde liegenden IOSd-Daemon und übersetzt webbasierte Aktionen in entsprechende IOS XE-Konfigurationsbefehle.

Abbildung 2: HTTP-Anfragefluss innerhalb von IOS XE

Um die Zugriffskontrolle durchzusetzen, unterliegt jede Anfrage einer SOAP-basierten Authentifizierung und einer Überprüfung der Berechtigungen durch einen speziellen HTTP-Header (Priv-Level), wodurch sichergestellt wird, dass nur autorisierte Benutzer privilegierte Operationen durchführen können.

Abbildung 3: Beispiel für einen SOAP-XML-Body mit Benutzernamen, Platzhalter-Passwort und auszuführendem Befehl

Technische Analyse

CVE-2023-20198 - Umgehung der Authentifizierung und Eskalation von Privilegien

Unsere Mitarbeiter entdeckten, dass die Schwachstelle im Web-UI-HTTP-Endpunkt von Cisco IOS XE begründet ist. Bei der Verarbeitung eingehender Anfragen übergibt die Web-UI Befehle und die zugehörigen Benutzerberechtigungen an einen internen Endpunkt (/lua5), die dann von NGINX an einen von zwei WSMA-Handlern weitergeleitet werden - /webui_wsma_http oder /webui_wsma_https - je nach Protokoll.

Abbildung 4: Command-Parsing-Handler im WebUI-Quellcode
Abbildung 5: NGINX-Routing-Konfiguration, Setzen des richtigen Priv-Level-Headers und Übergabe an den entsprechenden IOSd-Handler

Die statische Analyse der IOSd-Binärdatei zeigt auch eine NGINX-Konfiguration, die einen Standard-Fallback-Handler enthält:  

Figure 6: Default fallback nginx handler found in IOSd

Die Schwachstelle rührt von der Art und Weise her, wie NGINX und IOSd die URL-Kodierung handhaben. Beide Komponenten dekodieren URL-Pfade unabhängig voneinander, wodurch ein Angreifer eine Umgehung der doppelten Kodierung ausnutzen kann.

Wenn beispielsweise /webui_wsma_https als /%2577ebui_wsma_https gesendet wird, führt NGINX eine einzige Dekodierung durch und sieht /%77ebui_wsma_https(was nicht direkt mit der geschützten internen Route übereinstimmt), so dass die Anforderung über einen weniger restriktiven Fallback-Handler weitergeleitet wird. Wenn die Anfrage das IOSd-Backend erreicht, führt IOSd eine zweite Dekodierung durch und löst den Pfad zu /webui_wsma_https auf.

Abbildung 7: Doppelte Verschlüsselungskette

Da NGINX diese missgestaltete Anfrage zunächst mit seinem Standard-Handler weiterleitet, kann es die normale Authentifizierung und Zugriffskontrolllogik nicht durchsetzen. Infolgedessen kann der Angreifer einen gefälschten Priv-Level-Header einfügen, der ihm Administratorrechte (15) zuweist. In Kombination mit einer SOAP-XML-Nutzlast, die einen Befehl zur Erstellung eines neuen Benutzers enthält, führt dies zur stillen Erstellung eines lokalen Kontos mit hohen Rechten.

Abbildung 8: Erfolgreich erstelltes Konto eines Angreifers mit hohen Rechten (Stufe 15) mit einer selbst erstellten HTTP-Anfrage

Für diesen Angriff ist keine vorherige Authentifizierung erforderlich, und der Angreifer erhält über die Web-Benutzeroberfläche die vollständige Konfigurationskontrolle über das Gerät - und damit die erste Stufe der Angriffskette.

CVE-2023-20273 - Befehlsinjektion in der Software

Sobald er sich mit dem neu erstellten Administratorkonto authentifiziert hat, kann der Angreifer die Sicherheitslücke CVE-2023-20273 ausnutzen, die eine Befehlsinjektion in der Softwareverwaltungskomponente (/webui/rest/softwareMgmt/*) darstellt. Dieser Endpunkt ist für legitime Administratoren gedacht, um Softwarepakete auf dem Gerät zu installieren oder zu aktualisieren.

Die Schwachstelle stammt aus der Logik der Eingabevalidierung in der Funktion validateSmuRequest(req), die validator.validateIPv4IPv6HostNameAddress(req.ipaddress) aufruft, um die in der Anfrage angegebene IP-Adresse zu überprüfen. Dieser Überprüfungsschritt soll sicherstellen, dass die angegebene Adresse korrekt formatiert ist und sicher verwendet werden kann.

Innerhalb von validateIPv4IPv6HostNameAddress stützt sich die Überprüfung auf die Hilfsroutine utils.isIPv6Address(ip), um die Einhaltung der IPv6-Syntax zu beurteilen. Diese Funktion versucht, die Eingabe zu parsen, indem sie sie an Doppelpunkten (:) aufteilt und jedes Segment mit einem regulären Ausdruck auswertet, der ungültige hexadezimale Muster oder Werte außerhalb des zulässigen Bereichs zurückweisen soll. Der Implementierungsfehler liegt in diesem regulären Ausdruck: Aufgrund eines zu freizügigen * Quantifizierers passt er auf jede beliebige Eingabe, so dass missgebildete oder bösartige Werte die Validierung ungeprüft passieren können.

Folglich werden die vom Angreifer kontrollierten Daten als gültig akzeptiert und fließen in die nachgelagerte Logik ein, wo sie bei der Befehlskonstruktion verwendet werden. Der nicht vertrauenswürdige IP-Adresswert wird schließlich in der Funktion runPexecCommand() verwendet, um einen Systembefehl zu konstruieren, der eine TFTP-Anforderung auslöst. Da dieser Vorgang ohne Eingabevalidierung oder Escaping erfolgt, kann ein Angreifer beliebige Befehle in den Prozess einschleusen, was zur Befehlsausführung mit erhöhten Rechten und zur vollständigen Kompromittierung des Cisco-Geräts führt.

Proof of Concept (PoC)

Während des OPSWAT reproduzierten unsere Fellows Hoa X. Nguyen und Nhan Nguyen den verketteten Exploit in einem kontrollierten, luftgeschützten Labor auf einem Cisco Catalyst 9300-24T-E mit IOS XE 17.01. Der Ablauf der Ausnutzung lässt sich durch die folgenden Schritte zusammenfassen:

Abbildung 9: Endgültige Exploit-Kette eines nicht autorisierten Angreifers unter Verwendung von CVE-2023-20198 und CVE-2023-20273
  1. Doppelt verschlüsselte Anfrage: Senden Sie einen speziell gestalteten POST an einen doppelt verschlüsselten internen Pfad (z. B. /%2577ebui_wsma_https), der über den Proxy-Fallback geleitet wird und einen gefälschten Priv-Level-Header sowie SOAP-Nutzdaten zur Kontoerstellung enthält.
  2. Erlangung einer Admin-Sitzung: Melden Sie sich mit dem erstellten Konto an und sammeln Sie Sitzungs-/CSRF-Tokens.
  3. Upload der Nutzdaten: Verwenden Sie den Web-UI-Upload, um attacker_shell.sh auf dem Gerät zu platzieren (nur für Administratoren).
  4. Ausführen über SMU: Senden Sie eine SMU-Anfrage mit einer gefälschten IP-Adresse (z. B., 100:100:100:$(/bin/sh /bootflash/attacker_shell.sh)); die Validierung wird umgangen und das hochgeladene Skript wird als root ausgeführt.
Abbildung 10: Erfolgreich erlangte Root-Rechte auf dem Cisco-Zielgerät

Sanierung

Cisco hat gepatchte Versionen der Cisco IOS XE Software veröffentlicht, die sowohl CVE-2023-20198 als auch CVE-2023-20273 beheben. Alle Unternehmen, die betroffene Versionen von 16.0.x bis 17.9.x einsetzen, sollten sofort auf die neueste gepatchte Version aktualisieren, wie in der offiziellen Sicherheitsempfehlung von Cisco beschrieben. Die Anwendung dieser Updates beseitigt die zugrundeliegenden Schwachstellen und verhindert die unberechtigte Ausweitung von Berechtigungen oder die Einschleusung von Befehlen über die Web-UI.

In Umgebungen, in denen ein sofortiges Upgrade nicht möglich ist, sollten Administratoren den Web-UI-Zugriff aus nicht vertrauenswürdigen Netzwerken einschränken oder deaktivieren, strenge Authentifizierungskontrollen für administrative Schnittstellen durchsetzen und das System kontinuierlich auf ungewöhnliches Verhalten, wie z. B. die Erstellung nicht autorisierter Konten oder ungewöhnliche Konfigurationsänderungen, überwachen.

Um die allgemeine Cyber-Resilienz zu stärken, können Unternehmen das Patching von Anbietern durch die MetaDefender vonOPSWAT ergänzen, ein einheitliches Sicherheits-Framework, das kritische Infrastrukturen schützt, indem es Bedrohungen über Dateien, Geräte und Datenströme hinweg erkennt und verhindert. Die Integration von MetaDefender in Netzwerk- und Betriebsabläufe verbessert die Sichtbarkeit, gewährleistet eine tiefere Prüfung von Bedrohungen und bietet einen zusätzlichen Schutz gegen potenzielle Angriffsversuche auf Verwaltungssysteme.

Durch die Kombination von rechtzeitigen Cisco-Updates, robusten Zugriffskontrollen und einer mehrschichtigen Verteidigungsstrategie, die von der MetaDefender unterstützt wird, können Unternehmen die Anfälligkeit für ähnliche Exploit-Ketten erheblich reduzieren und eine stärkere, widerstandsfähigere Sicherheitslage aufrechterhalten.

Bleiben Sie auf dem Laufenden mit OPSWAT!

Melden Sie sich noch heute an, um die neuesten Unternehmensinformationen zu erhalten, Geschichten, Veranstaltungshinweise und mehr.