hacktricks/pentesting-web/email-injections.md

169 lines
10 KiB
Markdown
Raw Normal View History

# Inyecciones de Correo Electrónico
2023-06-05 18:33:24 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente con las herramientas comunitarias más avanzadas del mundo.\
¡Accede hoy mismo:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Aprende a hackear AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Experto en Equipos Rojos de AWS de HackTricks)</strong></a><strong>!</strong></summary>
2023-06-05 18:33:24 +00:00
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén [**productos oficiales de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>
## Inyectar en correo electrónico enviado
2023-06-05 18:33:24 +00:00
### Inyectar Cc y Bcc después del argumento del remitente
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
El mensaje se enviará a las cuentas del destinatario y destinatario1.
### Inyectar argumento
2023-06-05 18:33:24 +00:00
```
From:sender@domain.com%0ATo:attacker@domain.com
```
### Inyectar argumento de Asunto
2023-06-05 18:33:24 +00:00
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
### Cambiar el cuerpo del mensaje
Inyecta dos líneas en blanco y luego escribe tu mensaje para cambiar el cuerpo del mensaje.
2023-06-05 18:33:24 +00:00
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### Explotación de la función mail() de PHP
```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 ]
}
2023-06-05 18:33:24 +00:00
}
```
#### El 5to parámetro ($additional\_parameters)
2023-06-05 18:33:24 +00:00
Esta sección se basará en **cómo abusar de este parámetro suponiendo que un atacante lo controle**.
2023-06-05 18:33:24 +00:00
Este parámetro se agregará a la línea de comandos que PHP utilizará para invocar el binario sendmail. Sin embargo, será sanitizado con la función `escapeshellcmd($additional_parameters)`.
2023-06-05 18:33:24 +00:00
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 MTA** (Sendmail, Postfix, Exim, etc.) instalado en el sistema. Aunque la **funcionalidad básica** (como los parámetros -t -i -f) permanece **igual** por razones de compatibilidad, **otras funciones y parámetros** varían considerablemente dependiendo del MTA instalado.
2023-06-05 18:33:24 +00:00
Aquí hay algunos ejemplos de diferentes páginas de manual del comando/interface sendmail:
2023-06-05 18:33:24 +00:00
* 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**. Ver 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)
2023-06-05 18:33:24 +00:00
## Inyectar en el nombre del correo electrónico
### Partes ignoradas de un correo electrónico
Los símbolos: **+, -** y **{}** en raras ocasiones pueden ser utilizados para etiquetar y ser ignorados por la mayoría de los servidores de correo electrónico
2023-06-05 18:33:24 +00:00
* Por ejemplo: john.doe+intigriti@example.com → john.doe@example.com
2023-06-05 18:33:24 +00:00
Los **comentarios entre paréntesis ()** al principio o al final también serán ignorados
2023-06-05 18:33:24 +00:00
* Por ejemplo: john.doe(intigriti)@example.com → john.doe@example.com
2023-06-05 18:33:24 +00:00
### Bypass de lista blanca
<figure><img src="../.gitbook/assets/image (4) (6).png" alt="https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
### Comillas
<figure><img src="../.gitbook/assets/image (6) (4).png" alt="https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
### IPs
También puedes usar IPs como nombres de dominio entre corchetes:
2023-06-05 18:33:24 +00:00
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### Otras vulnerabilidades
![https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0](<../.gitbook/assets/image (296).png>)
2023-06-05 18:33:24 +00:00
## 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 están sanitizando** correctamente el correo electrónico, podrías causar **XSS**.
2023-06-05 18:33:24 +00:00
### Toma de control de cuenta
2023-06-05 18:33:24 +00:00
Si un **servicio 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.\
_Nota que salesforce indica si el correo electrónico proporcionado fue verificado o no, por lo que la aplicación debería tener en cuenta esta información._
2023-06-05 18:33:24 +00:00
## Reply-To
2023-06-05 18:33:24 +00:00
Puedes enviar un correo electrónico usando _**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**.
2023-06-05 18:33:24 +00:00
## Tasa de rebote duro
Algunos servicios, como AWS, implementan un umbral conocido como la **Tasa de Rebote Duro**, generalmente establecido en un 10%. Esta es una métrica crítica, especialmente para los servicios de entrega de correo electrónico. Cuando se supera esta tasa, el servicio, como el servicio de correo electrónico de AWS, puede ser suspendido o bloqueado.
Un **rebote duro** se refiere a un **correo electrónico** que ha sido devuelto al remitente porque la dirección del destinatario es inválida o no existe. Esto podría ocurrir por diversas razones, como el envío del correo electrónico a una dirección inexistente, un dominio que no es real o la negativa del servidor del destinatario a aceptar **correos electrónicos**.
En el contexto de AWS, si envías 1000 correos electrónicos y 100 de ellos resultan en rebotes duros (debido a razones como direcciones o dominios inválidos), esto significaría una tasa de rebote duro del 10%. Alcanzar o superar esta tasa puede provocar que AWS SES (Simple Email Service) bloquee o suspenda tus capacidades de envío de correos electrónicos.
2023-06-05 18:33:24 +00:00
Es crucial mantener una tasa de rebote duro baja para garantizar un servicio de correo electrónico ininterrumpido y mantener la reputación del remitente. Monitorear y gestionar la calidad de las direcciones de correo electrónico en tus listas de correo puede ayudar significativamente a lograr esto.
2023-06-05 18:33:24 +00:00
Para obtener información más detallada, se puede consultar la documentación oficial de AWS sobre el manejo de rebotes y quejas en [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types).
2023-06-05 18:33:24 +00:00
## 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><strong>Aprende hacking en AWS desde cero hasta experto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
2023-06-05 18:33:24 +00:00
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).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 con las herramientas comunitarias más avanzadas del mundo.\
¡Accede hoy mismo:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}