
Outil d'analyse pour identifier les problèmes d'élévation de privilèges locaux dans les installateurs MSI vulnérables.
Ce script Python pour Linux peut analyser les fichiers d'installation Microsoft Windows *.msi et signaler d'éventuelles vulnérabilités. Il a été développé par Michael Baer (@derbaer0) au SEC Consult Vulnerability Lab.
Actuellement, il est surtout adapté à une élévation de privilèges locale, également décrite dans notre article de blog : https://r.sec-consult.com/msi.
Microsoft a attribué CVE-2024-38014 et a également fourni un correctif pour cette vulnérabilité lors du Patch Tuesday de septembre 2024 : https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
Le script peut également être utilisé pour obtenir une vue d'ensemble d'un installateur et identifier d'éventuelles faiblesses.
Vous avez besoin de quelques paquets Python. sqlite3, termcolor, peut-être plus. Sinon, aucune installation n'est requise. Il suffit d'exécuter le script depuis le dossier principal.
Installez le paquet (apt) msitools. Il contient msiinfo et msiextract, également nécessaires.
sudo apt install msitools
Le binaire SetOpLock, utile pour exploiter la vulnérabilité, peut être trouvé ici : https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>Examinez maintenant le résultat à la recherche de couleurs inhabituelles (rouge) pour des victoires rapides. Conseil : s'il y a quelque chose en rouge, réparez-le avec ProcMon et adoptez l'approche manuelle.
Il y aura des erreurs. Ignorez-les simplement. L'analyse essaie de continuer si possible.
Si vous voyez une ligne rouge au début Repairmode disabled ..., vous ne pourrez pas déclencher la fonction de réparation.
Voici quelques explications pour comprendre la sortie si vous voulez investir du temps dans une analyse plus approfondie :

CreateObject ("WScript.Shell")).Je crois qu'il y a encore beaucoup à extraire des paquets d'installation. Par exemple, les permissions des dossiers et des services installés pourraient rapidement identifier d'autres vecteurs LPE.