Email Harvesting

Coletando Contatos

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

TipoUtilidade para o atacanteUtilidade para defesa
E-mailsPhishing, engenharia social, credential stuffingAuditar exposição pública
Padrão de e-mailEnumerar toda a organizaçãoRestringir publicação em sites
SubdomíniosMapear infraestruturaIdentificar ativos esquecidos
Hosts / IPsIdentificar dispositivos e serviçosInventariar superfície de ataque
Nomes de funcionáriosEngenharia social direcionadaConscientizar colaboradores
Portas abertasIdentificar serviços vulneráveisFechar portas desnecessárias
Banners de serviçoVersões de software com CVEs conhecidosAtualizar sistemas expostos
Certificados SSLEnumeração de subdomínios via CT logsAuditar 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.

🔗 GitHub: laramies/theHarvester 🔗 Kali Linux Tools: theharvester

Como Funciona (Arquitetura Interna)

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

Instalação (caso não esteja no Kali)

# Clonar o repositório
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
 
# Criar ambiente virtual e instalar dependências
python3 -m venv venv
source venv/bin/activate
pip install -r requirements/base.txt
 
# Verificar instalação
python3 theHarvester.py -h

No Kali Linux, a ferramenta já está disponível como theHarvester (sem necessidade de clonar).

Configuração de Chaves de API

Muitas fontes avançadas exigem chave de API. O arquivo de configuração fica em:

# Kali Linux (instalação via apt)
/etc/theHarvester/api-keys.yaml
 
# Instalação manual (git clone)
./api-keys.yaml

Exemplo de configuração do arquivo:

apikeys:
  hunter:
    key: SUA_CHAVE_HUNTER_IO
  shodan:
    key: SUA_CHAVE_SHODAN
  github:
    key: SUA_CHAVE_GITHUB
  securitytrails:
    key: SUA_CHAVE_SECURITYTRAILS
  intelx:
    key: SUA_CHAVE_INTELX
    id: SEU_ID_INTELX
  netlas:
    key: SUA_CHAVE_NETLAS

Parâmetros Completos

ParâmetroDescriçãoExemplo
-dDomínio alvo (obrigatório)-d empresa.com.br
-bFonte de busca (obrigatório)-b google ou -b all
-lLimite de resultados por fonte-l 500
-fSalvar resultado em arquivo (HTML + XML)-f resultado_empresa
-vVerificar hosts via DNS reverso-v
-nRealizar lookup DNS nos hosts descobertos-n
-cRealizar busca de certificado no crtsh-c
-eUsar servidor DNS específico-e 8.8.8.8
-rQuantidade de threads para DNS-r 50
-sIniciar DNS brute force-s
--screenshotCapturar screenshot dos subdomínios encontrados--screenshot ./screenshots

Fontes Disponíveis (2026)

FonteTipo de DadosRequer API
googleE-mails, hosts, subdomíniosNão
bingE-mails, hostsNão
duckduckgoE-mails, hostsNão
braveE-mails, hostsNão
yahooE-mails, hostsNão
linkedinNomes de funcionários, cargosNão
twitterPerfis relacionadosNão
crtshSubdomínios via CT logsNão
certspotterSubdomínios via CT logsNão
dnsdumpsterRegistros DNS, subdomíniosNão
hackertargetSubdomínios, IPsNão
rapiddnsSubdomíniosNão
robtexRegistros DNSNão
urlscanURLs, subdomíniosNão
waybackarchiveURLs históricas, e-mails em páginas antigasNão
commoncrawlE-mails, URLs, subdomíniosNão
otxIPs, domínios (AlienVault OTX)Não
hunterE-mails corporativos verificadosSim
shodanIPs, portas, bannersSim
securityTrailsDNS, subdomínios históricosSim
intelxE-mails em vazamentos, dark webSim
netlasIPs, hosts, certificadosSim
github-codeE-mails em repositórios públicosSim
gitlabE-mails em repositórios GitLabSim
censysHosts, certificados, IPsSim
fullhuntSubdomínios, ativos expostosSim
leakixServiços expostos e vulneráveisSim
zoomeyeDispositivos e serviços expostosSim
criminalipIPs maliciosos, hostsSim
haveibeenpwnedE-mails em vazamentosSim
allTodas as fontes disponíveisVaria

