
QlikView를 이용한 LPE PoC
영향받는 애플리케이션: QlikView 플랫폼: Windows 이슈: MSI 설치 프로그램을 통한 로컬 권한 상승(DLL 하이재킹 경쟁 조건) 발견 및 보고자: Pawel Karwowski, Julian Horoszkiewicz (Eviden Red Team)
세부 사항: QuikView12가 설치된 시스템에서 일반 사용자가 다음 명령을 실행하여 설치 프로그램을 "복구" 모드로 트리거할 수 있습니다: msiexec.exe /fa PATH_TO_INSTALLER_FILE.msi
이로 인해 msiexec 서비스가 트리거되어 복구 프로세스를 수행하며, 여러 작업을 실행하고, 그중에서 C:\Users\pk\AppData\Local\Temp 디렉터리 내에 파일 이름이 동적으로 생성된 파일을 만듭니다. 파일 이름 템플릿은 "wac<4개의 무작위 문자 또는 숫자>.tmp"이며, 예를 들어 wac98DF.tmp와 같습니다.
그런 다음 프로세스는 NT AUTHORITY/SYSTEM으로 실행되는 생성된 wac****.tmp 파일(실행 파일)을 사용하여 자신의 이미지를 쓰고 로드합니다.
C:\Users\pk\AppData\Local\ 디렉터리는 일반 사용자가 소유하고 있으므로 C:\Users\pk\AppData\Local\Temp\ 디렉터리는 권한을 상속받아 일반 사용자가 디렉터리 내용에 간섭할 수 있습니다. 예를 들어 동적으로 생성된 DLL 파일을 덮어쓰는 것이 가능합니다.
이는 경쟁 조건을 만듭니다. DLL 파일을 찾으면 자신의 파일로 덮어쓰기를 시도할 수 있습니다. 올바른(매우 좁은) 시간 창, 즉 설치 프로그램이 원본 파일을 작성하고 파일 디스크립터가 닫힌 직후, 설치 프로그램이 LoadLibrary()를 호출하기 전에 교체를 수행할 수 있다면, 자신의 DLL 파일이 NT AUTHORITY/SYSTEM으로 실행되어 로컬 권한 상승이 발생합니다.
공격은 .MSI 파일을 실행하고, 관심 있는 합법적인 EXE 파일의 존재 및 생성을 확인하며, PoC EXE를 Appdata\Local\Temp 디렉터리에 반복적으로 복사하여 합법적인 EXE 파일을 효과적으로 덮어쓰는 PowerShell 스크립트를 사용하여 수행됩니다. 로드된 후 PoC EXE 파일은 C:\Users\Public에 poc.txt 파일을 생성하며, 이를 호출한 명령줄과 whoami 출력을 포함합니다.
MSI 파일 SHA256 합계: 0267324393384ED2B0746D6CEBDD0FD7D8DBD26853BDA58F875F20F40EBBB898