
Verificatore di spoofabilità di massa per domini che utilizza l'analisi autorevole dei record SPF e DMARC con logica di spoof personalizzata e testata nel mondo reale, ed enumerazione DKIM opzionale.
Spoofy è un programma che verifica se una lista di domini può essere spoofata in base ai record SPF e DMARC. Potresti chiederti: "Perché abbiamo bisogno di un altro strumento che verifichi se un dominio può essere spoofato?"
Beh, Spoofy è diverso e ecco perché:
- Logica di spoofing personalizzata e testata manualmente (nessuna supposizione o speculazione, risultati di test reali)
- Scoperta dei record basata sugli standard: valutazione SPF secondo RFC 7208 e tree walk DMARC secondo RFC 9989, inclusi
sp/npper i sottodomini- Lookup in blocco accurati tramite un resolver condiviso con cache e failover (1.1.1.1, 8.8.8.8, 9.9.9.9)
- Contatore di query DNS SPF e void lookup, più rilevamento di domini include SPF non registrati
- Enumerazione opzionale dei selettori DKIM tramite API
Spoofy richiede Python 3.9+. Installalo da PyPI:
pip3 install spoofy
spoofy -d example.com
Oppure eseguilo da un clone con pip3 install -r requirements.txt e ./spoofy.py al posto di spoofy. L'utilizzo è mostrato di seguito:
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
(La tabella di spoofabilità elenca ogni combinazione di configurazioni SPF e DMARC che influisce sulla consegna nella casella di posta, ad eccezione dei modificatori DKIM.) Scarica qui
| Codice | Risultato | SPOOFING_POSSIBLE |
|---|---|---|
| 0 | Spoofing possibile | true |
| 1 | Spoofing del sottodominio possibile | true |
| 2 | Spoofing del dominio organizzativo possibile | true |
| 3 | Spoofing potrebbe essere possibile (p=quarantine con pct < 100) | null |
| 4 | Spoofing potrebbe essere possibile (dipende dalla casella di posta) | null |
| 5 | Spoofing del dominio organizzativo potrebbe essere possibile (dipende dalla casella di posta) | null |
| 6 | Spoofing del sottodominio potrebbe essere possibile (dipende dalla casella di posta) | null |
| 7 | Spoofing del sottodominio possibile, spoofing del dominio organizzativo potrebbe essere possibile | true |
| 8 | Spoofing non possibile | false |
| 9 | Impossibile determinare (una query DNS non è riuscita) | null |
Il verdetto è il codice testato per il meccanismo all dell'SPF del dominio e per i tag DMARC p, sp e aspf così come scritti nel record. spoofy/master_table.py contiene il foglio di calcolo come dati (python3 -m spoofy.master_table lo riscrive dopo le modifiche al foglio di calcolo), e test.py verifica che ogni riga venga riprodotta. Gli input non coperti dalla tabella sono gestiti come segue:
p enforcing con aspf ma senza sp (24 combinazioni non testate): sp assume il valore predefinito di p, quindi viene usata la riga testata con sp scritto esplicitamente._dmarc): l'esito del sottodominio testato per i record SPF e DMARC del padre, con np al posto di sp quando il sottodominio non esiste.pct inferiore a 100 con p=quarantine: codice 3, poiché la posta non campionata riceve p=none. Con p=reject la posta non campionata viene comunque messa in quarantena, quindi pct non cambia il verdetto.t=y (modalità di test RFC 9989): la policy scende di un livello (reject a quarantine, quarantine a none) prima del lookup.La creazione della tabella di spoofabilità ha comportato l'elenco di ogni configurazione SPF e DMARC rilevante, la loro combinazione, e poi la raccolta di informazioni SPF e DMARC utilizzando una versione iniziale di Spoofy su un gran numero di domini del governo degli Stati Uniti. Verificare se una combinazione SPF e DMARC fosse spoofabile o meno è stato fatto utilizzando la suite di pentesting per la sicurezza email su emailspooftest con Microsoft 365. Tuttavia, i test iniziali sono stati condotti utilizzando Protonmail e Gmail, ma si è scoperto che questi servizi utilizzano controlli di reverse lookup che influenzavano i risultati, in particolare per i test di spoofing dei sottodomini. Di conseguenza, Microsoft 365 è stato utilizzato per i test, poiché offriva un maggiore controllo sulla gestione della posta.
Dopo i test iniziali con Microsoft 365, alcune combinazioni sono state ritestate utilizzando Protonmail e Gmail a causa delle differenze nella gestione dei banner nelle email. Protonmail e Gmail possono collocare la posta spoofata nella casella di posta con un banner o nello spam senza banner, portando alcune combinazioni SPF e DMARC a essere segnalate come "Dipende dalla casella di posta" quando si utilizza Spoofy. Al contrario, Microsoft 365 colloca entrambe le condizioni nello spam. Il processo di test e raccolta dati ha richiesto diversi giorni per essere completato, dopodiché è stata compilata una buona tabella master utilizzata come base per la logica di spoofabilità di Spoofy.
Questo strumento è solo per scopi di test e accademici e può essere utilizzato solo dove è stato dato uno stretto consenso. Non usarlo per scopi illegali! È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo strumento e software.
Questo progetto è concesso in licenza sotto la Creative Commons Attribution-NonCommercial 4.0 International License - vedere il file LICENSE per i dettagli