hacktricks/pentesting-web/email-injections.md

9.8 KiB

Iniezioni di Email


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

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

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

Altri modi per supportare HackTricks:

Iniettare nell'email inviata

Iniettare 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 del destinatario e del destinatario1.

Iniettare l'argomento

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

Il messaggio verrà inviato al destinatario originale e all'account dell'attaccante.

Inietta l'argomento del soggetto

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

Modifica il corpo del messaggio

Inietta due righe vuote, quindi scrivi il tuo 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 di 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 leakare file o addirittura eseguire comandi arbitrari. Controlla come in https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html

Iniezione nel nome dell'email

Parti ignorate di un'email

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

I 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 gli 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 questa percentuale viene superata, 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 questa percentuale 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, si può fare riferimento alla 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 gli strumenti della community più avanzati al mondo.
Ottieni l'accesso oggi:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}