
Bulk-Domain-Spoofability-Checker, der autoritative SPF- und DMARC-Eintragsanalyse mit benutzerdefinierter, praxisgetesteter Spoof-Logik und optionaler DKIM-Enumeration verwendet.
Spoofy ist ein Programm, das anhand von SPF- und DMARC-Einträgen prüft, ob eine Liste von Domains gespooft werden kann. Vielleicht fragen Sie sich: „Warum brauchen wir ein weiteres Tool, das prüfen kann, ob eine Domain gespooft werden kann?“
Nun, Spoofy ist anders, und hier ist der Grund:
- Eigene, manuell getestete Spoofing-Logik (kein Raten oder Spekulieren, echte Testergebnisse)
- Standardbasierte Eintragserkennung: RFC 7208 SPF-Auswertung und der RFC 9989 DMARC-Tree-Walk, einschließlich
sp/npfür Subdomains- Genaue Massenabfragen über einen gemeinsamen, cachenden Resolver mit Failover (1.1.1.1, 8.8.8.8, 9.9.9.9)
- SPF-DNS-Abfrage- und Void-Lookup-Zähler sowie Erkennung nicht registrierter SPF-Include-Domains
- Optionale DKIM-Selector-Enumeration über API
Spoofy erfordert Python 3.9+. Installieren Sie es von PyPI:
pip3 install spoofy
spoofy -d example.com
Oder führen Sie es aus einem Klon mit pip3 install -r requirements.txt und ./spoofy.py anstelle von spoofy aus. Die Verwendung ist unten dargestellt:
Usage:
spoofy -d [DOMAIN] -o [stdout, xls or json] -t [NUMBER_OF_THREADS] [--dkim] [--dns-server IP]
OR
spoofy -iL [DOMAIN_LIST] -o [stdout, xls or json] -t [NUMBER_OF_THREADS] [--dkim] [--dns-server IP]
Options:
-d : Process a single domain.
-iL : Provide a file containing a list of domains to process (blank lines and # comments are skipped).
-o : Specify the output format: stdout (default), xls, or json.
-t : Set the number of threads to use (default: 4).
--dkim : Enable DKIM selector enumeration via API (optional).
--dns-server : Query this resolver instead of 1.1.1.1, 8.8.8.8 and 9.9.9.9.
Examples:
spoofy -d example.com -t 10
spoofy -d example.com --dkim
spoofy -iL domains.txt -o xls
spoofy -iL domains.txt -o json --dkim
(Die Spoofbarkeits-Tabelle listet jede Kombination von SPF- und DMARC-Konfigurationen auf, die die Zustellbarkeit in den Posteingang beeinflussen, mit Ausnahme von DKIM-Modifikatoren.) Hier herunterladen
| Code | Ergebnis | SPOOFING_POSSIBLE |
|---|---|---|
| 0 | Spoofing möglich | true |
| 1 | Subdomain-Spoofing möglich | true |
| 2 | Spoofing der organisatorischen Domain möglich | true |
| 3 | Spoofing möglicherweise möglich (p=quarantine mit pct < 100) | null |
| 4 | Spoofing möglicherweise möglich (postfachabhängig) | null |
| 5 | Spoofing der organisatorischen Domain möglicherweise möglich (postfachabhängig) | null |
| 6 | Subdomain-Spoofing möglicherweise möglich (postfachabhängig) | null |
| 7 | Subdomain-Spoofing möglich, Spoofing der organisatorischen Domain möglicherweise möglich | true |
| 8 | Spoofing ist nicht möglich | false |
| 9 | Nicht feststellbar (eine DNS-Abfrage ist fehlgeschlagen) | null |
Das Urteil ist der getestete Code für den SPF-all-Mechanismus der Domain und die DMARC-Tags p, sp und aspf, so wie der Eintrag sie schreibt. spoofy/master_table.py enthält die Tabelle als Daten (python3 -m spoofy.master_table schreibt sie nach Änderungen an der Tabelle neu), und test.py prüft, dass jede Zeile reproduziert wird. Eingaben, die die Tabelle nicht abdeckt, werden wie folgt behandelt:
p mit aspf, aber ohne sp (24 ungetestete Kombinationen): sp hat den Standardwert p, daher wird die getestete Zeile mit ausgeschriebenem sp verwendet._dmarc-Eintrag): das für die SPF- und DMARC-Einträge der übergeordneten Domain getestete Subdomain-Ergebnis, mit np anstelle von sp, wenn die Subdomain nicht existiert.pct unter 100 mit p=quarantine: Code 3, da die nicht gesampelte Mail p=none erhält. Bei p=reject wird die nicht gesampelte Mail weiterhin unter Quarantäne gestellt, daher ändert pct das Urteil nicht.t=y (RFC 9989-Testmodus): Die Richtlinie wird vor der Abfrage um eine Stufe herabgesetzt (reject zu quarantine, quarantine zu none).Die Erstellung der Spoofbarkeits-Tabelle umfasste das Auflisten jeder relevanten SPF- und DMARC-Konfiguration, deren Kombination und anschließend die Erfassung von SPF- und DMARC-Informationen mit einer frühen Version von Spoofy auf einer großen Anzahl von US-Regierungsdomains. Ob eine SPF- und DMARC-Kombination spoofbar war oder nicht, wurde mit der E-Mail-Sicherheits-Pentesting-Suite unter emailspooftest unter Verwendung von Microsoft 365 getestet. Die anfänglichen Tests wurden jedoch mit Protonmail und Gmail durchgeführt, aber es stellte sich heraus, dass diese Dienste Reverse-Lookup-Prüfungen verwenden, die die Ergebnisse beeinflussten, insbesondere beim Subdomain-Spoofing-Test. Daher wurde Microsoft 365 für die Tests verwendet, da es eine größere Kontrolle über die Handhabung von Mail bot.
Nach den anfänglichen Tests mit Microsoft 365 wurden einige Kombinationen mit Protonmail und Gmail erneut getestet, da diese Banner in E-Mails unterschiedlich handhaben. Protonmail und Gmail können gespoofte Mail mit einem Banner in den Posteingang oder ohne Banner in den Spam-Ordner legen, was dazu führt, dass einige SPF- und DMARC-Kombinationen bei Verwendung von Spoofy als „postfachabhängig“ gemeldet werden. Im Gegensatz dazu legt Microsoft 365 beide Bedingungen in den Spam-Ordner. Der Test- und Datenerfassungsprozess dauerte mehrere Tage, danach wurde eine gute Master-Tabelle zusammengestellt und als Grundlage für die Spoofbarkeits-Logik von Spoofy verwendet.
Dieses Tool ist nur für Test- und akademische Zwecke bestimmt und darf nur verwendet werden, wenn ausdrückliche Zustimmung erteilt wurde. Verwenden Sie es nicht für illegale Zwecke! Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze zu befolgen. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für jeglichen Missbrauch oder Schaden, der durch dieses Tool und diese Software verursacht wird.
Dieses Projekt ist unter der Creative Commons Attribution-NonCommercial 4.0 International License lizenziert – siehe die Datei LICENSE für Details.