hacktricks/pentesting-web/email-injections.md

171 lines
10 KiB
Markdown
Raw Normal View History

# Injections par e-mail
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire facilement et **automatiser des workflows** alimentés par les outils communautaires les plus avancés au monde.\
Accédez dès aujourd'hui à :
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge HackTricks AWS)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Autres façons de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
## Injecter dans l'e-mail envoyé
2023-06-03 13:10:46 +00:00
### Injecter Cc et Bcc après l'argument de l'expéditeur
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
Le message sera envoyé aux comptes destinataire et destinataire1.
### Injecter l'argument
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ATo:attacker@domain.com
```
Le message sera envoyé au destinataire d'origine et au compte de l'attaquant.
### Injecter l'argument Sujet
2023-06-03 13:10:46 +00:00
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
### Changer le corps du message
Injectez un saut de ligne à deux lignes, puis écrivez votre message pour changer le corps du message.
2021-11-27 01:09:08 +00:00
```
2023-06-03 13:10:46 +00:00
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### Exploitation de la fonction mail() PHP
2021-11-27 01:09:08 +00:00
```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 ]
}
2021-11-27 01:09:08 +00:00
}
```
#### Le 5ème paramètre ($additional\_parameters)
2021-11-27 01:09:08 +00:00
Cette section va se baser sur **comment abuser de ce paramètre en supposant qu'un attaquant le contrôle**.
2021-11-27 01:09:08 +00:00
Ce paramètre va être ajouté à la ligne de commande que PHP va utiliser pour invoquer le binaire sendmail. Cependant, il sera sécurisé avec la fonction `escapeshellcmd($additional_parameters)`.
2021-11-27 01:09:08 +00:00
2023-06-03 13:10:46 +00:00
Un attaquant peut **injecter des paramètres supplémentaires pour sendmail** dans ce cas.
2021-11-27 01:09:08 +00:00
#### Différences dans l'implémentation de /usr/sbin/sendmail
2021-11-27 01:09:08 +00:00
L'interface **sendmail** est **fournie par le logiciel de messagerie MTA** (Sendmail, Postfix, Exim etc.) installé sur le système. Bien que la **fonctionnalité de base** (comme les paramètres -t -i -f) reste la **même** pour des raisons de compatibilité, **d'autres fonctions et paramètres** varient grandement en fonction du MTA installé.
2021-11-27 01:09:08 +00:00
2023-06-03 13:10:46 +00:00
Voici quelques exemples de différentes pages de manuel de la commande/interface sendmail :
2021-11-27 01:09:08 +00:00
2023-06-03 13:10:46 +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
2021-11-27 01:09:08 +00:00
En fonction de l'**origine du binaire sendmail**, différentes options ont été découvertes pour les abuser et **exfiltrer des fichiers ou même exécuter des commandes arbitraires**. Vérifiez comment sur [**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)
2021-11-27 01:09:08 +00:00
## Injection dans le nom de l'e-mail
2022-12-29 12:18:46 +00:00
2023-06-03 13:10:46 +00:00
### Parties ignorées d'un e-mail
2022-12-29 12:18:46 +00:00
Les symboles : **+, -** et **{}** dans de rares occasions peuvent être utilisés pour marquer et ignorés par la plupart des serveurs de messagerie
2022-12-29 12:18:46 +00:00
* Par exemple john.doe+intigriti@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
Les **commentaires entre parenthèses ()** au début ou à la fin seront également ignorés
2022-12-29 12:18:46 +00:00
* Par exemple john.doe(intigriti)@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
### Contournement de la liste blanche
2022-12-29 12:18:46 +00:00
<figure><img src="../.gitbook/assets/image (812).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2023-06-03 13:10:46 +00:00
### Guillemets
2022-12-29 12:18:46 +00:00
<figure><img src="../.gitbook/assets/image (626).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
### IPs
2022-12-29 12:18:46 +00:00
Vous pouvez également utiliser des IPs comme nom de domaine entre crochets :
2022-12-29 12:18:46 +00:00
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
2023-06-03 13:10:46 +00:00
### Autres vulnérabilités
2022-12-29 12:18:46 +00:00
![https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](<../.gitbook/assets/image (1131).png>)
2022-12-29 12:18:46 +00:00
## SSO tiers
2022-12-29 12:18:46 +00:00
### XSS
Certains services comme **github** ou **salesforce permettent** de créer une **adresse e-mail avec des charges XSS**. Si vous pouvez **utiliser ces fournisseurs pour vous connecter à d'autres services** et que ces services ne **sécurisent pas correctement** l'e-mail, vous pourriez causer **XSS**.
2022-12-29 12:18:46 +00:00
2023-06-03 13:10:46 +00:00
### Prise de contrôle de compte
2022-12-29 12:18:46 +00:00
Si un **service SSO** vous permet de **créer un compte sans vérifier l'adresse e-mail fournie** (comme **salesforce**) et que vous pouvez ensuite utiliser ce compte pour **vous connecter à un service différent** qui **fait confiance** à salesforce, vous pourriez accéder à n'importe quel compte.\
_Notez que salesforce indique si l'e-mail donné a été vérifié ou non, donc l'application devrait prendre en compte cette information._
2022-12-29 12:18:46 +00:00
## Répondre à
2022-12-29 12:18:46 +00:00
Vous pouvez envoyer un e-mail en utilisant _**De : entreprise.com**_ et _**Répondre à : attaquant.com**_ et si une **réponse automatique** est envoyée parce que l'e-mail a été envoyé **depuis** une **adresse interne**, l'**attaquant** pourrait être en mesure de **recevoir** cette **réponse**.
2022-12-29 12:18:46 +00:00
## Taux de rebond dur
2022-12-29 12:18:46 +00:00
Certains services, comme AWS, mettent en œuvre un seuil connu sous le nom de **Taux de rebond dur**, généralement fixé à 10%. Il s'agit d'une métrique critique, notamment pour les services de livraison d'e-mails. Lorsque ce taux est dépassé, le service, tel que le service e-mail d'AWS, peut être suspendu ou bloqué.
Un **rebond dur** fait référence à un **e-mail** qui a été renvoyé à l'expéditeur car l'adresse du destinataire est invalide ou n'existe pas. Cela pourrait se produire pour diverses raisons, telles que l'envoi de l'e-mail à une adresse inexistante, un domaine qui n'est pas réel, ou le refus du serveur du destinataire d'accepter des **e-mails**.
Dans le contexte d'AWS, si vous envoyez 1000 e-mails et que 100 d'entre eux entraînent des rebonds durs (pour des raisons telles que des adresses ou des domaines invalides), cela signifierait un taux de rebond dur de 10%. Atteindre ou dépasser ce taux peut déclencher le blocage ou la suspension par AWS SES (Simple Email Service) de vos capacités d'envoi d'e-mails.
2022-12-29 12:18:46 +00:00
Il est crucial de maintenir un faible taux de rebond dur pour garantir un service e-mail ininterrompu et maintenir la réputation de l'expéditeur. La surveillance et la gestion de la qualité des adresses e-mail dans vos listes de diffusion peuvent grandement aider à atteindre cet objectif.
2022-12-29 12:18:46 +00:00
Pour des informations plus détaillées, la documentation officielle d'AWS sur la gestion des rebonds et des plaintes peut être consultée sur [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types).
2022-12-29 12:18:46 +00:00
2023-06-03 13:10:46 +00:00
## Références
2021-11-27 01:09:08 +00:00
2022-12-29 12:18:46 +00:00
* [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)
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Autres façons de soutenir HackTricks :
2022-04-28 16:01:33 +00:00
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et **automatiser facilement des workflows** alimentés par les outils communautaires les plus avancés au monde.\
Accédez dès aujourd'hui :
2022-04-28 16:01:33 +00:00
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}