
Este es un PoC para eludir el UAC mediante secuestro de DLL y abusando de la verificación de "Directorios de Confianza".
Este es un PoC para evadir el UAC mediante secuestro de DLL y abusando de la verificación de "Directorios de confianza".
El script de Python CsvToHeader.py se puede usar para generar un archivo de encabezado. Por defecto usará el archivo CSV dll_hijacking_candidates.csv que se puede encontrar aquí: dll_hijacking_candidates.csv.
El script comprobará para cada ejecutable portátil (PE) la siguiente condición:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c, el script comprobará si la DLL a secuestrar está en la lista de DLL importadas desde la tabla del PE.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader can be used to generate a header file from a CSV.
optional arguments:
-h, --help show this help message and exit
-f [DLL_PATH] Path of the csv to convert (default="dll_hijacking_candidates.csv")
-c Enable import dll in PE (default=False)
-v, --version Show program's version number and exit
Para generar el archivo de encabezado puedes usar el siguiente comando:
python CsvToHeader.py > dll_hijacking_candidates.h
Los archivos que se utilizarán son DLLHijacking.exe y test.dll.
DLLHijacking.exe es el archivo que se usará para generar la lista de PE vulnerables. Realizará los siguientes pasos:
CreateFakeDirectory
Función que crea un directorio en C:\windows \system32.
Copy Files in the new directory
C:\windows\system32\[TARGET.EXE] to C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] to C:\windows \system32\[TARGET.DLL]Trigger
Ejecutar el ejecutable desde C:\windows \system32\[TARGET.EXE]
CleanUpFakeDirectory
Función que elimina el directorio creado en el paso 1 y los archivos del paso 2.
CheckExploit
Comprobar el contenido del archivo C:\ProgramData\exploit.txt para ver si el exploit fue exitoso.
DLLHijacking.exe siempre generará un archivo de registro exploitable.log con el siguiente contenido:
E.g.
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
Comando a ejecutar:
DLLHijacking.exe [DLL_PATH]
si no se pasa ningún argumento, el script usará la DLL test.dll que está almacenada en el recurso de DLLHijacking.exe.
Probado en Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll es una biblioteca dinámica simple que se usará para ver si el exploit tiene éxito.
La DLL creará un archivo C:\ProgramData\exploit.txt con el siguiente contenido:
Este archivo se eliminará una vez que el exploit se complete.
This project is made for educational and ethical testing purposes only. Usage of this software for attacking targets without prior mutual consent is illegal.
It is the end user's responsibility to obey all applicable local, state and federal laws.
Developers assume no liability and are not responsible for any misuse or damage caused by this program.