Material introdutório de exploits e escalação de privilégios
Uma aula sobre exploits e escalação de privilégios
📖 Introdução
Com milhares de vulnerabilidades documentadas ao longo dos anos, é essencial ter fontes confiáveis para pesquisa e exploração em ambientes de CTF e auditorias de segurança.
Dois recursos fundamentais para pentesters e estudantes de segurança são:
- ExploitDB ajuda no primeiro acesso → explorar vulnerabilidades conhecidas e ganhar entrada no sistema.
- GTFOBins ajuda na escalada de privilégios → usar binários do próprio sistema para obter controle total.
Além disso, vale lembrar do conceito de CVE (Common Vulnerabilities and Exposures), que fornece um identificador único para vulnerabilidades conhecidas pela comunidade.
🗂️ ExploitDB
ExploitDB é um banco de dados de exploits mantido pela Offensive Security, contendo milhares de vulnerabilidades e provas de conceito.
Casos de uso
- Procurar exploits para serviços e softwares identificados no processo de reconhecimento.
- Encontrar provas de conceito (PoCs) que podem ser adaptadas em um CTF.
- Estudar vulnerabilidades antigas e entender como foram exploradas.
Exemplo prático em CTF
- Início do desafio: executar varredura com Nmap:
nmap -sC -sV -p- <IP>
- Descobreir que a porta 80 está aberta.
- Usar ferramentas como Gobuster ou ffuf para mapear diretórios.
- Identificar a aplicação rodando e procurar vulnerabilidades.
- Buscar no ExploitDB ou Google por versão do serviço ou software:
Exemplo: https://www.exploit-db.com/exploits/46635
- Utilizar o Exploit encontrado para explorar as vulnerabilidades do serviço encontrado.
🔼 GTFOBins
GTFOBins é um repositório de binários Linux que podem ser explorados quando existem más configurações em sistemas operacionais (ex. permissões incorretas no sudo).
Esses binários podem ser abusados para:
- Escalada de privilégios
- Bypass de restrições
- Execução de comandos arbitrários
- Leitura/alteração de arquivos
Exemplo prático em CTF
- Ao encontrar alguma forma de acessar o sistema (ex. através de shell reversa)”, rodar:
sudo -l # Listar os comandos que o usuário pode executar com sudo.
#OU
find / -perm -u=s 2>/dev/null # Procura por arquivos que rodam com permissão elevada
- Encontrar algo como:
(ALL) NOPASSWD: /usr/bin/vim
- Pesquisar no GTFOBins:
Nesse caso: https://gtfobins.github.io/gtfobins/vim/
- Usar a técnica documentada para obter uma shell como root.
📎Searchsploit & Metasploit
Documentações encontradas em:
➡️ Searchsploit
➡️ Metasploit
🔍 Searchsploit
O Searchsploit é uma interface de linha de comando para o ExploitDB, já inclusa no Kali Linux que permite pesquisar localmente por provas de conceito (PoCs) e exploits.
Exemplo de uso
- Procurar exploits para uma versão do WordPress com o seguinte comando:
searchsploit wordpress 5.0
- Exibir detalhes de um exploit:
searchsploit -x 46635 #Onde `46635` é o número da CVE encontrada
Copiar um exploit para a pasta atual:
searchsploit -m 46635
Manter o banco atualizado:
searchsploit -u
💥 Metasploit
O Metasploit é uma plataforma que permite buscar, configurar e executar exploits de forma automatizada, além de integrar payloads e pós-exploração.
Conceitos principais
- Exploits → código que aproveita uma vulnerabilidade.
- Payloads → código executado no alvo após exploração (ex.: reverse shell).
- Auxiliary → módulos de varredura e exploração não intrusiva.
- Post → módulos de pós-exploração (coleta de informações, persistência, etc.).
Exemplo de fluxo prático
- Iniciar o Metasploit:
msfconsole
- Procurar exploit para um serviço:
search vsftpd
- Selecionar o módulo encontrado:
use exploit/unix/ftp/vsftpd_234_backdoor
- Definir o alvo:
set RHOSTS <IP_ALVO>
- Escolher o payload:
set PAYLOAD cmd/unix/interact
- Executar o exploit:
exploit