10 KiB
Injections par e-mail
Utilisez Trickest 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 à :
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!
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 !
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-nous sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux HackTricks et HackTricks Cloud dépôts GitHub.
Injecter dans l'e-mail envoyé
Injecter Cc et Cci après l'argument de l'expéditeur
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
Le message sera envoyé aux comptes destinataire et destinataire1.
Injecter l'argument
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
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.
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
Exploitation de la fonction mail() PHP
# 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 ]
}
}
Le 5ème paramètre ($additional_parameters)
Cette section va se baser sur comment abuser de ce paramètre en supposant qu'un attaquant le contrôle.
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)
.
Un attaquant peut injecter des paramètres supplémentaires pour sendmail dans ce cas.
Différences dans l'implémentation de /usr/sbin/sendmail
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é.
Voici quelques exemples de différentes pages de manuel de la commande/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
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. Vérifiez comment dans https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
Injection dans le nom de l'e-mail
Parties ignorées d'un e-mail
Les symboles : +, - et {} peuvent être utilisés pour le marquage et ignorés par la plupart des serveurs de messagerie dans des occasions rares
- Par exemple : john.doe+intigriti@example.com → john.doe@example.com
Les commentaires entre parenthèses () au début ou à la fin seront également ignorés
- Par exemple : john.doe(intigriti)@example.com → john.doe@example.com
Contournement de la liste blanche
Guillemets
IPs
Vous pouvez également utiliser des IPs comme noms de domaine entre crochets :
- john.doe@[127.0.0.1]
- john.doe@[IPv6:2001:db8::1]
Autres vulnérabilités
SSO de tiers
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 une XSS.
Prise de contrôle de compte
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 fourni a été vérifié ou non mais l'application devrait également prendre en compte cette information.
Répondre à
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 car l'e-mail a été envoyé depuis une adresse interne, l'attaquant pourrait être en mesure de recevoir cette réponse.
Taux de rebond dur
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 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 des capacités d'envoi d'e-mails d'AWS SES (Simple Email Service).
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.
Pour des informations plus détaillées, la documentation officielle d'AWS sur la gestion des rebonds et des plaintes peut être consultée à AWS SES Bounce Handling.
Références
- https://resources.infosecinstitute.com/email-injection/
- https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
- https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view
- https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
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!
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Rejoignez 💬 le groupe Discord](https://discord.gg/hRep4RUj7f) ou le groupe telegram ou suivez nous sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux HackTricks et HackTricks Cloud github repos.
Utilisez Trickest 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 :
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}