11 KiB
Contournement de l'authentification à deux facteurs (2FA/OTP)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Contournement de l'authentification à deux facteurs
Contournement direct
Pour contourner le 2FA, essayez simplement d'accéder directement à l'endpoint suivant (vous devez connaître le chemin de l'endpoint suivant). Si cela ne fonctionne pas, essayez de modifier l'en-tête Referrer comme si vous veniez de la page 2FA.
Réutilisation du jeton
Il est possible de réutiliser un jeton précédemment utilisé à l'intérieur du compte pour s'authentifier.
Partage de jetons inutilisés
Vérifiez si vous pouvez obtenir le jeton de votre compte et essayez de l'utiliser pour contourner le 2FA dans un autre compte.
Jeton divulgué
Le jeton est-il divulgué dans une réponse de l'application web ?
Lien de vérification par e-mail
Essayez d'utiliser le lien de vérification par e-mail reçu lors de la création du compte pour voir si même si le 2FA était activé, vous pouvez toujours accéder à votre profil uniquement avec ce lien (post).
Autorisation de session
En utilisant la même session, démarrez le flux en utilisant votre compte et le compte de la victime. Lorsque vous atteignez le point 2FA sur les deux comptes, terminez le 2FA avec votre compte mais n'accédez pas à la partie suivante. Au lieu de cela, essayez d'accéder à l'étape suivante avec le flux du compte de la victime. Si le back-end ne définit qu'un booléen dans vos sessions indiquant que vous avez réussi à passer le 2FA, vous pourrez contourner le 2FA de la victime.
Fonction de réinitialisation du mot de passe
Dans presque toutes les applications web, la fonction de réinitialisation du mot de passe connecte automatiquement l'utilisateur à l'application une fois la procédure de réinitialisation terminée.
Vérifiez si un e-mail est envoyé avec un lien pour réinitialiser le mot de passe et si vous pouvez réutiliser ce lien pour réinitialiser le mot de passe autant de fois que vous le souhaitez (même si la victime change son adresse e-mail).
Une autre option pour contourner le 2FA avec la fonctionnalité de réinitialisation du mot de passe est de réinitialiser le mot de passe avec accès à l'e-mail et d'utiliser le nouveau mot de passe pour vous connecter, il est possible qu'après un changement de mot de passe, le 2FA ne soit pas utilisé.
OAuth
Si vous pouvez compromettre le compte de l'utilisateur sur une plateforme OAuth de confiance (Google, Facebook...)
Brute force
Absence de limite de taux
Y a-t-il une limite sur le nombre de codes que vous pouvez essayer, afin que vous puissiez simplement effectuer une attaque par force brute ? Faites attention à une éventuelle limite de taux "silencieuse", essayez toujours plusieurs codes, puis le vrai pour confirmer la vulnérabilité.
Limite de débit du flux mais pas de limite de taux
Dans ce cas, il y a une limite de débit du flux (vous devez effectuer une attaque par force brute très lentement : 1 thread et une pause avant 2 tentatives), mais pas de limite de taux. Donc, avec suffisamment de temps, vous pouvez trouver le code valide.
Renvoi du code et réinitialisation de la limite
Il y a une limite de taux, mais lorsque vous "renvoyez le code", le même code est renvoyé et la limite de taux est réinitialisée. Ensuite, vous pouvez effectuer une attaque par force brute du code tout en le renvoyant, de sorte que la limite de taux n'est jamais atteinte.
Contournement de la limite de taux côté client
{% content-ref url="rate-limit-bypass.md" %} rate-limit-bypass.md {% endcontent-ref %}
Absence de limite de taux dans le compte de l'utilisateur
Parfois, vous pouvez configurer le 2FA pour certaines actions à l'intérieur de votre compte (changement d'e-mail, de mot de passe...). Cependant, même dans les cas où il y a une limite de taux lorsque vous essayez de vous connecter, il n'y a aucune limite de taux pour protéger les actions à l'intérieur du compte.
Absence de limite de taux lors de la réception du code via SMS
Vous ne pourrez pas contourner le 2FA, mais vous pourrez gaspiller l'argent de l'entreprise.
Régénération infinie de l'OTP
Si vous pouvez générer un nouvel OTP un nombre infini de fois, que l'OTP est suffisamment simple (4 chiffres) et que vous pouvez essayer jusqu'à 4 ou 5 jetons par OTP généré, vous pouvez simplement essayer les mêmes 4 ou 5 jetons à chaque fois et générer des OTP jusqu'à ce qu'ils correspondent à ceux que vous utilisez.
Condition de concurrence
Consultez la section sur le contournement du 2FA par condition de concurrence de la page suivante :
{% content-ref url="race-condition.md" %} race-condition.md {% endcontent-ref %}
CSRF/Clickjacking
Vérifiez s'il existe une vulnérabilité de Cross Site Request Forgery (CSRF) ou de Clickjacking pour désactiver la 2FA.
Fonctionnalité "Se souvenir de moi"
Cookie devinable
Si la fonctionnalité "Se souvenir de moi" utilise un nouveau cookie avec un code devinable, essayez de le deviner.
Adresse IP
Si la fonctionnalité "Se souvenir de moi" est liée à votre adresse IP, vous pouvez essayer de déterminer l'adresse IP de la victime et vous faire passer pour elle en utilisant l'en-tête X-Forwarded-For.
Anciennes versions
Sous-domaines
Si vous trouvez des sous-domaines de "test" avec la fonctionnalité de connexion, ils pourraient utiliser d'anciennes versions qui ne prennent pas en charge la 2FA (donc elle est contournée directement) ou ces points d'extrémité pourraient prendre en charge une version vulnérable de la 2FA.
APIs
Si vous constatez que la 2FA utilise une API située sous un répertoire /v* (comme "/v3/"), cela signifie probablement qu'il existe d'anciens points d'extrémité d'API qui pourraient être vulnérables à une certaine forme de contournement de la 2FA.
Sessions précédentes
Lorsque la 2FA est activée, les sessions précédentes créées doivent être terminées. Cela est nécessaire car lorsqu'un client voit son compte compromis, il peut vouloir le protéger en activant la 2FA, mais si les sessions précédentes ne sont pas terminées, cela ne le protégera pas.
Contrôle d'accès inapproprié aux codes de sauvegarde
Les codes de sauvegarde sont générés immédiatement après l'activation de la 2FA et sont disponibles sur une seule requête. Après chaque appel ultérieur à la requête, les codes peuvent être régénérés ou rester inchangés (codes statiques). S'il existe des erreurs de configuration CORS/XSS et d'autres bugs qui permettent de "tirer" les codes de sauvegarde de la réponse de la requête de l'endpoint du code de sauvegarde, alors l'attaquant pourrait voler les codes et contourner la 2FA si le nom d'utilisateur et le mot de passe sont connus.
Divulgation d'informations
Si vous remarquez des informations confidentielles apparaissant sur la page de la 2FA que vous ne connaissiez pas auparavant (comme le numéro de téléphone), cela peut être considéré comme une vulnérabilité de divulgation d'informations.
Réinitialisation du mot de passe == désactivation de la 2FA
- Créez un compte et activez la 2FA.
- Déconnectez-vous de ce compte.
- Maintenant, allez sur la page de réinitialisation du mot de passe.
- Changez votre mot de passe.
- Essayez maintenant de vous connecter.
- Si on ne vous demande pas d'entrer un code 2FA, vous pouvez le signaler.
Références
{% embed url="https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35" %}
{% embed url="https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous souhaitez voir votre entreprise annoncée dans HackTricks ? ou vous souhaitez avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.