💻 Exemplos Práticos

Coleta Básica (um motor de busca)

# Buscar e-mails e subdomínios via Google
theHarvester -d kali.org -l 200 -b google
 
# Buscar via Bing (menos bloqueio de scrapers)
theHarvester -d empresa.com.br -l 500 -b bing
 
# Buscar via DuckDuckGo
theHarvester -d empresa.com.br -l 300 -b duckduckgo

Coleta em Fontes Múltiplas

# Usar todas as fontes disponíveis (incluindo as sem API)
theHarvester -d empresa.com.br -l 500 -b all
 
# Combinar fontes específicas (separadas por vírgula)
theHarvester -d empresa.com.br -l 500 -b google,bing,crtsh,dnsdumpster,linkedin

Coleta com Verificação de Hosts e Relatório

# Coletar, verificar hosts e salvar resultado
theHarvester -d empresa.com.br -l 500 -b all -f relatorio_empresa -v
 
# Salva dois arquivos:
#   relatorio_empresa.html  (abrível no navegador)
#   relatorio_empresa.xml   (processável por scripts)

Coleta com Subdomínios via CT Logs

# Certificate Transparency Logs revelam subdomínios históricos
theHarvester -d empresa.com.br -b crtsh,certspotter -c
 
# Exemplo de saída esperada:
# [*] Hosts found: 14
# mail.empresa.com.br
# vpn.empresa.com.br
# intranet.empresa.com.br
# dev.empresa.com.br
# staging.empresa.com.br

Coleta com APIs Configuradas

# Com Hunter.io e Shodan configurados no api-keys.yaml
theHarvester -d empresa.com.br -l 500 -b hunter,shodan,securityTrails
 
# Buscar e-mails em repositórios GitHub públicos
theHarvester -d empresa.com.br -b github-code -l 200

Automatizando Coleta em Script

#!/bin/bash
# harvest.sh: coleta e-mails de um domínio e salva com timestamp
 
DOMINIO=$1
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
SAIDA="harvest_${DOMINIO}_${TIMESTAMP}"
 
echo "[*] Iniciando coleta para: $DOMINIO"
theHarvester -d "$DOMINIO" -l 500 -b google,bing,crtsh,dnsdumpster,linkedin,urlscan \
    -f "$SAIDA" -v
 
echo "[*] Resultados salvos em: ${SAIDA}.html e ${SAIDA}.xml"
chmod +x harvest.sh
./harvest.sh exemplo.com.br

🌐 Ferramentas Online Complementares

Ferramentas Web e APIs

Estas ferramentas complementam o theHarvester e podem encontrar e-mails que motores de busca não indexam.

FerramentaURLPlano GratuitoDescrição
Hunter.iohunter.io25 buscas/mêsBusca e verifica e-mails corporativos; infere padrão de nomenclatura
Phonebook.czphonebook.czIlimitadoBusca e-mails, domínios e URLs em vazamentos; integrado ao IntelligenceX
Snov.iosnov.io50 créditos/mêsEncontra e verifica e-mails; extensão para LinkedIn
RocketReachrocketreach.co5 buscas/mêsE-mails e telefones de profissionais
Skrapp.ioskrapp.io150 buscas/mêsE-mails de LinkedIn e sites corporativos
Clearbit Connectclearbit.comLimitadoExtensão Chrome; preenche e-mails no Gmail
Have I Been Pwnedhaveibeenpwned.comIlimitadoVerifica se e-mail está em vazamento; API gratuita
IntelligenceXintelx.ioLimitadoBusca e-mails em dark web, Tor, pastes, Usenet

Hunter.io: Uso Prático via API

