
Strumento di scansione per identificare problemi di escalation dei privilegi locali in installatori MSI vulnerabili
Questo script Python per Linux può analizzare i file di installazione Microsoft Windows *.msi e segnalare potenziali vulnerabilità. È stato sviluppato da Michael Baer (@derbaer0) nel SEC Consult Vulnerability Lab.
Attualmente, è adatto principalmente a un'escalation di privilegi locale descritta anche nel nostro post sul blog: https://r.sec-consult.com/msi.
Microsoft ha assegnato CVE-2024-38014 e ha anche fornito una patch per questa vulnerabilità nel patch day di settembre 2024: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
Lo script può anche essere usato per ottenere una panoramica di un installer e individuare potenziali punti deboli.
Sono necessari alcuni pacchetti Python. sqlite3, termcolor, forse altri. Per il resto, non è richiesta alcuna installazione. Basta eseguire lo script dalla cartella principale.
Installa il pacchetto (apt) msitools. Contiene msiinfo e msiextract, anch'essi necessari.
sudo apt install msitools
Il binario SetOpLock utile per sfruttare la vulnerabilità può essere trovato qui: https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>Ora esamina il risultato per colori insoliti (rosso) per vittorie rapide. Consiglio: se c'è qualcosa di rosso, riparalo con ProcMon e segui l'approccio manuale.
Ci saranno errori. Ignorali. L'analisi cerca di continuare se possibile.
Se vedi una riga rossa all'inizio Repairmode disabled ..., non potrai attivare la funzione di riparazione.
Ora, alcune spiegazioni per capire l'output se vuoi investire del tempo in un'analisi più approfondita:

CreateObject ("WScript.Shell")).Credo che ci sia ancora molto da estrarre dai pacchetti di installazione. Es., i permessi delle cartelle e dei servizi che vengono installati potrebbero identificare rapidamente altri vettori LPE.