Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
espoofer — Uno strumento di test per lo spoofing delle email che mira a bypassare SPF/DKIM/DMARC e falsificare le firme DKIM.🍻 | Kitploit
Strumenti/GitHubGitHub/chenjj/espoofer
Strumenti di PhishingAnalisi delle VulnerabilitàPenetration TestingPaper e RicercaApprendimento e FormazioneSicurezza Email
GitHubchenjj/espoofer

espoofer

Uno strumento di test per lo spoofing delle email che mira a bypassare SPF/DKIM/DMARC e falsificare le firme DKIM.🍻

Vedi Repository
1.7k2814 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

espoofer

espoofer è uno strumento di test open-source per bypassare l'autenticazione SPF, DKIM e DMARC nei sistemi email. Aiuta gli amministratori di server di posta e i penetration tester a verificare se il server e il client di posta elettronica target sono vulnerabili ad attacchi di spoofing email o possono essere abusati per inviare email di spoofing.


Figura 1. Un caso dei nostri attacchi di spoofing su Gmail (Risolto, Video dimostrativo)

Perché costruire questo strumento?

Lo spoofing email è una grande minaccia sia per gli individui che per le organizzazioni (Yahoo breach, John podesta). Per affrontare questo problema, i moderni servizi email e i siti web impiegano protocolli di autenticazione -- SPF, DKIM e DMARC -- per prevenire la falsificazione delle email.

La nostra ultima ricerca mostra che l'implementazione di questi protocolli soffre di numerosi problemi di sicurezza, che possono essere sfruttati per bypassare le protezioni SPF/DKIM/DMARC. La Figura 1 dimostra uno dei nostri attacchi di spoofing per bypassare DKIM e DMARC in Gmail. Per maggiori dettagli tecnici, consulta il nostro Black Hat USA 2020 talk (con video della presentazione) o USENIX security 2020 paper.

  • Slide del Black Hat USA 2020 (PDF): You have No Idea Who Sent that Email: 18 Attacks on Email Sender Authentication
  • Paper della USENIX security 2020 (PDF): Composition Kills: A Case Study of Email Sender Authentication
    • Vincitore del Distinguished Paper Award

In questo repository, riassumiamo tutti i casi di test che abbiamo trovato e li integriamo in questo strumento per aiutare amministratori e professionisti della sicurezza a identificare e localizzare rapidamente tali problemi di sicurezza.

Si prega di utilizzare la seguente citazione per ricerche scientifiche (Clicca qui).

Versione Latex:

root@kitploit:~
@inproceedings{chen-email,
author = {Jianjun Chen and Vern Paxson and Jian Jiang},
title = {Composition Kills: A Case Study of Email Sender Authentication},
booktitle = {29th {USENIX} Security Symposium ({USENIX} Security 20)},
year = {2020},
isbn = {978-1-939133-17-5},
pages = {2183--2199},
url = {https://www.usenix.org/conference/usenixsecurity20/presentation/chen-jianjun},
publisher = {{USENIX} Association},
month = aug,
}

Versione Word:

Jianjun Chen, Vern Paxson, and Jian Jiang. "Composition kills: A case study of email sender authentication." In 29th USENIX Security Symposium (USENIX Security 20), pp. 2183-2199. 2020.

Installazione

  • Scarica questo strumento
root@kitploit:~
git clone https://github.com/chenjj/espoofer
  • Installa le dipendenze
root@kitploit:~
sudo pip3 install -r requirements.txt

Versione Python: Python 3 (>=3.7).

Utilizzo

espoofer ha tre modalità di lavoro: server ('s', modalità predefinita), client ('c') e manual ('m'). In modalità server, espoofer funziona come un server di posta per testare la validazione nei servizi di ricezione. In modalità client, espoofer funziona come un client email per testare la validazione nei servizi di invio. La modalità manual è utilizzata per scopi di debug.


Figura 2. Tre tipi di attaccanti e le loro modalità di lavoro

Modalità server

Per eseguire espoofer in modalità server, è necessario avere: 1) un indirizzo IP (1.2.3.4), la cui porta 25 in uscita non sia bloccata dal provider, e 2) un dominio (attack.com).

  1. Configurazione del dominio
  • Imposta la chiave pubblica DKIM per attack.com
root@kitploit:~
selector._domainkey.attacker.com TXT  "v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNjwdrmp/gcbKLaGQfRZk+LJ6XOWuQXkAOa/lI1En4t4sLuWiKiL6hACqMrsKQ8XfgqN76mmx4CHWn2VqVewFh7QTvshGLywWwrAJZdQ4KTlfR/2EwAlrItndijOfr2tpZRgP0nTY6saktkhQdwrk3U0SZmG7U8L9IPj7ZwPKGvQIDAQAB"
  • Imposta il record SPF per attack.com
root@kitploit:~
attack.com TXT "v=spf1 ip4:1.2.3.4 +all"
  1. Configura lo strumento in config.py
root@kitploit:~
config ={
	"attacker_site": b"attack.com", # attack.com
	"legitimate_site_address": b"[email protected]", # legitimate.com
	"victim_address": b"[email protected]", # [email protected]
	"case_id": b"server_a1", # server_a1
}

