UAC - User Account Control - Bypass

O que é UAC - User Acount Control?

UAC é uma feature de Mandatory Access Control implementada a partir do Windows Vista e do Windows Server 2008. O UAC previne alteração não autorizada que podem ser feita por aplicativo instalado por um usuário sem direitos administrativos. 

Quando um usuário comum, ou seja, que não pertece ao grupo local de administradores, tenta instalar um aplicativo na máquina, um prompt solicita as credenciais de administrador para realizar a ação. 

Quando o usuário pertence ao grupo local de administrador, um pop-up com alerta é exibido solicitando o consentimento para realizar a ação. É esse alerta que um pentester ou atacante precisa "bypassar" para executar um aplicativo malicioso na máquina alvo. 

Bypass UAC com UACME

A primeira etapa para explorar o UAC é identificar uma vulnerabilidade na máquina-alvo. Essa vulnerabilidade nos dá o acesso inicial a máquina mas para fazer a instalação de um aplicativo malicioso e é necessário fazer o bypass do UAC para a instalação ter sucesso. 

A exploração do UAC é feita então na etapa de pós-exploração de um pentest ou ataque real. 

No laboratório, a aplicação vulnerável é o HTTP File Server Rejetto na porta 80/tcp.


O Metasploit tem um módulo para explorar essa aplicação /exploit/windows/http/rejetto_hfs_exec


Uma sessão do meterpreter é iniciada na máquina-alvo e o usuário dessa sessão é admin que pertence ao grupo local de administradores. 


Usuário admin no grupo local de administradores 


A ferramenta UACME possui exploits para fazer o bypass do UAC. De acordo com a versão do windows que está sendo explorado, é possível escolher o payload para o teste/ataque. 

No caso dessa demostração, será usado o payload Akagi no tipo/key 23 que executa DLL Hijack. 

Aqui vale uma explicação melhor: cada payload disponível pelo UACME tem uma key/tipo que representa uma vulnerabilidade (corrigida ou não) da versão do windows. No caso da key 23, é a exploração da vulnerabilidade conhecida como DLL Hijack e na versão Windows 7, essa vulnerabilidade não está corrigida. 




UAC Bypass to Reverse Shell 

Continuando a exploração, uma shell reversa será instalada na máquina-alvo, como essa é uma fase de pós-exploração, ou seja, é a etapa onde já temos o acesso na máquina-alvo e agora vamos instalar um backdoor para manter o acesso. 

Primeiro é necessário criar o backdoor com o msfvenom 


Depois habilitar o listening com o multi/handler do Metasploit 



Voltando a sessão aberta com a máquina-alvo, o upload dos arquivos backdoor.exe (shell-reversa) e o exploit Akagi64.exe será feito para o diretório Temp do alvo. 


O Bypass do UAC é necessário para executar com sucesso o backdoor e estabelecer conexão com a máquina-atacante, além de fazer a elevação de privilégio dessa sessão. 

Para executar o bypass o comando abaixo é executado: 

.\Akagi64.exe 23 C:\\Temp\backdoor.exe


A conexão com a máquina-atacante é estabelecida, confirmando que o bypass do UAC está completo. 


Os privilégios da sessão para o usuário admin foram elevados, conforme mostra o comando abaixo. 



OS Credentials Dump

A partir da sessão com privilégio elevado, a próxima etapa é buscar novas credenciais de acesso para fazer movimentação lateral. 


Dump hashes

A partir da captura dos hashes, o pentester pode usar o hash das credenciais admin e administrator para obter acesso em outras máquinas da rede.                                                   


Essa etapa conclui a demostração de como é possível elevar privilégio fazendo o bypass do mecanismo UAC - User Account Control do Windows. 


Referências:

[+] Documentação da Microsoft sobre o UAC

https://docs.microsoft.com/pt-br/windows/security/identity-protection/user-account-control/how-user-account-control-works

[+] Ferramenta UACME

https://github.com/hfiref0x/UACME

[+] Mitre Att&ck sobre OS Credentials Dump

https://attack.mitre.org/techniques/T1003/001/

Comentários

Postagens mais visitadas