# Substituir SUA_CHAVE pela chave gratuita obtida em hunter.io
CHAVE="SUA_CHAVE_HUNTER_IO"
DOMINIO="empresa.com.br"
 
# Buscar todos os e-mails do domínio
curl "https://api.hunter.io/v2/domain-search?domain=${DOMINIO}&api_key=${CHAVE}" \
  | python3 -m json.tool
 
# Verificar se um e-mail específico existe
curl "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

FerramentaInstalaçãoComando PrincipalDiferencial
Recon-ngapt install recon-ngrecon-ng -m recon/domains-contacts/whois_pocsFramework modular; dozens de módulos OSINT
Maltegomaltego.comInterface gráficaVisualização de relacionamentos em grafo
Infogapip install infogainfoga --domain empresa.com.br --source allColeta info de e-mails específicos
SimplyEmailGitHubpython3 SimplyEmail.py -all -e empresa.com.brFoco em e-mails; múltiplas fontes
Emailharvesterpip install emailharvesteremailharvester -d empresa.com.brScript simples em Python
h8mailpip install h8mailh8mail -t email@empresa.com.brVerifica e-mails em bases de vazamento
GHuntGitHubghunt email analise email@gmail.comOSINT específico de contas Google/Gmail

Recon-ng: Módulos de E-mail

# Iniciar o Recon-ng
recon-ng
 
# Dentro do Recon-ng:
[recon-ng][default] > workspaces create empresa_pentest
[recon-ng][empresa_pentest] > db insert domains
domain (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 crtsh
theHarvester -d kali.org -l 300 -b google,bing,crtsh,dnsdumpster -f kali_resultado
 
# 2. Abrir relatório HTML no navegador
firefox 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

Resultado esperado:

[*] Emails found: 3
  contact@kali.org
  devel@kali.org
  ...

[*] Hosts found: 47
  archive-5.kali.org:x.x.x.x
  bugs.kali.org:x.x.x.x
  cdimage.kali.org:x.x.x.x
  git.kali.org:x.x.x.x
  ...

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 alvo
theHarvester -d kali.org -l 200 -b google,crtsh | grep "@" | sort -u > emails.txt
cat 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,sys
d = 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:

  1. Phishing dirigido (spear phishing): e-mail personalizado com nome, cargo e contexto real do alvo.
  2. Credential stuffing: se o e-mail aparece em um vazamento, a senha pode ser reutilizada em outros sistemas.
  3. BEC (Business Email Compromise): atacante finge ser o CEO ou CFO para solicitar transferências.
  4. Reconhecimento organizacional: mapeamento completo de funcionários e hierarquia.

Medidas de Proteção

MedidaComo ImplementarEficácia
Não publicar e-mails em texto claroUsar formulários de contato em vez de mailto:Alta
Ofuscação de e-mail no siteSubstituir @ por [at] ou usar JavaScript para renderizarMédia
SPF, DKIM e DMARCConfigurar registros DNS: evita spoofing do domínioAlta
Endereços de funçãocontato@, suporte@ em vez de e-mails pessoaisAlta
Monitorar CT LogsUsar crt.sh e alertas do certspotter para novos certsMédia
Google AlertsAlerta para o domínio: detecta novas mençõesBaixa/Média
Treinamento de phishingCampanhas internas simuladas (Gophish, KnowBe4)Alta
MFA em todos os serviçosE-mail + senha capturada não basta para logarMuito Alta
Monitorar HIBPAPI do HIBP com notificação para o domínioAlta
Política de e-mailsProibir uso de e-mail corporativo em fóruns públicosMédia

Configurando SPF, DKIM e DMARC

# Verificar se o domínio já tem SPF configurado
dig TXT empresa.com.br | grep "v=spf"
 
# Verificar DMARC
dig 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:

  1. Montar uma campanha de phishing: ver Engenharia social
  2. Descobrir credenciais vazadas e tentar reutilizá-las
  3. Usar os nomes de funcionários para se passar por colaboradores internos
  4. 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

📚 Fontes (2026)