mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
196 lines
14 KiB
Markdown
196 lines
14 KiB
Markdown
# Inyecciones de Correo Electrónico
|
|
|
|
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
\
|
|
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas comunitarias más avanzadas del mundo.\
|
|
Obtén acceso hoy mismo:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres que tu **empresa sea anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Inyectar en correo electrónico enviado
|
|
|
|
### Inyectar Cc y Bcc después del argumento del remitente
|
|
```
|
|
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
|
|
```
|
|
El argumento será inyectado.
|
|
```
|
|
From:sender@domain.com%0ATo:attacker@domain.com
|
|
```
|
|
El mensaje se enviará al destinatario original y a la cuenta del atacante.
|
|
|
|
### Inyectar el argumento Asunto
|
|
```
|
|
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
|
|
```
|
|
El asunto falso se agregará al asunto original y en algunos casos lo reemplazará. Depende del comportamiento del servicio de correo.
|
|
|
|
### Cambiar el cuerpo del mensaje
|
|
|
|
Inyecta un salto de línea de dos líneas y luego escribe tu mensaje para cambiar el cuerpo del mensaje.
|
|
```
|
|
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
|
|
```
|
|
### Explotación de la función mail() de PHP
|
|
|
|
The `mail()` function in PHP is commonly used to send emails from a web application. However, if not properly secured, it can be vulnerable to email injection attacks. Email injection occurs when an attacker is able to manipulate the email headers and inject malicious content into the email.
|
|
|
|
La función `mail()` en PHP se utiliza comúnmente para enviar correos electrónicos desde una aplicación web. Sin embargo, si no está correctamente asegurada, puede ser vulnerable a ataques de inyección de correo electrónico. La inyección de correo electrónico ocurre cuando un atacante puede manipular los encabezados del correo electrónico e inyectar contenido malicioso en el correo electrónico.
|
|
|
|
#### How email injection works
|
|
|
|
The email injection attack takes advantage of the fact that the `mail()` function allows the headers of the email to be specified as a string parameter. If the application does not properly validate and sanitize user input, an attacker can inject additional headers or modify existing ones.
|
|
|
|
Cómo funciona la inyección de correo electrónico
|
|
|
|
El ataque de inyección de correo electrónico aprovecha el hecho de que la función `mail()` permite especificar los encabezados del correo electrónico como un parámetro de cadena. Si la aplicación no valida y desinfecta correctamente la entrada del usuario, un atacante puede inyectar encabezados adicionales o modificar los existentes.
|
|
|
|
#### Exploiting email injection
|
|
|
|
To exploit email injection, an attacker can craft a malicious payload that includes additional headers or modifies existing ones. For example, the attacker can inject a `CC` or `BCC` header to send a copy of the email to themselves or to other recipients without the knowledge of the original sender.
|
|
|
|
Explotando la inyección de correo electrónico
|
|
|
|
Para explotar la inyección de correo electrónico, un atacante puede crear una carga útil maliciosa que incluya encabezados adicionales o modifique los existentes. Por ejemplo, el atacante puede inyectar un encabezado `CC` o `BCC` para enviar una copia del correo electrónico a sí mismos o a otros destinatarios sin el conocimiento del remitente original.
|
|
|
|
#### Impact of email injection
|
|
|
|
The impact of email injection can vary depending on the attacker's intentions. Some possible consequences include:
|
|
|
|
- Unauthorized access to sensitive information: By injecting a malicious payload, an attacker can potentially gain access to sensitive information contained in the email or perform actions on behalf of the original sender.
|
|
- Spamming or phishing attacks: An attacker can use email injection to send spam or phishing emails to unsuspecting recipients, potentially leading to further compromise or financial loss.
|
|
- Reputation damage: If an application is found to be vulnerable to email injection, it can damage the reputation of the organization or individual associated with the application.
|
|
|
|
Impacto de la inyección de correo electrónico
|
|
|
|
El impacto de la inyección de correo electrónico puede variar según las intenciones del atacante. Algunas posibles consecuencias incluyen:
|
|
|
|
- Acceso no autorizado a información sensible: Al inyectar una carga útil maliciosa, un atacante puede potencialmente obtener acceso a información sensible contenida en el correo electrónico o realizar acciones en nombre del remitente original.
|
|
- Ataques de spam o phishing: Un atacante puede utilizar la inyección de correo electrónico para enviar correos electrónicos de spam o phishing a destinatarios desprevenidos, lo que puede llevar a una mayor compromiso o pérdida financiera.
|
|
- Daño a la reputación: Si se descubre que una aplicación es vulnerable a la inyección de correo electrónico, puede dañar la reputación de la organización o individuo asociado con la aplicación.
|
|
```bash
|
|
# 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 ]
|
|
}
|
|
}
|
|
```
|
|
#### El quinto parámetro ($additional\_parameters)
|
|
|
|
Esta sección se basará en **cómo abusar de este parámetro suponiendo que un atacante lo controle**.
|
|
|
|
Este parámetro se agregará a la línea de comandos que PHP utilizará para invocar el binario sendmail. Sin embargo, se sanitizará con la función `escapeshellcmd($additional_parameters)`.
|
|
|
|
Un atacante puede **inyectar parámetros adicionales para sendmail** en este caso.
|
|
|
|
#### Diferencias en la implementación de /usr/sbin/sendmail
|
|
|
|
La interfaz de **sendmail** es **proporcionada por el software de correo electrónico MTA** (Sendmail, Postfix, Exim, etc.) instalado en el sistema. Aunque la **funcionalidad básica** (como los parámetros -t -i -f) se mantiene **igual** por razones de compatibilidad, **otras funciones y parámetros** varían considerablemente según el MTA instalado.
|
|
|
|
Aquí hay algunos ejemplos de diferentes páginas de manual del comando/interface sendmail:
|
|
|
|
* Sendmail MTA: http://www.sendmail.org/\~ca/email/man/sendmail.html
|
|
* Postfix MTA: http://www.postfix.org/mailq.1.html
|
|
* Exim MTA: https://linux.die.net/man/8/eximReferences
|
|
|
|
Dependiendo del **origen del binario sendmail**, se han descubierto diferentes opciones para abusar de ellos y **filtrar archivos o incluso ejecutar comandos arbitrarios**. Mira cómo en [**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
|
|
|
|
## Inyectar en el nombre del correo electrónico
|
|
|
|
### Partes ignoradas de un correo electrónico
|
|
|
|
Los símbolos: **+, -** y **{}** en raras ocasiones se pueden usar para etiquetar y ser ignorados por la mayoría de los servidores de correo electrónico
|
|
|
|
* Ejemplo: john.doe+intigriti@example.com → john.doe@example.com
|
|
|
|
Los **comentarios entre paréntesis ()** al principio o al final también se ignorarán
|
|
|
|
* Ejemplo: john.doe(intigriti)@example.com → john.doe@example.com
|
|
|
|
### Bypass de lista blanca
|
|
|
|
<figure><img src="../.gitbook/assets/image (4) (6).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Comillas
|
|
|
|
<figure><img src="../.gitbook/assets/image (6) (4).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### IPs
|
|
|
|
También puedes usar IPs como nombres de dominio entre corchetes:
|
|
|
|
* john.doe@\[127.0.0.1]
|
|
* john.doe@\[IPv6:2001:db8::1]
|
|
|
|
### Otras vulnerabilidades
|
|
|
|
![](<../.gitbook/assets/image (296).png>)
|
|
|
|
## SSO de terceros
|
|
|
|
### XSS
|
|
|
|
Algunos servicios como **github** o **salesforce permiten** crear una **dirección de correo electrónico con payloads XSS**. Si puedes **usar estos proveedores para iniciar sesión en otros servicios** y estos servicios **no sanitizan** correctamente el correo electrónico, podrías causar **XSS**.
|
|
|
|
### Toma de cuenta
|
|
|
|
Si un servicio de **SSO** te permite **crear una cuenta sin verificar la dirección de correo electrónico proporcionada** (como **salesforce**) y luego puedes usar esa cuenta para **iniciar sesión en un servicio diferente** que **confía** en salesforce, podrías acceder a cualquier cuenta.\
|
|
Ten en cuenta que salesforce indica si el correo electrónico proporcionado fue verificado o no, pero la aplicación debe tener en cuenta esta información.
|
|
|
|
## Reply-To
|
|
|
|
Puedes enviar un correo electrónico utilizando _**From: company.com**_\*\* \*\* y _**Replay-To: attacker.com**_ y si se envía alguna **respuesta automática** debido a que el correo electrónico se envió **desde** una **dirección interna**, el **atacante** podría **recibir** esa **respuesta**.
|
|
|
|
## Tasa de rebote duro
|
|
|
|
Algunas aplicaciones como AWS tienen una **Tasa de rebote duro** (en AWS es del 10%), que bloquea el servicio de correo electrónico cada vez que está sobrecargado.
|
|
|
|
Un **rebote duro** es un **correo electrónico** que no se pudo entregar por alguna razón permanente. Tal vez la dirección de correo electrónico sea falsa, tal vez el dominio del correo electrónico no sea un dominio real, o tal vez el servidor del destinatario del correo electrónico no acepte **correos electrónicos**, eso significa que de un total de 1000 correos electrónicos, si 100 de ellos son falsos o inválidos y causan que todos reboten, **AWS SES** bloqueará tu servicio.
|
|
|
|
Entonces, si puedes **enviar correos electrónicos (quizás invitaciones) desde la aplicación web a cualquier dirección de correo electrónico**, podrías provocar este bloqueo enviando cientos de invitaciones a usuarios y dominios inexistentes: Denegación de servicio del servicio de correo electrónico.
|
|
|
|
## Referencias
|
|
|
|
* [https://resources.infosecinstitute.com/email-injection/](https://resources.infosecinstitute.com/email-injection/)
|
|
* [https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
|
|
* [https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view](https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view)
|
|
* [https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0)
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, utilizando las herramientas comunitarias más avanzadas del mundo.\
|
|
Obtén acceso hoy mismo:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|