Privilege Escalation — técnicas comuns e detecção em Linux e Windows
Privilege escalation (privesc) é o processo de um atacante — já com acesso limitado — obter permissões mais altas (root, SYSTEM, Domain Admin). Entender as técnicas é essencial para defender o sistema.
Contexto: exemplos abaixo são para ambientes de laboratório autorizados, como máquinas CTF ou pentests com escopo definido.
Linux — vetores comuns
SUID mal configurado
Binários com bit SUID rodam como root, independente do usuário que os executa:
# Enumerar SUID
find / -perm -4000 -type f 2>/dev/null
# Exemplo: /usr/bin/find com SUID (lab)
/usr/bin/find . -exec /bin/sh -p \; -quit
# -p mantém o EUID=0 — escalada imediata
Sudo misconfiguration
sudo -l # listar o que o usuário pode rodar como root
# Saída perigosa:
# (ALL) NOPASSWD: /usr/bin/vim
# vim pode abrir um shell:
sudo vim -c ':!/bin/bash'
Cron jobs com caminhos inseguros
cat /etc/crontab
# Se o script rodado como root pertence ao usuário comum
# ou está em diretório gravável — substitua o conteúdo
ls -la /opt/backup.sh # dono: usuario_comum, cron: root
Kernel exploits
Kernel desatualizado pode ter CVEs conhecidos. A detecção é simples:
uname -r # versão do kernel
searchsploit linux kernel 5.4 # buscar CVEs (ferramenta de lab)
Defesa: mantenha kernel atualizado, use unattended-upgrades.
Windows — vetores comuns
AlwaysInstallElevated
Se essa política GPO está ativa, qualquer usuário pode instalar MSI como SYSTEM:
# Checar (como usuário comum)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# Valor 0x1 em ambos = vulnerável
Defesa: desative essa política via GPO.
Serviços com permissão fraca
# Checar ACL de binário de serviço
icacls "C:\Program Files\MeuServico\servico.exe"
# Se usuários comuns têm (W) — podem substituir o binário
Token impersonation / SeImpersonatePrivilege
Contas de serviço frequentemente têm SeImpersonatePrivilege. Com esse token, é possível escalar para SYSTEM usando técnicas como PrintSpoofer (em lab):
Conta de serviço (IIS, SQL Server) → SeImpersonatePrivilege → SYSTEM
Defesa: aplique o princípio do menor privilégio. Contas de serviço nunca devem ter direitos administrativos.
Detecção
Linux:
- auditd: monitorar execve com UID efetivo diferente do real
- /var/log/auth.log: sudo usage, falhas de autenticação
- AIDE/Tripwire: detectar mudanças em binários SUID
Windows:
- Event ID 4672: privilégios especiais atribuídos ao logon
- Event ID 4688: novo processo criado (monitorar argumentos)
- Event ID 7045: novo serviço instalado
- Sysmon: rastrear criação de processos com linha de comando completa
Princípio central de defesa
Mínimo privilégio. Se um processo ou usuário não precisa de root/SYSTEM para funcionar, não dê esse acesso.