
Una prueba de concepto usando Python para la CVE-2023-38146 "ThemeBleed"
Un agradecimiento enorme a gabe_k por el PoC inicial en C#, y por descubrir este CVE, esta es una recreación de su código en Python, reutilizando sus archivos de stage. Para ver el PoC inicial, visita su página aquí: https://github.com/gabe-k/themebleed
Una prueba de concepto en Python para el CVE-2023-38146 "ThemeBleed".
Este programa utiliza el servidor SMB de Impacket y sobrescribe la función smb2Create, por lo que requiere las funcionalidades de Impacket.
Uso:
Reemplazar {IP-ADDRESS} en el archivo exploit.theme
python3 ThemeBleedServer.py - Ejecutar el servidor SMB
Usar el archivo .theme en una máquina vulnerable con Windows 11
Como en el exploit de Gabe, necesitas crear un nuevo archivo stage 3 que sea un dll que exporte VerifyThemeVersion; el archivo actual solo abre Calculadora.
ThemeBleed comienza con un archivo .THEME que solicita un archivo msstyles desde internet. Si se utiliza un archivo con el número de versión "999", se llamará a la función ReviseVersionIfNecessary, la cual carga de manera insegura un archivo .dll, permitiendo a un atacante cargar un archivo de biblioteca no verificado.
Armé esto porque no pude compilar el código C# en Linux, probablemente por mi propia ignorancia de cómo funciona, pero yo sé programar en Python.
Líneas 44-53 en ThemeBleedServer.py/overrideSmb2Create - Aquí ocurre el cambio de ruta
Líneas 191-Fin en ThemeBleedServer.py - Creación del servidor
Línea 13 en exploit.theme - Para cambiar la IP.