
Ceci est un PoC pour contourner l'UAC en utilisant le détournement de DLL et l'abus de la vérification "Trusted Directories".
Ceci est une preuve de concept (PoC) pour contourner UAC en utilisant le détournement de DLL et en abusant de la vérification des « répertoires de confiance ».
Le script Python CsvToHeader.py peut être utilisé pour générer un fichier d'en-tête. Par défaut, il utilise le fichier CSV dll_hijacking_candidates.csv disponible ici : dll_hijacking_candidates.csv.
Le script vérifiera pour chaque exécutable portable (PE) les conditions suivantes :
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c, le script vérifiera si la DLL à détourner se trouve dans la liste des DLL importées de la table 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
Pour générer le fichier d'en-tête, vous pouvez utiliser la commande suivante :
python CsvToHeader.py > dll_hijacking_candidates.h
Les fichiers qui seront utilisés sont DLLHijacking.exe et test.dll.
DLLHijacking.exe est le fichier qui sera utilisé pour générer la liste des PE vulnérables. Il effectuera les étapes suivantes :
CreateFakeDirectory
Fonction qui crée un répertoire dans C:\windows \system32.
Copy Files in the new directory
C:\windows\system32\[TARGET.EXE] vers C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] vers C:\windows \system32\[TARGET.DLL]Trigger
Exécute l'exécutable depuis C:\windows \system32\[TARGET.EXE]
CleanUpFakeDirectory
Fonction qui supprime le répertoire créé à l'étape 1 et les fichiers de l'étape 2.
CheckExploit
Vérifie le contenu du fichier C:\ProgramData\exploit.txt pour voir si l'exploitation a réussi.
DLLHijacking.exe générera toujours un fichier journal exploitable.log avec le contenu suivant :
Ex. :
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
Commande à exécuter :
DLLHijacking.exe [DLL_PATH]
Si aucun argument n'est passé, le script utilisera la DLL test.dll qui est stockée dans la ressource de DLLHijacking.exe.
Testé sur Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll est une bibliothèque dynamique simple qui sera utilisée pour vérifier si l'exploitation réussit.
La DLL créera un fichier C:\ProgramData\exploit.txt avec le contenu suivant :
Ce fichier sera supprimé une fois l'exploitation terminée.
Ce projet est réalisé uniquement à des fins éducatives et de tests éthiques. L'utilisation de ce logiciel pour attaquer des cibles sans consentement mutuel préalable est illégale. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de tout usage abusif ou dommage causé par ce programme.