
Uma prova de conceito usando python para o CVE-2023-38146 "ThemeBleed"
Um enorme agradecimento a gabe_k pelo PoC inicial em C#, e por ter realmente encontrado esta CVE, esta é uma recriação do código dele em Python, reutilizando os arquivos de stage dele. Para ver o PoC inicial, veja a página dele aqui: https://github.com/gabe-k/themebleed
Uma prova de conceito usando Python para a CVE-2023-38146 "ThemeBleed".
Este programa usa o servidor SMB do Impacket e sobrescreve a função smb2Create e, portanto, requer as funcionalidades do Impacket.
Usage:
Replace {IP-ADDRESS} in the exploit.theme file
python3 ThemeBleedServer.py - Run the SMB server
Use the .theme file on a vulnerable windows 11 machine
As in Gabe's Exploit you need to create a new stage 3 file that is a dll that exports VerifyThemeVersion, the current file only opens Calc.
O Themebleed começa com um arquivo .THEME que solicita um arquivo msstyles pela internet. Se for usado um arquivo com número de versão "999", ele chamará a função ReviseVersionIfNecessary, que carrega de forma insegura um arquivo .dll, permitindo que um atacante carregue um arquivo de biblioteca não verificado.
Eu montei isso porque não consegui compilar o código em C# no linux, provavelmente devido à minha própria ignorância de como ele funciona; eu sei programar em python, no entanto.
Linhas 44-53 em ThemeBleedServer.py/overrideSmb2Create - É aqui que a mudança de caminho acontece
Linhas 191-Fim em ThemeBleedServer.py - Criação do servidor
Linha 13 em exploit.theme - Para alteração de IP.