
Ferramenta de varredura para identificar problemas de escalonamento de privilégios locais em instaladores MSI vulneráveis.
Este script Python para Linux pode analisar arquivos de instalador *.msi do Microsoft Windows e apontar possíveis vulnerabilidades. Foi desenvolvido por Michael Baer (@derbaer0) no SEC Consult Vulnerability Lab.
Atualmente, ele é mais adequado para uma escalada local de privilégios também descrita em nossa postagem no blog: https://r.sec-consult.com/msi.
A Microsoft atribuiu CVE-2024-38014 e também forneceu um patch para esta vulnerabilidade no patch day de setembro de 2024: https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014.
O script também pode ser usado para obter uma visão geral de um instalador e identificar possíveis fraquezas.
Você precisa de alguns pacotes Python. sqlite3, termcolor, talvez mais. Fora isso, nenhuma instalação é necessária. Basta executar o script a partir da pasta principal.
Instale o pacote (apt) msitools. Ele contém msiinfo e msiextract, que também são necessários.
sudo apt install msitools
O binário SetOpLock, útil para explorar a vulnerabilidade, pode ser encontrado aqui: https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>Agora analise o resultado em busca de cores incomuns (vermelho) para vitórias rápidas. Conselho: Se houver algo em vermelho, repare-o com o ProcMon e siga a abordagem manual.
Haverá erros. Basta ignorá-los. A análise tenta continuar quando possível.
Se você vir uma linha vermelha no início Repairmode disabled ..., não será possível acionar a função de reparo.
Agora, algumas explicações para entender a saída se você quiser investir algum tempo em uma análise mais aprofundada:

CreateObject ("WScript.Shell")).Acredito que ainda há muito a extrair de pacotes de instaladores. Por exemplo, permissões de pastas e serviços que são instalados podem rapidamente identificar mais vetores de LPE.