Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
espoofer — Un outil de test d'usurpation d'e-mails qui vise à contourner SPF/DKIM/DMARC et à forger des signatures DKIM.🍻 | Kitploit
Outils/GitHubGitHub/chenjj/espoofer
Outils de PhishingAnalyse des VulnérabilitésTests d'IntrusionArticles et RechercheApprentissage et ÉducationSécurité des Emails
GitHubchenjj/espoofer

espoofer

Un outil de test d'usurpation d'e-mails qui vise à contourner SPF/DKIM/DMARC et à forger des signatures DKIM.🍻

Voir le dépôt
1.7k281il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

espoofer

espoofer est un outil de test open source pour contourner l'authentification SPF, DKIM et DMARC dans les systèmes de messagerie. Il aide les administrateurs de serveurs de messagerie et les testeurs d'intrusion à vérifier si le serveur de messagerie cible et le client sont vulnérables aux attaques d'usurpation d'e-mail ou peuvent être abusés pour envoyer des e-mails d'usurpation.


Figure 1. Un cas de nos attaques d'usurpation sur Gmail (Corrigé, Vidéo de démonstration)

Pourquoi construire cet outil ?

L'usurpation d'e-mail est une grande menace tant pour les particuliers que pour les organisations (Violation Yahoo, John Podesta). Pour résoudre ce problème, les services de messagerie modernes et les sites Web utilisent des protocoles d'authentification -- SPF, DKIM et DMARC -- pour empêcher la falsification des e-mails.

Nos dernières recherches montrent que la mise en œuvre de ces protocoles souffre d'un certain nombre de problèmes de sécurité, qui peuvent être exploités pour contourner les protections SPF/DKIM/DMARC. La figure 1 illustre l'une de nos attaques d'usurpation contournant DKIM et DMARC dans Gmail. Pour plus de détails techniques, veuillez consulter notre présentation Black Hat USA 2020 (avec vidéo de présentation) ou l'article USENIX Security 2020.

  • Diapositives Black Hat USA 2020 (PDF) : You have No Idea Who Sent that Email: 18 Attacks on Email Sender Authentication
  • Article USENIX Security 2020 (PDF) : Composition Kills: A Case Study of Email Sender Authentication
    • Prix du meilleur article distingué

Dans ce dépôt, nous résumons tous les cas de test que nous avons trouvés et les intégrons dans cet outil pour aider les administrateurs et les professionnels de la sécurité à identifier et localiser rapidement ces problèmes de sécurité.

Veuillez utiliser la citation suivante si vous faites de la recherche scientifique (Cliquez-moi).

Version 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,
}

Version 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.

Installation

  • Télécharger cet outil
root@kitploit:~
git clone https://github.com/chenjj/espoofer
  • Installer les dépendances
root@kitploit:~
sudo pip3 install -r requirements.txt

Version Python : Python 3 (>=3.7).

Utilisation

espoofer a trois modes de travail : serveur ('s', mode par défaut), client ('c') et manuel ('m'). En mode serveur, espoofer fonctionne comme un serveur de messagerie pour tester la validation dans les services de réception. En mode client, espoofer fonctionne comme un client de messagerie pour tester la validation dans les services d'envoi. Le mode manuel est utilisé à des fins de débogage.


Figure 2. Trois types d'attaquants et leurs modes de travail

Mode serveur

Pour exécuter espoofer en mode serveur, vous devez avoir : 1) une adresse IP (1.2.3.4) dont le port sortant 25 n'est pas bloqué par le FAI, et 2) un domaine (attack.com).

  1. Configuration du domaine
  • Définir la clé publique DKIM pour attack.com
root@kitploit:~
selector._domainkey.attacker.com TXT  "v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNjwdrmp/gcbKLaGQfRZk+LJ6XOWuQXkAOa/lI1En4t4sLuWiKiL6hACqMrsKQ8XfgqN76mmx4CHWn2VqVewFh7QTvshGLywWwrAJZdQ4KTlfR/2EwAlrItndijOfr2tpZRgP0nTY6saktkhQdwrk3U0SZmG7U8L9IPj7ZwPKGvQIDAQAB"
  • Définir l'enregistrement SPF pour attack.com
root@kitploit:~
attack.com TXT "v=spf1 ip4:1.2.3.4 +all"
  1. Configurer l'outil dans 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
}

Vous pouvez lister l'ID de cas (case_id) de tous les cas de test en utilisant l'option -l :

root@kitploit:~
python3 espoofer.py -l
  1. Exécuter l'outil pour envoyer un e-mail d'usurpation
root@kitploit:~
python3 espoofer.py

