Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
espoofer — Uma ferramenta de teste de falsificação de e-mail que visa contornar SPF/DKIM/DMARC e forjar assinaturas DKIM.🍻 | Kitploit
Ferramentas/GitHubGitHub/chenjj/espoofer
Ferramentas de PhishingAnálise de VulnerabilidadesTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoSegurança de Email
GitHubchenjj/espoofer

espoofer

Uma ferramenta de teste de falsificação de e-mail que visa contornar SPF/DKIM/DMARC e forjar assinaturas DKIM.🍻

Ver Repositório
1.7k281há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

espoofer

espoofer é uma ferramenta de teste de código aberto para contornar a autenticação SPF, DKIM e DMARC em sistemas de e-mail. Ela ajuda administradores de servidores de e-mail e testadores de penetração a verificar se o servidor de e-mail de destino e o cliente são vulneráveis a ataques de falsificação de e-mail ou podem ser abusados para enviar e-mails falsificados.


Figura 1. Um caso de nossos ataques de falsificação no Gmail (Corrigido, Vídeo de demonstração)

Por que construir esta ferramenta?

A falsificação de e-mail é uma grande ameaça tanto para indivíduos quanto para organizações (violação do Yahoo, John Podesta). Para resolver esse problema, serviços de e-mail e sites modernos empregam protocolos de autenticação -- SPF, DKIM e DMARC -- para prevenir a falsificação de e-mail.

Nossa pesquisa mais recente mostra que a implementação desses protocolos sofre de várias questões de segurança, que podem ser exploradas para contornar as proteções SPF/DKIM/DMARC. A Figura 1 demonstra um de nossos ataques de falsificação para contornar DKIM e DMARC no Gmail. Para mais detalhes técnicos, consulte nossa palestra no Black Hat USA 2020 (com vídeo da apresentação) ou artigo do USENIX Security 2020.

  • Slides do Black Hat USA 2020 (PDF): You have No Idea Who Sent that Email: 18 Attacks on Email Sender Authentication
  • Artigo do USENIX Security 2020 (PDF): Composition Kills: A Case Study of Email Sender Authentication
    • Vencedor do Prêmio de Artigo Distinto

Neste repositório, resumimos todos os casos de teste que encontramos e os integramos nesta ferramenta para ajudar administradores e profissionais de segurança a identificar e localizar rapidamente tais problemas de segurança.

Por favor, use a seguinte citação se fizer pesquisa científica (Clique em mim).

Versão em Latex:

root@kitploit:~
@inproceedings{chen-email,
author = {Jianjun Chen and Vern Paxson and Jian Jiang},
title = {Composition Kills: A Case Study of Email Sender Authentication},
booktitle = {29th {USENIX} Security Symposium ({USENIX} Security 20)},
year = {2020},
isbn = {978-1-939133-17-5},
pages = {2183--2199},
url = {https://www.usenix.org/conference/usenixsecurity20/presentation/chen-jianjun},
publisher = {{USENIX} Association},
month = aug,
}

Versão em Word:

Jianjun Chen, Vern Paxson, and Jian Jiang. "Composition kills: A case study of email sender authentication." In 29th USENIX Security Symposium (USENIX Security 20), pp. 2183-2199. 2020.

Instalação

  • Baixe esta ferramenta
root@kitploit:~
git clone https://github.com/chenjj/espoofer
  • Instale as dependências
root@kitploit:~
sudo pip3 install -r requirements.txt

Versão do Python: Python 3 (>=3.7).

Uso

O espoofer tem três modos de trabalho: servidor ('s', modo padrão), cliente ('c') e manual ('m'). No modo servidor, o espoofer funciona como um servidor de e-mail para testar a validação em serviços de recebimento. No modo cliente, o espoofer funciona como um cliente de e-mail para testar a validação em serviços de envio. O modo manual é usado para fins de depuração.


Figura 2. Três tipos de atacantes e seus modos de trabalho

Modo servidor

Para executar o espoofer no modo servidor, você precisa ter: 1) um endereço IP (1.2.3.4), cuja porta de saída 25 não seja bloqueada pelo ISP, e 2) um domínio (attack.com).

  1. Configuração do domínio
  • Defina a chave pública DKIM para attack.com
root@kitploit:~
selector._domainkey.attacker.com TXT  "v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNjwdrmp/gcbKLaGQfRZk+LJ6XOWuQXkAOa/lI1En4t4sLuWiKiL6hACqMrsKQ8XfgqN76mmx4CHWn2VqVewFh7QTvshGLywWwrAJZdQ4KTlfR/2EwAlrItndijOfr2tpZRgP0nTY6saktkhQdwrk3U0SZmG7U8L9IPj7ZwPKGvQIDAQAB"
  • Defina o registro SPF para attack.com
root@kitploit:~
attack.com TXT "v=spf1 ip4:1.2.3.4 +all"
  1. Configure a ferramenta no config.py
root@kitploit:~
config ={
	"attacker_site": b"attack.com", # attack.com
	"legitimate_site_address": b"[email protected]", # legitimate.com
	"victim_address": b"[email protected]", # [email protected]
	"case_id": b"server_a1", # server_a1
}

