
Esta é uma PoC para contornar o UAC usando DLL hijacking e abusando da verificação de 'Trusted Directories'.
Esta é uma PoC para bypass de UAC usando sequestro de DLL e abusando da verificação de "Diretórios Confiáveis".
O script Python CsvToHeader.py pode ser usado para gerar um arquivo de cabeçalho. Por padrão, usará o arquivo CSV dll_hijacking_candidates.csv que pode ser encontrado aqui: dll_hijacking_candidates.csv.
O script verificará para cada executável portátil (PE) as seguintes condições:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c, o script verificará se a DLL a ser sequestrada está na lista de DLLs importadas da tabela PE.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader pode ser usado para gerar um arquivo de cabeçalho a partir de um CSV.
optional arguments:
-h, --help show this help message and exit
-f [DLL_PATH] Caminho do csv a ser convertido (padrão="dll_hijacking_candidates.csv")
-c Habilita importação de DLL no PE (padrão=False)
-v, --version Show program's version number and exit
Para gerar o arquivo de cabeçalho, você pode usar o seguinte comando:
python CsvToHeader.py > dll_hijacking_candidates.h
Os arquivos que serão usados são DLLHijacking.exe e test.dll.
DLLHijacking.exe é o arquivo que será usado para gerar a lista de PEs vulneráveis. Ele executará as seguintes etapas:
CreateFakeDirectory
Função que cria um diretório em C:\windows \system32.
Copiar arquivos para o novo diretório
C:\windows\system32\[TARGET.EXE] para C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] para C:\windows \system32\[TARGET.DLL]Acionar (Trigger)
Executar o executável a partir de C:\windows \system32\[TARGET.EXE]
CleanUpFakeDirectory
Função que exclui o diretório criado na etapa 1 e os arquivos da etapa 2.
CheckExploit
Verificar o conteúdo do arquivo C:\ProgramData\exploit.txt para ver se o exploit foi bem-sucedido.
DLLHijacking.exe sempre gerará um arquivo de log exploitable.log com o seguinte conteúdo:
Ex.:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
Comando para executar:
DLLHijacking.exe [DLL_PATH]
se nenhum argumento for passado, o script usará a DLL test.dll que está armazenada no recurso de DLLHijacking.exe.
Testado no Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll é uma biblioteca dinâmica simples que será usada para verificar se o exploit foi bem-sucedido.
A DLL criará um arquivo C:\ProgramData\exploit.txt com o seguinte conteúdo:
Este arquivo será excluído quando o exploit estiver completo.
Este projeto é feito apenas para fins educacionais e de teste ético. O uso deste software para atacar alvos sem consentimento mútuo prévio é ilegal.
É de responsabilidade do usuário final obedecer a todas as leis locais, estaduais e federais aplicáveis.
Os desenvolvedores não assumem nenhuma responsabilidade e não se responsabilizam por qualquer uso indevido ou dano causado por este programa.