
Questa è una PoC per bypassare UAC utilizzando DLL hijacking e abusando della verifica delle "Trusted Directories".
Questa è una PoC per bypassare UAC utilizzando DLL hijacking e abusando della verifica delle "Directory attendibili".
Lo script Python CsvToHeader.py può essere utilizzato per generare un file header. Di default utilizzerà il file CSV dll_hijacking_candidates.csv che può essere trovato qui: dll_hijacking_candidates.csv.
Lo script controllerà per ogni eseguibile portabile (PE) le seguenti condizioni:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c, lo script controllerà se la DLL da hijackare è nella lista delle DLL importate dalla tabella PE.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader può essere utilizzato per generare un file header da un CSV.
optional arguments:
-h, --help show this help message and exit
-f [DLL_PATH] Percorso del csv da convertire (default="dll_hijacking_candidates.csv")
-c Abilita import dll nel PE (default=False)
-v, --version Show program's version number and exit
Per generare il file header puoi usare il seguente comando:
python CsvToHeader.py > dll_hijacking_candidates.h
I file che verranno utilizzati sono DLLHijacking.exe e test.dll.
DLLHijacking.exe è il file che verrà utilizzato per generare la lista dei PE vulnerabili. Eseguirà i seguenti passaggi:
CreateFakeDirectory
Funzione che crea una directory in C:\windows \system32.
Copia i file nella nuova directory
C:\windows\system32\[TARGET.EXE] a C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] a C:\windows \system32\[TARGET.DLL]Trigger
Esegue l'eseguibile da C:\windows \system32\[TARGET.EXE]
CleanUpFakeDirectory
Funzione che elimina la directory creata al passo 1 e i file del passo 2.
CheckExploit
Controlla il contenuto del file C:\ProgramData\exploit.txt per vedere se l'exploit ha avuto successo.
DLLHijacking.exe genererà sempre un file di log exploitable.log con il seguente contenuto:
E.g.
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
Comando da eseguire:
DLLHijacking.exe [DLL_PATH]
Se non viene passato alcun argomento, lo script utilizzerà la DLL test.dll che è memorizzata nella risorsa di DLLHijacking.exe.
Testato su Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll è una semplice libreria dinamica che verrà utilizzata per vedere se l'exploit ha successo.
La DLL creerà un file C:\ProgramData\exploit.txt con il seguente contenuto:
Questo file verrà eliminato una volta completato l'exploit.
Questo progetto è realizzato esclusivamente a scopo educativo e di test etico. L'utilizzo di questo software per attaccare target senza il preventivo consenso reciproco è illegale.
È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili.
Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma.