
Инструмент сканирования для выявления проблем локального повышения привилегий в уязвимых MSI-установщиках.
Этот Python-скрипт для Linux анализирует установочные файлы Microsoft Windows *.msi и указывает на потенциальные уязвимости. Он был разработан Michael Baer (@derbaer0) в SEC Consult Vulnerability Lab.
В настоящее время он в первую очередь подходит для локального повышения привилегий, которое также описано в нашем блоге: https://r.sec-consult.com/msi.
Microsoft присвоила CVE-2024-38014 и предоставила патч для этой уязвимости в рамках сентябрьского патча 2024 года: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
Скрипт также можно использовать для получения общего представления об установщике и выявления потенциальных слабых мест.
Вам понадобятся некоторые пакеты Python: sqlite3, termcolor, возможно, другие. В остальном установка не требуется. Просто запустите скрипт из основной папки.
Установите (apt) пакет msitools. Он содержит 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")).Я считаю, что из установочных пакетов можно извлечь ещё много полезного. Например, права доступа к папкам и службам, которые устанавливаются, могут быстро выявить дополнительные векторы локального повышения привилегий.