
Script Bash qui audite SPF, DKIM, DMARC, DNSSEC, MTA-STS et l'hygiène DNS afin d'évaluer l'exposition d'un domaine à l'usurpation d'e-mail et au phishing.

Inspiré de spoofcheck.
Le Vérificateur d'authentification de messagerie vérifie SPF, DKIM, DMARC, DNSSEC, MTA-STS et le contournement du domaine racine afin d'évaluer le niveau de protection d'un domaine contre l'usurpation d'identité et l'hameçonnage.
Fonctionnalités :
pct, adresses de rapport (y compris l'autorisation de rapport externe)-S : relais ouvert, smuggling, NTLM, surface AUTHbash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
Plusieurs domaines peuvent être passés en une seule fois ; chacun est rapporté dans son propre en-tête encadré et les vérifications s'exécutent l'un après l'autre. La bannière est affichée une fois, la carte de cible une fois par domaine :
│ MAIL AUTHENTICATION CHECKER v1.1
│ The existence of a security record does not mean
│ it is actually implemented
│
╔══════════════════════════════════════════════════════════════════════╗
║ target example.com ║
║ resolver 8.8.8.8 2026-11-13T00:56:14Z ║
╚══════════════════════════════════════════════════════════════════════╝
La bannière et la carte partagent une même largeur, de sorte que la version se trouve au-dessus du bord droit de la carte ; les deux s'élargissent lorsqu'un domaine est plus long que les 72 colonnes par défaut, et la même largeur est utilisée pour chaque domaine de l'exécution afin que les encadrés soient alignés.
Les options peuvent apparaître avant, entre ou après les domaines :
-s SELECTOR sélecteur DKIM supplémentaire à essayer (répétable)-r LABEL nom de locataire Microsoft 365 à tester (par défaut : premier label de chaque domaine)-d SERVER résolveur DNS à interroger (par défaut : 8.8.8.8, ou $DNS_SERVER)-v afficher les enregistrements DNS bruts et les détails-q n'afficher que les avertissements et les échecs-S exécuter également les sondes SMTP intrusives (relais ouvert, smuggling, NTLM, AUTH) ; nécessite le port sortant 25/587 et prend une minute ou plus par hôte MXCode de sortie : 0 aucune vérification en échec, 1 au moins une vérification en échec (dans n'importe quel domaine), 2 erreur d'utilisation.
Par défaut, le rapport est regroupé en sections AUTHENTICATION, DNS HYGIENE, MAIL DELIVERY, TRANSPORT SECURITY et ADDITIONAL, avec les enregistrements affichés en gris sous chaque vérification.
Chaque ligne est un tableau fixe à trois colonnes : le statut, un nom de vérification court (au plus douze caractères, par ex. DKIM, Wildcard, Root domain), et la description. Les qualificatifs propres à chaque vérification, tels que le sélecteur DKIM, l'hôte MX ou l'include SPF, sont ajoutés à la description entre parenthèses, afin que les colonnes soient alignées dans toutes les sections :
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
La sévérité suit l'effet sur l'usurpation, pas seulement l'enregistrement : une politique SPF qui se termine par ~all est OK lorsque DMARC est p=reject ou p=quarantine (DMARC compense le softfail) et FAIL lorsque DMARC est p=none ou absent, car alors rien ne rejette l'expéditeur non autorisé. Un -all strict reste OK même avec p=none ; cette exposition est signalée sur la ligne DMARC.
include:sendgrid.net (ou un include:uXXXXXXX.wl.sendgrid.net par compte) autorise les plages d'IP partagées de SendGrid à envoyer pour le domaine. SPF est évalué par rapport à l'expéditeur d'enveloppe, donc un attaquant envoyant via son propre compte SendGrid passe toujours SPF alors que le From visible est le vôtre ; seul DMARC empêche ce courrier d'être délivré. La vérification suit les includes SPF imbriqués et signale :
FAIL lorsque SendGrid ou Mandrill est inclus et qu'il n'y a pas d'enregistrement DMARC ou que la politique est p=none : un From usurpé est délivréWARN lorsque la politique est seulement p=quarantine : le courrier usurpé atterrit dans le spamOK lorsque la politique est p=rejectLa liste des plateformes partagées se trouve dans SPF_SHARED_PROVIDERS ; n'ajoutez que des fournisseurs qui ne vérifient pas le domaine From pour chaque client.
Les deux enregistrements ci-dessous ont été ralentis pour améliorer la lisibilité ; en réalité, l'exécution a pris moins d'une seconde.


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
Exécutez le script depuis WSL, et non depuis PowerShell, et installez d'abord dig :
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
Le dépôt inclut un fichier .gitattributes qui force les fins de ligne LF pour les *.sh.
Si vous l'avez cloné avant que ce fichier n'existe, réextrayez le script une fois afin qu'il
ne contienne plus de fins de ligne CRLF Windows (qui font échouer bash avec $'\r': command not found) :
git checkout -- mailAuthCheck.sh
Mail Authentication Checker est sous licence CC BY-NC-SA 4.0
CC-BY-NC-SA This license requires that reusers give credit to the creator.
It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only.
If others modify or adapt the material, they must license the modified material under identical terms.
- Credit must be given to you, the creator.
- Only noncommercial use of your work is permitted.
- Adaptations must be shared under the same terms.