
Bash-Skript, das SPF, DKIM, DMARC, DNSSEC, MTA-STS und DNS-Hygiene prüft, um die Anfälligkeit einer Domain für E-Mail-Spoofing und Phishing zu bewerten.

Inspiriert von spoofcheck.
Der Mail-Authentifizierungsprüfer verifiziert SPF, DKIM, DMARC, DNSSEC, MTA-STS und den Root-Domain-Hack, um zu bewerten, wie gut eine Domain gegen Spoofing und Phishing geschützt ist.
Funktionen:
pct, Berichtsadressen (inkl. Autorisierung externer Berichte)-S: Open Relay, Smuggling, NTLM, AUTH-Angriffsflächebash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
Mehrere Domains können gleichzeitig übergeben werden; jede wird in einem eigenen umrahmten Header gemeldet und die Prüfungen laufen nacheinander für jede Domain. Das Banner wird einmal ausgegeben, die Zielkarte einmal pro Domain:
│ 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 ║
╚══════════════════════════════════════════════════════════════════════╝
Banner und Karte teilen sich eine Breite, sodass die Version über dem rechten Rand der Karte liegt; beide werden breiter, wenn eine Domain länger als die Standardbreite von 72 Spalten ist, und dieselbe Breite wird für jede Domain im Lauf verwendet, damit die Boxen ausgerichtet sind.
Optionen können vor, zwischen oder nach den Domains stehen:
-s SELECTOR zusätzlicher DKIM-Selektor zum Ausprobieren (wiederholbar)-r LABEL Microsoft 365-Mandantenname zum Testen (Standard: erstes Label jeder Domain)-d SERVER DNS-Resolver zum Abfragen (Standard: 8.8.8.8, oder $DNS_SERVER)-v rohe DNS-Einträge und Details anzeigen-q nur Warnungen und Fehler anzeigen-S zusätzlich die intrusiven SMTP-Probes ausführen (Open Relay, Smuggling, NTLM, AUTH); benötigt ausgehendes 25/587 und dauert eine Minute oder länger pro MX-HostExit-Status: 0 keine fehlgeschlagene Prüfung, 1 mindestens eine fehlgeschlagene Prüfung (in einer beliebigen
Domain), 2 Nutzungsfehler.
Standardmäßig ist der Bericht in die Abschnitte AUTHENTICATION, DNS HYGIENE,
MAIL DELIVERY, TRANSPORT SECURITY und ADDITIONAL gruppiert, wobei die
Einträge unter jeder Prüfung in Grau angezeigt werden.
Jede Zeile ist eine feste dreispaltige Tabelle: Status, ein kurzer Prüfungsname (höchstens
zwölf Zeichen, z. B. DKIM, Wildcard, Root domain) und die
Beschreibung. Prüfungsspezifische Qualifizierer wie der DKIM-Selektor, der MX-Host
oder das SPF-Include werden in Klammern an die Beschreibung angehängt, sodass die
Spalten über alle Abschnitte hinweg ausgerichtet sind:
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
Die Schwere orientiert sich an der Auswirkung auf Spoofing, nicht nur am Record: Eine SPF-Richtlinie, die mit ~all endet, ist OK, wenn DMARC p=reject oder p=quarantine ist (DMARC kompensiert das Softfail), und FAIL, wenn DMARC p=none ist oder fehlt, weil dann nichts den unautorisierten Absender zurückweist. Ein striktes -all bleibt OK, selbst bei p=none; diese Exposition wird in der Zeile DMARC gemeldet.
include:sendgrid.net (oder ein kontospezifisches include:uXXXXXXX.wl.sendgrid.net) autorisiert die gemeinsam genutzten IP-Bereiche von SendGrid, für die Domain zu senden. SPF wird gegen den Envelope-Absender ausgewertet, sodass ein Angreifer, der über sein eigenes SendGrid-Konto sendet, SPF weiterhin besteht, während das sichtbare From deines ist; nur DMARC hält diese Mail fern. Die Prüfung folgt verschachtelten SPF-Includes und meldet:
FAIL, wenn SendGrid oder Mandrill eingebunden ist und kein DMARC-Record existiert oder die Richtlinie p=none ist: Ein gefälschtes From wird zugestelltWARN, wenn die Richtlinie nur p=quarantine ist: Die gefälschte Mail landet im SpamOK, wenn die Richtlinie p=reject istDie Liste der gemeinsam genutzten Plattformen befindet sich in SPF_SHARED_PROVIDERS; füge nur Anbieter hinzu, die die From-Domain nicht für jeden Kunden verifizieren.
Beide untenstehenden Aufzeichnungen wurden zur besseren Lesbarkeit verlangsamt; in Wirklichkeit dauerte die Ausführung weniger als 1 Sekunde.


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
Führen Sie das Skript innerhalb von WSL aus, nicht von PowerShell aus, und installieren Sie zuerst dig:
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
Das Repository enthält eine .gitattributes-Datei, die LF-Zeilenenden für *.sh erzwingt.
Wenn Sie es geklont haben, bevor diese Datei existierte, checken Sie das Skript einmal erneut aus, damit es
keine Windows-CRLF-Zeilenenden mehr hat (die dazu führen, dass bash mit $'\r': command not found fehlschlägt):
git checkout -- mailAuthCheck.sh
Mail Authentication Checker ist unter CC BY-NC-SA 4.0 lizenziert.
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.