
취약한 MSI 설치 프로그램에서 로컬 권한 상승 문제를 식별하기 위한 스캐닝 도구
이 Python 스크립트는 Linux에서 Microsoft Windows *.msi 설치 프로그램 파일을 분석하고 잠재적인 취약점을 지적할 수 있습니다. SEC Consult Vulnerability Lab의 Michael Baer(@derbaer0)가 개발했습니다.
현재로서는 주로 로컬 권한 상승에 적합하며, 이는 우리 블로그 게시물에도 설명되어 있습니다: https://r.sec-consult.com/msi.
Microsoft는 이 취약점에 CVE-2024-38014를 지정했으며 2024년 9월 패치 데이에 패치도 제공했습니다: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
이 스크립트는 설치 프로그램의 개요를 파악하고 잠재적 약점을 식별하는 데에도 사용할 수 있습니다.
일부 Python 패키지가 필요합니다. sqlite3, termcolor, 그리고 더 있을 수 있습니다. 그 외에는 설치가 필요 없습니다. 기본 폴더에서 스크립트를 실행하기만 하면 됩니다.
msitools (apt) 패키지를 설치하세요. 여기에는 필요한 msiinfo와 msiextract도 포함되어 있습니다.
sudo apt install msitools
취약점 악용에 유용한 SetOpLock 바이너리는 여기에서 찾을 수 있습니다: https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>이제 빠른 성과를 위해 결과에서 특이한 색상(빨간색)을 찾아보세요. 조언: 빨간색 항목이 있으면 ProcMon으로 복구하고 수동 접근 방식을 수행하세요.
오류가 발생할 수 있습니다. 무시하세요. 분석은 가능하면 계속 진행하려고 시도합니다.
처음에 Repairmode disabled ...라는 빨간색 줄이 보이면 복구 기능을 트리거할 수 없습니다.
이제 더 깊은 분석에 시간을 투자하고 싶다면 출력을 이해하는 데 도움이 되는 몇 가지 설명입니다:

CreateObject ("WScript.Shell"))도 확인하세요.설치 프로그램 패키지에서 추출할 것이 아직 많이 있다고 생각합니다. 예를 들어 설치되는 폴더와 서비스의 권한은 더 많은 LPE 벡터를 신속하게 식별할 수 있습니다.