
Scan-Tool zur Identifizierung von Problemen mit lokaler Rechteausweitung in verwundbaren MSI-Installern
Dieses Python-Skript für Linux kann Microsoft Windows *.msi-Installationsdateien analysieren und auf potenzielle Schwachstellen hinweisen. Es wurde von Michael Baer (@derbaer0) im SEC Consult Vulnerability Lab entwickelt.
Derzeit ist es hauptsächlich für eine lokale Privilege Escalation geeignet, die auch in unserem Blogbeitrag beschrieben wird: https://r.sec-consult.com/msi.
Microsoft hat CVE-2024-38014 zugewiesen und außerdem einen Patch für diese Schwachstelle am Patchday im September 2024 bereitgestellt: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
Das Skript kann auch verwendet werden, um einen Überblick über einen Installer zu erhalten und potenzielle Schwachstellen zu identifizieren.
Sie benötigen einige Python-Pakete. sqlite3, termcolor, vielleicht weitere. Ansonsten ist keine Installation erforderlich. Führen Sie das Skript einfach aus dem Hauptverzeichnis aus.
Installieren Sie das (apt-)Paket msitools. Es enthält msiinfo und msiextract, die ebenfalls benötigt werden.
sudo apt install msitools
Das SetOpLock-Binary, das zum Ausnutzen der Schwachstelle hilfreich ist, finden Sie hier: https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>Durchsuchen Sie nun das Ergebnis nach ungewöhnlichen Farben (Rot) für schnelle Erfolge. Hinweis: Wenn etwas rot ist, reparieren Sie es mit ProcMon und gehen Sie manuell vor.
Es werden Fehler auftreten. Ignorieren Sie sie einfach. Die Analyse versucht, wenn möglich, fortzufahren.
Wenn Sie zu Beginn eine rote Zeile Repairmode disabled ... sehen, können Sie die Reparaturfunktion nicht auslösen.
Nun ein paar Erklärungen, um die Ausgabe zu verstehen, falls Sie Zeit in eine tiefere Analyse investieren möchten:

CreateObject ("WScript.Shell")).Ich glaube, aus Installationspaketen lässt sich noch viel herausholen. Zum Beispiel könnten Berechtigungen von Ordnern und Diensten, die installiert werden, schnell weitere LPE-Vektoren identifizieren.