
Script Bash che verifica SPF, DKIM, DMARC, DNSSEC, MTA-STS e l'igiene DNS per valutare l'esposizione di un dominio a spoofing email e phishing.

Ispirato a spoofcheck.
Mail Authentication Checker verifica SPF, DKIM, DMARC, DNSSEC, MTA-STS e il root domain hack per valutare quanto bene un dominio è protetto contro spoofing e phishing.
Funzionalità:
pct, indirizzi di segnalazione (incl. autorizzazione delle segnalazioni esterne)-S: open relay, smuggling, NTLM, superficie AUTHbash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
È possibile passare più domini contemporaneamente; ciascuno viene riportato nella propria intestazione incorniciata e i controlli vengono eseguiti uno dopo l'altro. Il banner viene stampato una volta, la scheda del target una volta per dominio:
│ 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 ║
╚══════════════════════════════════════════════════════════════════════╝
Il banner e la scheda condividono la stessa larghezza, quindi la versione si trova sopra il bordo destro della scheda; entrambi si allargano quando un dominio è più lungo delle 72 colonne predefinite, e la stessa larghezza viene usata per ogni dominio nell'esecuzione in modo che i riquadri siano allineati.
Le opzioni possono apparire prima, tra o dopo i domini:
-s SELECTOR selettore DKIM aggiuntivo da provare (ripetibile)-r LABEL nome del tenant Microsoft 365 da testare (predefinito: prima etichetta di ogni dominio)-d SERVER resolver DNS da interrogare (predefinito: 8.8.8.8, oppure $DNS_SERVER)-v mostra i record DNS grezzi e i dettagli-q mostra solo avvisi ed errori-S esegue anche le sonde SMTP intrusive (open relay, smuggling, NTLM, AUTH); richiede la porta 25/587 in uscita e impiega un minuto o più per ogni host MXStato di uscita: 0 nessun controllo fallito, 1 almeno un controllo fallito (in qualsiasi dominio), 2 errore di utilizzo.
Per impostazione predefinita il report è raggruppato nelle sezioni AUTHENTICATION, DNS HYGIENE, MAIL DELIVERY, TRANSPORT SECURITY e ADDITIONAL, con i record mostrati in grigio sotto ogni controllo.
Ogni riga è una tabella fissa a tre colonne: stato, un nome breve del controllo (al massimo dodici caratteri, ad es. DKIM, Wildcard, Root domain) e la descrizione. I qualificatori specifici del controllo, come il selettore DKIM, l'host MX o l'include SPF, sono aggiunti alla descrizione tra parentesi, in modo che le colonne siano allineate in tutte le sezioni:
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
La severità segue l'effetto sullo spoofing, non solo il record: una policy SPF che
termina con ~all è OK quando DMARC è p=reject o p=quarantine (DMARC
compensa il softfail) e FAIL quando DMARC è p=none o assente,
perché in quel caso nulla rifiuta il mittente non autorizzato. Un -all rigoroso resta
OK anche con p=none; tale esposizione viene segnalata sulla riga DMARC.
include:sendgrid.net (o un include:uXXXXXXX.wl.sendgrid.net per account)
autorizza gli intervalli IP condivisi di SendGrid a inviare per il dominio. SPF viene valutato
rispetto al mittente dell'envelope, quindi un attaccante che invia tramite il proprio account SendGrid
supera comunque SPF mentre il From visibile è il tuo; solo DMARC tiene
fuori quella mail. Il controllo segue gli include SPF annidati e segnala:
FAIL quando SendGrid o Mandrill sono inclusi e non esiste un record DMARC o la policy è p=none: un From falsificato viene recapitatoWARN quando la policy è solo p=quarantine: la mail falsificata finisce nello spamOK quando la policy è p=rejectL'elenco delle piattaforme condivise si trova in SPF_SHARED_PROVIDERS; aggiungi solo provider
che non verificano il dominio From per ogni cliente.
Entrambe le registrazioni seguenti sono state rallentate per migliorare la leggibilità; in realtà l'esecuzione ha richiesto meno di 1 secondo.


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
Esegui lo script dall'interno di WSL, non da PowerShell, e installa prima dig:
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
Il repository include un file .gitattributes che forza i fine riga LF per *.sh.
Se lo hai clonato prima che quel file esistesse, esegui nuovamente il checkout dello script una volta in modo che non
abbia più terminazioni di riga CRLF di Windows (che fanno fallire bash con $'\r': command not found):
git checkout -- mailAuthCheck.sh
Mail Authentication Checker è distribuito con licenza 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.