
Herramienta de escaneo para identificar problemas de escalada de privilegios locales en instaladores MSI vulnerables
Este script de Python para Linux puede analizar archivos instaladores de Microsoft Windows *.msi y señalar posibles vulnerabilidades. Fue desarrollado por Michael Baer (@derbaer0) en el SEC Consult Vulnerability Lab.
Actualmente, está orientado principalmente a una escalada local de privilegios también descrita en nuestro artículo del blog: https://r.sec-consult.com/msi.
Microsoft asignó el CVE-2024-38014 y también proporcionó un parche para esta vulnerabilidad en el día de parches de septiembre de 2024: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
El script también se puede utilizar para obtener una visión general de un instalador e identificar posibles debilidades.
Necesitas algunos paquetes de Python. sqlite3, termcolor, quizás más. Por lo demás, no se requiere instalación. Solo ejecuta el script desde la carpeta principal.
Instala el paquete (apt) msitools. Contiene msiinfo y msiextract, que también se necesitan.
sudo apt install msitools
El binario SetOpLock, útil para explotar la vulnerabilidad, se puede encontrar aquí: https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Instalador>./runall.sh <directorio>Ahora escanea el resultado en busca de colores inusuales (rojo) para victorias rápidas. Consejo: si hay algo en rojo, repáralo con ProcMon y haz el enfoque manual.
Habrá errores. Solo ignóralos. El análisis intenta continuar si es posible.
Si ves una línea roja al principio Repairmode disabled ..., no podrás activar la función de reparación.
Ahora, algunas explicaciones para entender la salida si quieres invertir algo de tiempo en un análisis más profundo:

CreateObject ("WScript.Shell")).Creo que todavía hay mucho que extraer de los paquetes de instalación. Por ejemplo, los permisos de carpetas y servicios que se instalan podrían identificar rápidamente más vectores de LPE.