hacktricks/pentesting-web/email-injections.md

9.8 KiB

Email Injections


Usa Trickest per costruire e automatizzare flussi di lavoro alimentati dagli strumenti comunitari più avanzati al mondo.
Accedi oggi:

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

{% hint style="success" %} Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}

Inietta in e-mail inviate

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 recipient e recipient1.

Inject argument

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

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

Inietta l'argomento dell'oggetto

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

L'oggetto falso verrà aggiunto all'oggetto originale e in alcuni casi lo sostituirà. Dipende dal comportamento del servizio di posta.

Cambiare il corpo del messaggio

Inietta un'interruzione di riga di due linee, quindi scrivi il tuo messaggio per cambiare il corpo del messaggio.

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

Sfruttamento della funzione PHP mail()

# 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, sarà sanitizzato con la funzione escapeshellcmd($additional_parameters).

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

Differenze nell'implementazione di /usr/sbin/sendmail

L'interfaccia sendmail è fornita dal software MTA email (Sendmail, Postfix, Exim, ecc.) installato sul sistema. Sebbene la funzionalità di base (come i parametri -t -i -f) rimanga 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 state scoperte diverse opzioni per abusarne e leakare file o persino 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 usati per il tagging e ignorati dalla maggior parte dei server email

Commenti tra parentesi () all'inizio o alla fine saranno anch'essi ignorati

Bypass della whitelist

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

Citazioni

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

IP

Puoi anche usare 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 ti consentono di creare un indirizzo email con payload XSS su di esso. Se puoi utilizzare questi fornitori per accedere ad altri servizi e questi servizi non sanitizzano correttamente l'email, potresti causare XSS.

Account-Takeover

Se un servizio SSO ti consente 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 si fida di salesforce, potresti accedere a qualsiasi account.
Nota che salesforce indica se l'email fornita è stata o meno verificata, ma l'applicazione dovrebbe tenere conto di queste informazioni.

Rispondi a

Puoi inviare un'email utilizzando From: company.com e Replay-To: attacker.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 Hard Bounce

Alcuni servizi, come AWS, implementano una soglia nota come Tasso di Hard Bounce, tipicamente impostata al 10%. Questa è 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 hard bounce si riferisce a un'email che è stata restituita al mittente perché l'indirizzo del destinatario è invalido o inesistente. Questo potrebbe verificarsi per vari motivi, come l'email inviata a un indirizzo non esistente, un dominio che non è reale, o il rifiuto del server del destinatario di accettare email.

Nel contesto di AWS, se invii 1000 email e 100 di esse risultano in hard bounce (a causa di motivi come indirizzi o domini non validi), questo significherebbe un tasso di hard bounce 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 hard bounce per garantire un servizio email ininterrotto e mantenere la reputazione del mittente. Monitorare e gestire la qualità degli indirizzi email nelle tue liste di distribuzione può aiutare significativamente a raggiungere questo obiettivo.

Per informazioni più dettagliate, puoi consultare la documentazione ufficiale di AWS sulla gestione dei bounce e dei reclami in AWS SES Bounce Handling.

Riferimenti

{% hint style="success" %} Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}


Usa Trickest per costruire e automatizzare flussi di lavoro alimentati dagli strumenti comunitari più avanzati del mondo.
Ottieni accesso oggi:

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