Vous pouvez changer case_id dans config.py ou utiliser l'option -id dans la ligne de commande pour tester différents cas :

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

Mode client

Pour exécuter espoofer en mode client, vous devez avoir un compte sur les services de messagerie cibles. Cette attaque exploite l'absence de validation suffisante par certains services de messagerie des e-mails reçus des MUAs locaux. Par exemple, [email protected] tente d'usurper [email protected].

  1. Configurer l'outil dans 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),  # Adresse et port du serveur SMTP d'envoi
		"username": b"[email protected]", # Nom d'utilisateur et mot de passe de votre compte
		"password": b"your_passward_here",
	},
}

Vous pouvez lister l'ID de cas (case_id) de tous les cas de test en utilisant l'option -l :

root@kitploit:~
python3 espoofer.py -l

Remarque : sending_server doit être l'adresse du serveur SMTP d'envoi, pas l'adresse du serveur de réception.

  1. Exécuter l'outil pour envoyer un e-mail d'usurpation
root@kitploit:~
python3 espoofer.py -m c

Vous pouvez changer case_id dans config.py et l'exécuter à nouveau, ou utiliser l'option -id dans la ligne de commande :

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

Mode manuel

Voici un exemple de mode manuel :

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

Captures d'écran

  1. Un aperçu rapide des cas de test.

Bugs découverts avec cet outil

  • Vidéo de démonstration du contournement DMARC Gmail.com, https://youtu.be/xuKZpT0rsd0
  • Vidéo de contournement DMARC Outlook.com, https://youtu.be/IsWgAEbPaK0
  • Vidéo de contournement DMARC Yahoo.com, https://youtu.be/DRepfStOruE
  • Vidéo de contournement DMARC Protonmail.com, https://youtu.be/bh4_SoPniMA
  • CVE-2020-12272, Rapport de bug contournement OpenDMARC, https://sourceforge.net/p/opendmarc/tickets/237/
  • CVE-2019-20790, Rapport de bug contournement OpenDMARC et pypolicyd-spf, https://sourceforge.net/p/opendmarc/tickets/235/
  • Rapport de bug contournement DMARC Mail.ru sur HackerOne, https://hackerone.com/reports/731878

N'hésitez pas à soumettre une pull request pour déposer votre rapport de bug ici.

Questions & Réponses

  1. Comment savoir si l'e-mail a contourné avec succès l'authentification DMARC ?

Vous pouvez le vérifier dans l'en-tête "Authentication-results" dans les en-têtes bruts du message. Si l'en-tête affiche dmarc=pass, cela signifie que l'e-mail a passé l'authentification DMARC. Vous pouvez consulter quelques vidéos de démonstration ici.

  1. Pourquoi les e-mails ne parviennent-ils pas à être envoyés ?

Il y a plusieurs raisons possibles si vous échouez à envoyer un e-mail : 1) votre FAI bloque les e-mails sortants sur le port 25 pour empêcher le spam. Dans ce cas, vous devez demander l'autorisation au FAI ; 2) l'adresse IP est sur la liste de spam des services de messagerie cibles. Dans de nombreux cas, vous pouvez résoudre le problème ici, https://www.spamhaus.org/lookup/ ; 3) certains services de messagerie vérifient s'il existe un enregistrement PTR pour l'IP d'envoi, vous devrez peut-être également définir l'enregistrement PTR pour contourner cette vérification ; 4) l'e-mail ne peut pas passer la validation de format du service de messagerie cible, vous voudrez peut-être essayer un cas de test différent.

  1. Pourquoi l'e-mail va-t-il dans le dossier spam ? Y a-t-il un moyen d'éviter cela ?

Actuellement, espoofer se concentre sur le contournement de l'authentification SPF/DKIM/DMARC et ne vise pas le contournement du filtre anti-spam. Mais vous pouvez essayer d'utiliser une adresse IP d'envoi réputée, un domaine et un contenu de message bénin pour contourner le filtre anti-spam.

  1. Pourquoi j'ai envoyé un e-mail avec succès mais l'e-mail n'apparaît ni dans la boîte de réception ni dans le dossier spam ?

Selon nos expériences antérieures, certains services de messagerie filtrent silencieusement les e-mails suspects.

  1. Lors du test de server_a5/a6, pourquoi ne puis-je pas définir des caractères spéciaux comme "(" dans le domaine ?

Vous devrez configurer votre propre serveur DNS autoritaire, plutôt que d'utiliser des services d'hébergement DNS tiers, car certains services d'hébergement DNS imposent des restrictions sur la définition de caractères spéciaux. Voir problème.

Crédits

N'hésitez pas à ajouter d'autres cas de test.

Télécharger l’outil