E-mails são a porta de entrada para ataques de phishing e engenharia social.
🎯 O que é Email Harvesting?
Definição
Email Harvesting é o processo de coletar endereços de e-mail de um determinado domínio ou alvo por meio de fontes públicas e abertas, sem necessidade de acesso não autorizado a sistemas. É uma etapa essencial da fase de reconhecimento (reconnaissance) em qualquer teste de penetração ou avaliação de red team.
A coleta de e-mails é passiva por natureza: você não envia pacotes para o alvo, não acessa sistemas internos e não viola nenhum dado privado. Você apenas agrega informações que estão disponíveis publicamente na internet, seja em motores de busca, redes sociais, registros de domínio, certificados SSL ou bancos de dados de vazamentos.
Porém, os dados coletados podem ser usados de forma maliciosa. Por isso, a prática é ensinada aqui com foco defensivo e educacional, dentro de um contexto de pentest autorizado ou de análise da exposição do seu próprio domínio.
Por que e-mails são valiosos para um atacante?
Um endereço de e-mail corporativo revela muito mais do que apenas um canal de contato:
Padrão de nomenclatura: descobrir joao.silva@empresa.com.br frequentemente significa que maria.costa@empresa.com.br também existe. O atacante pode inferir centenas de endereços válidos a partir de um único.
Nome completo do funcionário: combinado com LinkedIn, revela cargo, departamento e senioridade, informações valiosas para ataques de spear phishing.
Domínio e subdomínios: o mesmo domínio do e-mail pode levar à descoberta de mail.empresa.com.br, vpn.empresa.com.br, intranet.empresa.com.br.
Pertença a vazamentos: se o e-mail aparece em bases como Have I Been Pwned, há chance de a senha associada ainda estar em uso (credential stuffing).
Vetor de phishing: com uma lista de e-mails válidos, um atacante pode montar campanhas de phishing altamente direcionadas.
Informações Coletáveis
Tipo
Utilidade para o atacante
Utilidade para defesa
E-mails
Phishing, engenharia social, credential stuffing
Auditar exposição pública
Padrão de e-mail
Enumerar toda a organização
Restringir publicação em sites
Subdomínios
Mapear infraestrutura
Identificar ativos esquecidos
Hosts / IPs
Identificar dispositivos e serviços
Inventariar superfície de ataque
Nomes de funcionários
Engenharia social direcionada
Conscientizar colaboradores
Portas abertas
Identificar serviços vulneráveis
Fechar portas desnecessárias
Banners de serviço
Versões de software com CVEs conhecidos
Atualizar sistemas expostos
Certificados SSL
Enumeração de subdomínios via CT logs
Auditar certificados emitidos
⚖️ Aspectos Legais e Éticos
🚨 Leia antes de executar qualquer comando
Coletar e-mails de domínios sem autorização pode configurar crime no Brasil. Use sempre em ambientes controlados, com autorização por escrito ou no seu próprio domínio.
Legislação Brasileira Aplicável
Art. 154-A do Código Penal (incluído pela Lei 12.737/2012, “Lei Carolina Dieckmann”):
Invadir dispositivo informático alheio, conectado ou não à rede de computadores,
mediante violação indevida de mecanismo de segurança e com o fim de obter,
adulterar ou destruir dados ou informações [...]:
Pena: detenção, de 3 (três) meses a 1 (um) ano, e multa.
Embora o harvesting de e-mails em si seja passivo, o uso dos dados coletados para envio de phishing, spam ou para invadir sistemas configura crimes adicionais, incluindo estelionato (art. 171 CP), falsa identidade (art. 307 CP) e violação de dados pessoais (LGPD, Lei 13.709/2018, art. 42 a 45).
LGPD (Lei 13.709/2018): endereços de e-mail são dados pessoais. Coletá-los de forma automatizada para fins comerciais ou ilícitos viola a LGPD, sujeitando o infrator a multas de até 2% do faturamento, limitadas a R$ 50 milhões por infração.
Regra de ouro
Pratique sempre no seu próprio domínio ou em domínios para os quais você tem autorização expressa e por escrito. Em laboratório, use domínios de teste como testphp.vulnweb.com, hackerone.com (programa público), ou crie o seu próprio.
🛠️ theHarvester
Ferramenta Principal
theHarvester é a ferramenta mais utilizada para email harvesting em pentests. Já vem instalada no Kali Linux e no Parrot OS. Escrita em Python, é open source e mantida ativamente no GitHub.
flowchart TD
A[Pesquisador define<br/>domínio alvo] --> B[theHarvester]
B --> C1[Motores de Busca<br/>Google, Bing, DuckDuckGo]
B --> C2[Redes Sociais<br/>LinkedIn, Twitter]
B --> C3[CT Logs / Certificados<br/>crtsh, certspotter]
B --> C4[APIs Especializadas<br/>Shodan, Hunter, Netlas]
B --> C5[Bancos de Dados DNS<br/>dnsdumpster, rapiddns]
C1 --> D[Agregação de Resultados]
C2 --> D
C3 --> D
C4 --> D
C5 --> D
D --> E[E-mails coletados]
D --> F[Subdomínios]
D --> G[IPs e Hosts]
D --> H[Nomes de funcionários]
E --> I[Relatório HTML/XML/JSON]
F --> I
G --> I
H --> I
# Substituir SUA_CHAVE pela chave gratuita obtida em hunter.ioCHAVE="SUA_CHAVE_HUNTER_IO"DOMINIO="empresa.com.br"# Buscar todos os e-mails do domíniocurl "https://api.hunter.io/v2/domain-search?domain=${DOMINIO}&api_key=${CHAVE}" \ | python3 -m json.tool# Verificar se um e-mail específico existecurl "https://api.hunter.io/v2/email-verifier?email=joao@${DOMINIO}&api_key=${CHAVE}" \ | python3 -m json.tool# Descobrir padrão de e-mail da organização# A resposta inclui o campo "pattern": "first.last", "{first}last", etc.
Phonebook.cz: Busca Manual
1. Acessar: https://phonebook.cz
2. Selecionar tipo: "Email addresses"
3. Digitar o domínio alvo: empresa.com.br
4. Clicar em Search
5. Resultados listam e-mails encontrados em vazamentos
6. Clicar em "IntelligenceX" para ver em qual vazamento cada e-mail apareceu
🔍 Outras Ferramentas CLI
Ferramenta
Instalação
Comando Principal
Diferencial
Recon-ng
apt install recon-ng
recon-ng -m recon/domains-contacts/whois_pocs
Framework modular; dozens de módulos OSINT
Maltego
maltego.com
Interface gráfica
Visualização de relacionamentos em grafo
Infoga
pip install infoga
infoga --domain empresa.com.br --source all
Coleta info de e-mails específicos
SimplyEmail
GitHub
python3 SimplyEmail.py -all -e empresa.com.br
Foco em e-mails; múltiplas fontes
Emailharvester
pip install emailharvester
emailharvester -d empresa.com.br
Script simples em Python
h8mail
pip install h8mail
h8mail -t email@empresa.com.br
Verifica e-mails em bases de vazamento
GHunt
GitHub
ghunt email analise email@gmail.com
OSINT específico de contas Google/Gmail
Recon-ng: Módulos de E-mail
# Iniciar o Recon-ngrecon-ng# Dentro do Recon-ng:[recon-ng][default] > workspaces create empresa_pentest[recon-ng][empresa_pentest] > db insert domainsdomain (TEXT): empresa.com.br# Usar módulo de coleta de e-mails via Google[recon-ng][empresa_pentest] > modules load recon/domains-contacts/whois_pocs[recon-ng][empresa_pentest][whois_pocs] > run# Usar módulo de e-mails via Bing[recon-ng][empresa_pentest] > modules load recon/domains-contacts/bing_linkedin_cache[recon-ng][empresa_pentest][bing_linkedin_cache] > run# Ver e-mails coletados[recon-ng][empresa_pentest] > show contacts
🔗 Fluxo Completo de Email Harvesting em Pentest
flowchart LR
A[Fase 1<br/>Reconhecimento Passivo] --> B[Fase 2<br/>Coleta de E-mails]
B --> C[Fase 3<br/>Validação]
C --> D[Fase 4<br/>Cruzamento de Dados]
D --> E[Fase 5<br/>Documentação]
A1[Whois<br/>DNS] --> A
A2[OSINT<br/>Frameworks] --> A
B1[theHarvester<br/>-b all] --> B
B2[Hunter.io<br/>API] --> B
B3[Phonebook.cz<br/>Vazamentos] --> B
B4[LinkedIn<br/>Nomes] --> B
C1[Have I Been<br/>Pwned] --> C
C2[Hunter Verify<br/>API] --> C
C3[SMTP VRFY<br/>se permitido] --> C
D1[Padrão de<br/>nomenclatura] --> D
D2[Cargos do<br/>LinkedIn] --> D
D3[Vazamentos<br/>associados] --> D
E1[Relatório<br/>HTML/XML] --> E
E2[Lista de<br/>alvos para<br/>sim. phishing] --> E
🧪 Atividades Práticas
🧪 Atividade 1: Coleta com theHarvester em Domínio Público
Objetivo: Executar o theHarvester contra um domínio público e analisar os resultados.
Alvo sugerido:kali.org (domínio oficial do Kali Linux, pentest-friendly) ou o domínio do seu instituto de ensino.
Passo a passo:
# 1. Coletar usando Google e crtshtheHarvester -d kali.org -l 300 -b google,bing,crtsh,dnsdumpster -f kali_resultado# 2. Abrir relatório HTML no navegadorfirefox kali_resultado.html# 3. Anotar:# - Quantos e-mails foram encontrados?# - Qual o padrão de nomenclatura dos e-mails?# - Quantos subdomínios foram descobertos?# - Algum subdomínio parece ser de desenvolvimento/staging?# 4. Tentar com todas as fontes (mais demorado)theHarvester -d kali.org -l 500 -b all -f kali_completo
Reflexão: Que informações um atacante poderia extrair desses subdomínios? Quais representam maior risco?
🧪 Atividade 2: Verificação em Have I Been Pwned
Objetivo: Verificar se e-mails coletados aparecem em vazamentos de dados conhecidos.
Passo a passo:
# 1. Coletar e-mails do alvotheHarvester -d kali.org -l 200 -b google,crtsh | grep "@" | sort -u > emails.txtcat emails.txt# 2. Verificar manualmente no site# Acessar: https://haveibeenpwned.com# Digitar cada e-mail encontrado# 3. Verificação via API (gratuita para uso pessoal)EMAIL="email@kali.org"curl -s -A "PentestLabIFF/1.0" \ "https://haveibeenpwned.com/api/v3/breachedaccount/${EMAIL}" \ -H "hibp-api-key: SUA_CHAVE_HIBP" \ | python3 -m json.tool# 4. Para cada e-mail vazado, anotar:# - Em qual vazamento apareceu?# - Qual tipo de dado foi exposto (senha, endereço, etc.)?# - Quando ocorreu o vazamento?
Reflexão: Se a senha do vazamento ainda estiver em uso, o que um atacante poderia fazer com ela? O que é “credential stuffing”?
🧪 Atividade 3: Identificar Padrão de E-mail com Hunter.io
Objetivo: Descobrir o padrão de nomenclatura de e-mails de uma organização pública.
Passo a passo:
# 1. Cadastrar-se em hunter.io (gratuito: 25 buscas/mês)# 2. Via interface web:# - Acessar: https://hunter.io/domain-search# - Digitar o domínio: iff.edu.br (ou outro domínio público)# - Analisar o padrão exibido: {first}.{last}@dominio ou {f}{last}@dominio# 3. Via API (após obter chave):CHAVE="SUA_CHAVE_HUNTER"DOMINIO="iff.edu.br"curl -s "https://api.hunter.io/v2/domain-search?domain=${DOMINIO}&api_key=${CHAVE}" \ | python3 -c "import json,sysd = json.load(sys.stdin)['data']print('Padrão:', d.get('pattern','N/A'))print('Total estimado:', d.get('total','N/A'))print()for e in d.get('emails',[])[:10]: print(f\"{e['value']} ({e['type']}) - score: {e.get('confidence','N/A')}\")"# 4. Combinar com theHarvester para validar:theHarvester -d iff.edu.br -l 100 -b google,linkedin -f iff_coleta
Reflexão: Com o padrão descoberto e uma lista de funcionários do LinkedIn, quantos e-mails você poderia enumerar sem coleta adicional?
🛡️ Defesa: Reduzindo a Exposição de E-mails
Perspectiva Defensiva
Entender como atacantes coletam e-mails permite implementar contramedidas eficazes. Abaixo estão as principais técnicas para reduzir a superfície de ataque.
Por que Reduzir a Exposição?
A exposição de e-mails corporativos aumenta diretamente o risco de:
Phishing dirigido (spear phishing): e-mail personalizado com nome, cargo e contexto real do alvo.
Credential stuffing: se o e-mail aparece em um vazamento, a senha pode ser reutilizada em outros sistemas.
BEC (Business Email Compromise): atacante finge ser o CEO ou CFO para solicitar transferências.
Reconhecimento organizacional: mapeamento completo de funcionários e hierarquia.
Medidas de Proteção
Medida
Como Implementar
Eficácia
Não publicar e-mails em texto claro
Usar formulários de contato em vez de mailto:
Alta
Ofuscação de e-mail no site
Substituir @ por [at] ou usar JavaScript para renderizar
Média
SPF, DKIM e DMARC
Configurar registros DNS: evita spoofing do domínio
Alta
Endereços de função
contato@, suporte@ em vez de e-mails pessoais
Alta
Monitorar CT Logs
Usar crt.sh e alertas do certspotter para novos certs
Média
Google Alerts
Alerta para o domínio: detecta novas menções
Baixa/Média
Treinamento de phishing
Campanhas internas simuladas (Gophish, KnowBe4)
Alta
MFA em todos os serviços
E-mail + senha capturada não basta para logar
Muito Alta
Monitorar HIBP
API do HIBP com notificação para o domínio
Alta
Política de e-mails
Proibir uso de e-mail corporativo em fóruns públicos
Média
Configurando SPF, DKIM e DMARC
# Verificar se o domínio já tem SPF configuradodig TXT empresa.com.br | grep "v=spf"# Verificar DMARCdig TXT _dmarc.empresa.com.br# Verificar DKIM (substituir "selector" pelo seletor usado pelo provedor)dig TXT selector._domainkey.empresa.com.br# Exemplo de registro SPF mínimo (só o Google pode enviar em nome do domínio):# v=spf1 include:_spf.google.com ~all# Exemplo de DMARC básico (monitoramento, sem rejeição):# v=DMARC1; p=none; rua=mailto:dmarc@empresa.com.br# DMARC com rejeição total:# v=DMARC1; p=reject; rua=mailto:dmarc@empresa.com.br
Conexão com Engenharia Social
O email harvesting é sempre a etapa anterior ao ataque real. Um atacante que coletou e-mails pode:
Descobrir credenciais vazadas e tentar reutilizá-las
Usar os nomes de funcionários para se passar por colaboradores internos
Identificar alvos de alto valor (CFO, TI, RH) para BEC
Por isso, treinamento de conscientização e simulações de phishing são tão importantes quanto as medidas técnicas de proteção.
🗺️ Mapa Mental: Ecossistema de Email Harvesting
mindmap
root((Email Harvesting))
Fontes Passivas
Motores de Busca
Google
Bing
DuckDuckGo
Redes Sociais
LinkedIn
Twitter
CT Logs
crtsh
certspotter
Wayback Machine
GitHub público
Ferramentas CLI
theHarvester
Kali Linux
Parrot OS
Python pip
Recon-ng
h8mail
GHunt
Ferramentas Web
Hunter.io
Phonebook.cz
Snov.io
IntelligenceX
Validação
Have I Been Pwned
EmailHippo
Hunter Verify
Vetores de Ataque
Phishing
Spear Phishing
BEC
Credential Stuffing
Defesa
SPF DKIM DMARC
Ofuscação
MFA
Treinamento
Monitoramento HIBP
📋 Checklist Prático para Red Team
Use este checklist durante a fase de reconhecimento passivo
[ ] 1. Coletar e-mails com theHarvester (google, bing, crtsh, dnsdumpster, linkedin)
[ ] 2. Salvar resultado em HTML e XML para o relatório
[ ] 3. Verificar subdomínios encontrados: identificar ambientes de dev/staging
[ ] 4. Confirmar padrão de nomenclatura via Hunter.io
[ ] 5. Cruzar e-mails com Phonebook.cz e IntelligenceX
[ ] 6. Verificar e-mails no Have I Been Pwned
[ ] 7. Buscar e-mails em repositórios GitHub públicos (theHarvester -b github-code)
[ ] 8. Documentar todos os e-mails, cargos e departamentos identificados
[ ] 9. Identificar alvos de alto valor (C-level, TI, RH, Financeiro)
[ ] 10. Registrar tudo no relatório de pentest antes de avançar para a próxima fase