skip to Main Content

it.sec Research Team findet Command-Injection-Schwachstelle in Oracle WebLogic Server

Im Zuge eines Kundenprojekts konnte das Research Team der it.sec eine bisher unbekannte Schwachstelle in der Oracle Fusion Middleware – Oracle WebLogic Server – identifizieren und ausnutzen. Hierbei konnte die Funktionalität des WLST Script Recordings genutzt werden, um Dateien auf Betriebssystemebene zu lesen und zu schreiben bzw. zu überschreiben. Es konnten nur Dateien genutzt werden, für die der Nutzer oraem entsprechende Berechtigungen hatte.

Um die Schwachstelle erfolgreich auszunutzen, waren Zugangsdaten zur Oracle WebLogic Server
Administration Console mit Berechtigungen auf das WLST Script Recording notwendig, was in der Standardkonfiguration nur der Administrator hatte.

Identifikation der Schwachstelle

Aufgrund einer fehlenden Eingabevalidierung in den Feldern Base Script Directory und Script File Name in Bereich des WLST Script Recording konnten beliebige Ordner- und Dateinamen ausgewählt werden. Um vorhande Skripte zu bearbeiten, wurden diese vor der Bearbeitung in die Applikation eingelesen und angezeigt. Dies konnte mit der Funktion Append to File erreicht werden. Die Funktionen Generate Prescript und Generate Postscript konnten genutzt werden, um neue Dateien auf dem System anzulegen und beliebigen Inhalt einzufügen.

Dateien wurden im Read/Write-Modus von der Applikation geöffnet, sodass nur auf Dateien zugegriffen werden konnte, bei denen der Benutzer diese Berechtigungen hatte bzw. welche nicht anderweitig für den Zugriff gesperrt waren. Der Zugriff wurde mit den Berechtigungen des Benutzers oraem durchgeführt. Beispielsweise war die Datei /etc/passwd nicht schreibbar, weil der Benutzer nicht die notwendigen Berechtigungen hatte, somit konnte diese Datei auch nicht ausgelesen werden. Wurde versucht, Dateien zu öffnen, für die keine Schreibrechte vorhanden waren, wurde ein I/O-Fehler zurückgegeben.

Betroffene Versionen

Die Schwachstelle wurde in Oracle WebLogic Server in Version 12.2.1.4.0 identifiziert. Details zum Patch und zu betroffenen Versionen gibt es auf der offiziellen Seite zum Oracle Critical Patch Update July 2023.

Proof Of Concept: Zugriff via SSH auf das Betriebssystem

Ein möglicher Angriffspfad war, über die Schwachstelle SSH-Zugriff auf das System mit den Berechtigungen des Benutzers oraem zu erlangen. Dieses Szenario ist nachfolgend beschrieben.

Die folgende Abbildung zeigt die notwendige Konfiguration, um den privaten SSH-Schlüssel des Benutzers oraem auszulesen. Um die Datei zu lesen statt zu überschreiben, wurde die Option Append To File genutzt.

Die folgende Abbildung zeigt das erfolgreiche Auslesen des privaten SSH-Schlüssels nach dem Starten der Aufnahmefunktion. Nun konnte der Schlüssel auf den Angreifer-PC kopiert werden. Die Aufnahme wurde gestoppt, ohne dass die Datei verändert wurde.

Der Vorgang wurde nun mit dem öffentlichen Schlüssel wiederholt. Um das Schreiben von Dateien auf dem System zu demonstrieren, wurde die Datei authorized_keys angelegt und der öffentliche Schlüssel eingetragen. Dies war notwendig, um sich mit dem vorher ausgelesenen privaten Schlüssel am System zu authentifizieren.

Die folgenden 2 Screenshots zeigen das Auslesen des öffentlichen Schlüssels.

Nun wurde die Datei authorized_keys angelegt und der öffentliche Schlüssel mit der Funktionen Generate Prescript eingefügt.

Die folgenden Abbildung zeigt das erfolgreiche Anlegen der Datei und das erfolgreiche Einfügen des öffentlichen Schlüssels.

Mit dem privaten Schlüssel auf dem Client und dem öffentlichen Schlüssel auf dem Server konnte nun
eine SSH-Verbindung aufgebaut werden. Die folgende Abbildung zeigt den Verbindungsaufbau und das Auslesen des privaten und öffentlichen Schlüssels auf dem System selbst.

Schlussbemerkungen

Ein deutlich schnellerer Weg wäre es natürlich, lokal einen Schlüssel zu generieren und dann nur den eigenen öffentlichen Schlüssel auf das System zu laden. Dieser Weg sollte jedoch die verschiedenen Facetten der Schwachstelle an einem konstruierten Beispiel darstellen. Alternativ hätte auch eine .war-/.jar- Datei mit eigenem Code hochgeladen werden können, um per Remote Code Execution Zugriff auf das System zu erhalten.

Laut Oracle wurde die Schwachstelle CVE-2023-22040 bereits behoben und die Vertragspartner über das Update informiert.

Wir raten allen Nutzern der Software, diese selbstständig zu aktualisieren oder andere mitigierende Maßnahmen zu implementieren.

Wir freuen uns über Feedback zu diesem Artikel – egal ob per Mail, über LinkedIn oder telefonisch!

Falls Sie Interesse haben, Ihre Software testen zu lassen oder generelle Fragen zum Thema Penetrationtesting und Red Teaming oder eine erste Beratung zu diesem Thema wünschen, zögern Sie nicht, uns zu kontaktieren!

Telefon: +49 731 20 589-0
E-Mail: pentests@it-sec.de

Research Team der it.sec

Back To Top