Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/chenjj/espoofer
Herramientas de PhishingAnálisis de VulnerabilidadesPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónSeguridad de Correo Electrónico
GitHubchenjj/espoofer

espoofer

Una herramienta de prueba de suplantación de correo electrónico que tiene como objetivo eludir SPF/DKIM/DMARC y falsificar firmas DKIM.🍻

Ver Repositorio
1.7k281hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

espoofer

espoofer es una herramienta de prueba de código abierto para eludir la autenticación SPF, DKIM y DMARC en sistemas de correo electrónico. Ayuda a administradores de servidores de correo y probadores de penetración a verificar si el servidor de correo y el cliente objetivo son vulnerables a ataques de suplantación de correo electrónico o pueden ser utilizados para enviar correos falsificados.


Figura 1. Un caso de nuestros ataques de suplantación en Gmail (Solucionado, Video de demostración)

¿Por qué construir esta herramienta?

La suplantación de correo electrónico es una gran amenaza tanto para individuos como para organizaciones (Brecha de Yahoo, John Podesta). Para abordar este problema, los servicios de correo modernos y los sitios web emplean protocolos de autenticación -- SPF, DKIM y DMARC -- para prevenir la falsificación de correos.

Nuestra investigación más reciente muestra que la implementación de estos protocolos sufre una serie de problemas de seguridad, que pueden ser explotados para eludir las protecciones SPF/DKIM/DMARC. La Figura 1 demuestra uno de nuestros ataques de suplantación para eludir DKIM y DMARC en Gmail. Para más detalles técnicos, consulte nuestra charla en Black Hat USA 2020 (con video de presentación) o el artículo de USENIX Security 2020.

  • Diapositivas de Black Hat USA 2020 (PDF): You have No Idea Who Sent that Email: 18 Attacks on Email Sender Authentication
  • Artículo de USENIX Security 2020 (PDF): Composition Kills: A Case Study of Email Sender Authentication
    • Ganador del Premio al Artículo Distinguido

En este repositorio, resumimos todos los casos de prueba que encontramos y los integramos en esta herramienta para ayudar a administradores y profesionales de seguridad a identificar y localizar rápidamente dichos problemas de seguridad.

Por favor, use la siguiente cita si realiza investigación científica (Haga clic aquí).

Versión 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,
}

Versión 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.

Instalación

  • Descargar esta herramienta
root@kitploit:~
git clone https://github.com/chenjj/espoofer
  • Instalar dependencias
root@kitploit:~
sudo pip3 install -r requirements.txt

Versión de Python: Python 3 (>=3.7).

Uso

espoofer tiene tres modos de trabajo: servidor ('s', modo predeterminado), cliente ('c') y manual ('m'). En modo servidor, espoofer funciona como un servidor de correo para probar la validación en servicios receptores. En modo cliente, espoofer funciona como un cliente de correo para probar la validación en servicios emisores. El modo manual se utiliza para fines de depuración.


Figura 2. Tres tipos de atacantes y sus modos de trabajo

Modo servidor

Para ejecutar espoofer en modo servidor, necesita tener: 1) una dirección IP (1.2.3.4) cuyo puerto de salida 25 no esté bloqueado por el ISP, y 2) un dominio (attack.com).

  1. Configuración del dominio
  • Establecer la clave 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"
  • Establecer el registro SPF para attack.com
root@kitploit:~
attack.com TXT "v=spf1 ip4:1.2.3.4 +all"
  1. Configurar la herramienta en 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
}

Puede listar los case_id de todos los casos de prueba usando la opción -l:

root@kitploit:~
python3 espoofer.py -l
  1. Ejecutar la herramienta para enviar un correo falsificado
root@kitploit:~
python3 espoofer.py

Puede cambiar el case_id en config.py o usar la opción -id en la línea de comandos para probar diferentes casos:

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

Modo cliente