Você pode listar os case_id de todos os casos de teste usando a opção -l:

root@kitploit:~
python3 espoofer.py -l
  1. Execute a ferramenta para enviar um e-mail falsificado
root@kitploit:~
python3 espoofer.py

Você pode alterar o case_id no config.py ou usar a opção -id na linha de comando para testar diferentes casos:

root@kitploit:~
python3 espoofer.py -id server_a1

Modo cliente

Para executar o espoofer no modo cliente, você precisa ter uma conta nos serviços de e-mail de destino. Este ataque explora a falha de alguns serviços de e-mail em realizar validação suficiente de e-mails recebidos de MUAs locais. Por exemplo, [email protected] tenta se passar por [email protected]. 

  1. Configure a ferramenta no config.py
root@kitploit:~
config ={
	"legitimate_site_address": b"[email protected]",  
	"victim_address": b"[email protected]", 
	"case_id": b"client_a1",

	"client_mode": {
		"sending_server": ("smtp.gmail.com", 587),  # IP e porta do servidor de envio SMTP
		"username": b"[email protected]", # Nome de usuário e senha da sua conta
		"password": b"your_passward_here",
	},
}

Você pode listar os case_id de todos os casos de teste usando a opção -l:

root@kitploit:~
python3 espoofer.py -l

Nota: sending_server deve ser o endereço do servidor de envio SMTP, não o endereço do servidor de recebimento.

  1. Execute a ferramenta para enviar um e-mail falsificado
root@kitploit:~
python3 espoofer.py -m c

Você pode alterar o case_id no config.py e executá-lo novamente, ou pode usar a opção -id na linha de comando:

root@kitploit:~
python3 espoofer.py -m c -id client_a1

Modo manual

Aqui está um exemplo do modo manual:

root@kitploit:~
python3 espoofer.py -m m -helo attack.com -mfrom <[email protected]> -rcptto <[email protected]> -data raw_msg_here -ip 127.0.0.1 -port 25

Capturas de tela

  1. Uma breve visão geral dos casos de teste.

Bugs encontrados com esta ferramenta

  • Gmail.com DMARC bypass demo video, https://youtu.be/xuKZpT0rsd0
  • Outlook.com DMARC bypass video, https://youtu.be/IsWgAEbPaK0
  • Yahoo.com DMARC bypass video, https://youtu.be/DRepfStOruE
  • Protonmail.com DMARC bypass video, https://youtu.be/bh4_SoPniMA
  • CVE-2020-12272, OpenDMARC bypass bug report, https://sourceforge.net/p/opendmarc/tickets/237/
  • CVE-2019-20790, OpenDMARC and pypolicyd-spf bypass bug report, https://sourceforge.net/p/opendmarc/tickets/235/
  • Mail.ru DMARC bypass bug report on HackerOne, https://hackerone.com/reports/731878

Sinta-se à vontade para enviar um pull request para adicionar seu relatório de bug aqui.

Perguntas e Respostas

  1. Como saber se o e-mail conseguiu contornar a autenticação DMARC com sucesso?

Você pode verificar no cabeçalho Authentication-results nos cabeçalhos brutos da mensagem. Se o cabeçalho mostrar dmarc=pass, significa que o e-mail passou na autenticação DMARC. Você pode conferir alguns vídeos de demonstração aqui.

  1. Por que os e-mails falham ao serem enviados?

Existem várias razões possíveis se você falhar ao enviar um e-mail: 1) seu ISP bloqueia e-mails de saída na porta 25 para prevenir spam. Nesse caso, você precisa pedir permissão ao ISP; 2) o endereço IP está na lista de spam dos serviços de e-mail de destino. Em muitos casos, você pode resolver o problema em https://www.spamhaus.org/lookup/; 3) alguns serviços de e-mail verificam se há um registro PTR para o IP de envio; talvez você também precise definir o registro PTR para contornar essa verificação; 4) o e-mail não consegue passar na validação de formato do serviço de e-mail de destino; talvez você queira tentar um caso de teste diferente.

  1. Por que o e-mail vai para a pasta de spam? Alguma maneira de evitar isso?

Atualmente, o espoofer foca em contornar a autenticação SPF/DKIM/DMARC e não visa contornar filtros de spam. Mas você pode tentar usar um endereço IP de envio confiável, domínio e conteúdo de mensagem benigno para contornar o filtro de spam.

  1. Por que envio um e-mail com sucesso, mas o e-mail não aparece na caixa de entrada nem na pasta de spam?

Em nossas experiências anteriores, alguns serviços de e-mail filtram e-mails suspeitos silenciosamente.

  1. Ao testar server_a5/a6, por que não consigo definir caracteres especiais como "(" no domínio?

Você precisará configurar seu próprio servidor DNS autoritativo, em vez de usar serviços de hospedagem DNS de terceiros, pois alguns serviços de hospedagem DNS têm restrições para configurar caracteres especiais. Veja issue.

Créditos

Sinta-se à vontade para adicionar mais casos de teste.

Baixar ferramenta