hacktricks/pentesting-web/email-injections.md

9.7 KiB

Iniezioni di Email


Utilizza Trickest per creare facilmente e automatizzare flussi di lavoro supportati dagli strumenti della community più avanzati al mondo.
Ottieni l'accesso oggi:

{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Inietta nell'email inviata

Inietta Cc e Bcc dopo l'argomento del mittente

From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com

Il messaggio verrà inviato agli account destinatario e destinatario1.

Iniettare l'argomento

From:sender@domain.com%0ATo:attacker@domain.com

Iniettare l'argomento Oggetto

From:sender@domain.com%0ASubject:This is%20Fake%20Subject

Cambiare il corpo del messaggio

Iniettare due righe vuote, quindi scrivere il messaggio per cambiare il corpo del messaggio.

From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.

Sfruttamento della funzione mail() di PHP

# The function has the following definition:

php --rf mail

Function [ <internal:standard> function mail ] {
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
}

Il 5° parametro ($additional_parameters)

Questa sezione si baserà su come abusare di questo parametro supponendo che un attaccante lo controlli.

Questo parametro verrà aggiunto alla riga di comando che PHP utilizzerà per invocare il binario sendmail. Tuttavia, verrà sanificato con la funzione escapeshellcmd($additional_parameters).

Un attaccante può iniettare parametri aggiuntivi per sendmail in questo caso.

Differenze nell'implementazione di /usr/sbin/sendmail

L'interfaccia sendmail è fornita dal software email MTA (Sendmail, Postfix, Exim ecc.) installato sul sistema. Anche se la funzionalità di base (come i parametri -t -i -f) rimane la stessa per motivi di compatibilità, altre funzioni e parametri variano notevolmente a seconda dell'MTA installato.

Ecco alcuni esempi di diverse pagine man del comando/interfaccia sendmail:

A seconda dell'origine del binario sendmail sono stati scoperti diversi opzioni per abusarne e leak file o addirittura eseguire comandi arbitrari. Controlla come in https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html

Iniettare nel nome dell'email

Parti ignorate di un'email

I simboli: +, - e {} in rare occasioni possono essere utilizzati per etichettare e ignorati dalla maggior parte dei server email

Commenti tra parentesi () all'inizio o alla fine verranno anche ignorati

Bypass della whitelist

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

Virgolette

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

IP

Puoi anche utilizzare IP come nomi di dominio tra parentesi quadre:

  • john.doe@[127.0.0.1]
  • john.doe@[IPv6:2001:db8::1]

Altre vulnerabilità

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

SSO di terze parti

XSS

Alcuni servizi come github o salesforce permettono di creare un indirizzo email con payload XSS. Se puoi utilizzare questi provider per accedere ad altri servizi e questi servizi non sanificano correttamente l'email, potresti causare XSS.

Account-Takeover

Se un servizio SSO ti permette di creare un account senza verificare l'indirizzo email fornito (come salesforce) e poi puoi utilizzare quell'account per accedere a un servizio diverso che affida a salesforce, potresti accedere a qualsiasi account.
Nota che salesforce indica se l'email fornita è stata verificata o meno, quindi l'applicazione dovrebbe tenere conto di queste informazioni.

Reply-To

Puoi inviare un'email utilizzando Da: azienda.com e Rispondi-A: attaccante.com e se viene inviata una risposta automatica a causa dell'email inviata da un indirizzo interno, l'attaccante potrebbe essere in grado di ricevere quella risposta.

Tasso di rimbalzo duro

Alcuni servizi, come AWS, implementano una soglia nota come Tasso di Rimbalzo Duro, di solito impostata al 10%. Si tratta di una metrica critica, specialmente per i servizi di consegna email. Quando questo tasso viene superato, il servizio, come il servizio email di AWS, potrebbe essere sospeso o bloccato.

Un rimbalzo duro si riferisce a un email che è stato restituito al mittente perché l'indirizzo del destinatario è invalido o inesistente. Ciò potrebbe verificarsi per vari motivi, come l'invio dell'email a un indirizzo inesistente, un dominio che non esiste realmente o il rifiuto del server del destinatario di accettare email.

Nel contesto di AWS, se invii 1000 email e 100 di esse risultano in rimbalzi duri (per motivi come indirizzi o domini non validi), ciò significherebbe un tasso di rimbalzo duro del 10%. Raggiungere o superare questo tasso può attivare AWS SES (Simple Email Service) per bloccare o sospendere le tue capacità di invio email.

È cruciale mantenere un basso tasso di rimbalzo duro per garantire un servizio email ininterrotto e mantenere la reputazione del mittente. Monitorare e gestire la qualità degli indirizzi email nelle tue liste di invio può aiutare significativamente a raggiungere questo obiettivo.

Per informazioni più dettagliate, consultare la documentazione ufficiale di AWS su come gestire i rimbalzi e le segnalazioni Gestione dei rimbalzi AWS SES.

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:


Usa Trickest per creare e automatizzare flussi di lavoro con potenti strumenti della community più avanzati al mondo.
Ottieni l'accesso oggi:

{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}