Para ejecutar espoofer en modo cliente, necesita tener una cuenta en los servicios de correo objetivo. Este ataque explota la falla de algunos servicios de correo para realizar una validación suficiente de los correos recibidos de MUAs locales. Por ejemplo, [email protected] intenta hacerse pasar por [email protected].

  1. Configurar la herramienta en 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),  # Servidor emisor SMTP y puerto
		"username": b"[email protected]", # Nombre de usuario y contraseña de su cuenta
		"password": b"su_contraseña_aqui",
	},
}

Puede listar los case_id de todos los casos de prueba usando la opción -l:

root@kitploit:~
python3 espoofer.py -l

Nota: sending_server debe ser la dirección del servidor SMTP emisor, no la dirección del servidor receptor.

  1. Ejecutar la herramienta para enviar un correo falsificado
root@kitploit:~
python3 espoofer.py -m c

Puede cambiar el case_id en config.py y ejecutarlo de nuevo, o puede usar la opción -id en la línea de comandos:

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

Modo manual

Aquí hay un ejemplo del 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 pantalla

  1. Una breve descripción general de los casos de prueba.

Errores encontrados con esta herramienta

  • Video de demostración de bypass de DMARC en Gmail.com, https://youtu.be/xuKZpT0rsd0
  • Video de demostración de bypass de DMARC en Outlook.com, https://youtu.be/IsWgAEbPaK0
  • Video de demostración de bypass de DMARC en Yahoo.com, https://youtu.be/DRepfStOruE
  • Video de demostración de bypass de DMARC en Protonmail.com, https://youtu.be/bh4_SoPniMA
  • CVE-2020-12272, Reporte de error de bypass de OpenDMARC, https://sourceforge.net/p/opendmarc/tickets/237/
  • CVE-2019-20790, Reporte de error de bypass de OpenDMARC y pypolicyd-spf, https://sourceforge.net/p/opendmarc/tickets/235/
  • Reporte de error de bypass de DMARC en Mail.ru en HackerOne, https://hackerone.com/reports/731878

Bienvenido a enviar un pull request para agregar su reporte de error aquí.

Preguntas y respuestas

  1. ¿Cómo sé si el correo ha eludido la autenticación DMARC correctamente?

Puede verificarlo en el encabezado Authentication-results en los encabezados del mensaje sin procesar. Si el encabezado muestra dmarc=pass, significa que el correo ha pasado la autenticación DMARC. Puede ver algunos videos de demostración aquí.

  1. ¿Por qué fallan los correos al enviarse?

Hay varias razones posibles si falla al enviar un correo: 1) su ISP bloquea los correos salientes hacia el puerto 25 para prevenir spam. En este caso, debe solicitar permiso al ISP; 2) la dirección IP está en la lista de spam de los servicios de correo objetivo. En muchos casos, puede resolver el problema aquí: https://www.spamhaus.org/lookup/; 3) algunos servicios de correo verifican si hay un registro PTR para la IP emisora, también puede necesitar configurar el registro PTR para eludir esta verificación; 4) el correo no puede pasar la validación de formato del servicio de correo objetivo, puede intentar un caso de prueba diferente.

  1. ¿Por qué el correo va a la carpeta de spam? ¿Hay alguna manera de evitarlo?

Actualmente, espoofer se enfoca en eludir la autenticación SPF/DKIM/DMARC y no tiene como objetivo eludir el filtro de spam. Pero podría intentar usar una dirección IP emisora de buena reputación, un dominio y un contenido de mensaje benigno para eludir el filtro de spam.

  1. ¿Por qué envié un correo con éxito pero el correo no apareció ni en la bandeja de entrada ni en la carpeta de spam?

En nuestras experiencias anteriores, algunos servicios de correo filtran correos sospechosos de manera silenciosa.

  1. Al probar server_a5/a6, ¿por qué no puedo establecer caracteres especiales como "(" en el dominio?

Necesitará configurar su propio servidor DNS autoritativo, en lugar de usar servicios de alojamiento DNS de terceros, ya que algunos servicios de alojamiento DNS tienen restricciones para configurar caracteres especiales. Ver issue.

Créditos

Bienvenido a agregar más casos de prueba.

Descargar herramienta