Puoi elencare il case_id di tutti i casi di test usando l'opzione -l:

root@kitploit:~
python3 espoofer.py -l
  1. Esegui lo strumento per inviare un'email di spoofing
root@kitploit:~
python3 espoofer.py

Puoi cambiare il case_id in config.py o usare l'opzione -id nella riga di comando per testare diversi casi:

root@kitploit:~
python3 espoofer.py -id server_a1

Modalità client

Per eseguire espoofer in modalità client, è necessario avere un account sui servizi email target. Questo attacco sfrutta la mancata validazione sufficiente delle email ricevute dai MUA locali da parte di alcuni servizi email. Ad esempio, [email protected] tenta di impersonare [email protected]. 

  1. Configura lo strumento in config.py
root@kitploit:~
config ={
	"legitimate_site_address": b"[email protected]",  
	"victim_address": b"[email protected]", 
	"case_id": b"client_a1",

	"client_mode": {
		"sending_server": ("smtp.gmail.com", 587),  # SMTP sending serve ip and port
		"username": b"[email protected]", # Your account username and password
		"password": b"your_passward_here",
	},
}

Puoi elencare il case_id di tutti i casi di test usando l'opzione -l:

root@kitploit:~
python3 espoofer.py -l

Nota: sending_server deve essere l'indirizzo del server SMTP di invio, non l'indirizzo del server di ricezione.

  1. Esegui lo strumento per inviare un'email di spoofing
root@kitploit:~
python3 espoofer.py -m c

Puoi cambiare il case_id in config.py ed eseguirlo di nuovo, oppure usare l'opzione -id nella riga di comando:

root@kitploit:~
python3 espoofer.py -m c -id client_a1

Modalità manuale

Ecco un esempio di modalità manuale:

root@kitploit:~
python3 espoofer.py -m m -helo attack.com -mfrom <[email protected]> -rcptto <[email protected]> -data raw_msg_here -ip 127.0.0.1 -port 25

Schermate

  1. Una breve panoramica dei casi di test.

Bug trovati con questo strumento

  • Video dimostrativo di bypass DMARC su Gmail.com, https://youtu.be/xuKZpT0rsd0
  • Video di bypass DMARC su Outlook.com, https://youtu.be/IsWgAEbPaK0
  • Video di bypass DMARC su Yahoo.com, https://youtu.be/DRepfStOruE
  • Video di bypass DMARC su Protonmail.com, https://youtu.be/bh4_SoPniMA
  • CVE-2020-12272, segnalazione bug di bypass OpenDMARC, https://sourceforge.net/p/opendmarc/tickets/237/
  • CVE-2019-20790, segnalazione bug di bypass OpenDMARC e pypolicyd-spf, https://sourceforge.net/p/opendmarc/tickets/235/
  • Segnalazione bug di bypass DMARC su Mail.ru su HackerOne, https://hackerone.com/reports/731878

Benvenuto a inviare una pull request per segnalare il tuo bug qui.

Domande e Risposte

  1. Come faccio a sapere se l'email ha bypassato con successo l'autenticazione DMARC?

Puoi verificarlo nell'intestazione Authentication-results nelle intestazioni del messaggio grezzo. Se l'intestazione mostra dmarc=pass, significa che l'email ha superato l'autenticazione DMARC. Puoi guardare alcuni video dimostrativi qui.

  1. Perché le email non vengono inviate?

Ci sono diverse possibili ragioni se non riesci a inviare un'email: 1) il tuo provider blocca le email in uscita sulla porta 25 per prevenire lo spam. In questo caso, devi chiedere il permesso al provider; 2) l'indirizzo IP è nella lista di spam dei servizi email target. In molti casi, puoi risolvere il problema qui, https://www.spamhaus.org/lookup/ ; 3) alcuni servizi email controllano se esiste un record PTR per l'IP mittente, potresti dover impostare anche il record PTR per bypassare questo controllo; 4) l'email non supera la validazione del formato del servizio email target, potresti voler provare un caso di test diverso.

  1. Perché l'email finisce nella cartella spam? C'è un modo per evitarlo?

Attualmente, espoofer si concentra sul bypass dell'autenticazione SPF/DKIM/DMARC e non mira al bypass del filtro antispam. Ma puoi provare a utilizzare un indirizzo IP mittente affidabile, un dominio e un contenuto del messaggio benigno per bypassare il filtro antispam.

  1. Perché ho inviato un'email con successo ma l'email non è apparsa né nella posta in arrivo né nella cartella spam?

Nelle nostre esperienze precedenti, alcuni servizi email filtrano silenziosamente le email sospette.

  1. Quando si testano server_a5/a6, perché non posso impostare caratteri speciali come "(" nel dominio?

Dovrai configurare il tuo server DNS autorevole, invece di utilizzare servizi di hosting DNS di terze parti, poiché alcuni servizi di hosting DNS hanno restrizioni sull'impostazione di caratteri speciali. Vedi issue.

Crediti

Benvenuto ad aggiungere altri casi di test.

Scarica lo strumento