web-dev-qa-db-fra.com

Comment connaître la force du mot de passe Wordpress (déjà enregistré)?

Je suis responsable de la sécurité de nombreux serveurs d'hébergement partagé. La plupart d’entre eux ont des sites Web WordPress. Chaque serveur contient au moins 500 sites Web WordPress.

Dans mon expérience, le problème avec WordPress commence avec un mot de passe faible. La plupart du mot de passe administrateur du site Web est très faible et l'utilisation du mot de passe faible est exploitée et utilisée pour diverses activités malveillantes.

Mon objectif est maintenant de connaître le mot de passe faible du site Web WordPress et de le remplacer de force par un autre mot de passe fort. Ainsi, WordPress peut être sécurisé et mon serveur ne sera pas en difficulté.

Comment connaître la force du mot de passe WordPress enregistré?

10
Mani

hachage Bruteforce

Vous pouvez bruerforce le hachage stocké dans la base de données.

WordPress utilise phpass pour le hachage. Par défaut, WordPress n'utilise pas blowfish ou similaire, mais simplement md5 avec un nombre d'itérations de 8192. Si vous voulez juste trouver des mots de passe vraiment mauvais, il est certainement faisable de forcer.

Mais je considérerais cela comme une violation plutôt grave de la confiance que les utilisateurs vous accordent, aussi je ne recommanderais pas cette approche.

Analysez leurs mots de passe lors de la connexion

Vous pouvez ajouter un script qui intercepte toutes les demandes dans les scripts de connexion WordPress et consigner ou analyser les mots de passe, tels qu’ils sont en texte clair à ce stade.

Bien sûr, cela ne détecte que les mots de passe faibles une fois que l'utilisateur s'est connecté. S'ils ont abandonné leur site ou sont plutôt inactifs, il peut prendre un certain temps avant de découvrir qu'ils utilisent un mot de passe faible.

Je considérerais cela comme une violation encore plus grave que celle consistant à forcer brutalement le hachage et que cela pose également des problèmes de sécurité (si vous stockez les mots de passe en texte clair, cela poserait évidemment un problème, mais même dans le cas contraire, vous pourriez stocker accidentellement des informations de l'analyse pouvant aider un attaquant).

Implémenter une politique de mot de passe (et forcer les utilisateurs à changer leurs mots de passe)

Vous pouvez implémenter une politique de mot de passe. Lorsqu'un utilisateur soumet un nouveau mot de passe, vous devez vérifier s'il est conforme à votre stratégie (idéalement, cela se produira côté serveur, pas côté client via JavaScript).

Il est difficile d’écrire une bonne politique de mot de passe, alors jetez un coup d’œil aux politiques existantes pour vous aider.

Bien entendu, les anciens mots de passe ne sont pas affectés par la stratégie. Vous devez donc obliger les utilisateurs à modifier leurs anciens mots de passe pour se conformer à la stratégie.

Limit Damage

L'imposition de mots de passe forts peut être une bonne idée, mais idéalement, une instance piratée WordPress ne devrait pas vraiment vous affecter en tant que webmaster.

Vous devriez vouloir limiter les dégâts une fois qu'un attaquant a eu accès à une installation WordPress. Idéalement, vous voudriez que seule une instance soit affectée, et non votre serveur entier (vous risquez donc de vous inquiéter du piratage qui insère du contenu indécent sur un site Web - comme le ferait un utilisateur valide -, mais pas sur l'exécution de code activité).

C’est un sujet assez vaste, mais parmi les points suivants: DISALLOW_FILE_EDIT, limite l’utilisation de plugins (car ils sont beaucoup moins sécurisés que WordPress lui-même), interdit l’utilisation de JavaScript (par exemple, avec multisites, uniquement). les super-administrateurs ont le droit d'afficher du JavaScript, pas les administrateurs), etc.

8
tim

Je ne suis pas sûr que ce soit même possible. Lorsque vous sélectionnez votre mot de passe, il est stocké dans la base de données. Il n'y a pas d'ingénierie inverse en ce qui concerne les algorithmes de hachage.

D'après mon expérience, le script pour la force du mot de passe se trouve dans www.example.com/wp-admin/js/password-strength-meter.js, et this en est le lien.

Vous pouvez modifier les niveaux et les pourcentages des mots de passe ici. Vous pouvez donc définir une force de mot de passe obligatoire sur 100/100.

Et, si vous voulez que votre client vérifie la force du mot de passe, il y a joli application qui peut vous donner la force du mot de passe ici.

Il est impossible de faire de la reverse engineering ici, et en plus, peu de plugins forcent les utilisateurs à obtenir des mots de passe forts.

4
Josip Ivic

Les bonnes nouvelles sont que vous pouvez changer les mots de passe des utilisateurs, les mauvaises nouvelles sont que vous ne pouvez pas les voir.
Wordpress est si puissant que même dans la base de données, il stocke le mot de passe avec un cryptage à sens unique. Ce n'est pas seulement un hachage md5 que vous pouvez convertir, ce ne sont même pas des données sérialisées. Pour le mot de passe _test123_, vous obtiendrez quelque chose comme _$P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn_, même si vous modifiez le champ de mot de passe dans la base de données sans utiliser le cryptage, cela ne fonctionnera pas.

Comment changer le mot de passe

Je pense que vous en êtes conscient, mais je vais le laisser ici. Vous pouvez entrer votre tableau de bord wordpress avec des privilèges d’administrateur, aller aux utilisateurs, trouver un utilisateur et cette partie est assez mauvaise pour vous car vous devez cliquer sur générer un nouveau mot de passe, cela vous donnera une soupe aléatoire de lettres et symboles et vous pouvez l'éditer avec vos propres mais vous ne pouvez pas voir le mot de passe.

3
knif3r

Les mots de passe étant hachés, le seul moyen de tester leur sécurité est de les forcer brutalement. Rassemblez une liste des mots de passe faibles couramment utilisés et testez-les par rapport aux hachages stockés dans votre base de données.

À moins que vous n'utilisiez une liste de mots de passe très exhaustive, elle ne détectera pas tous les mots de passe faibles, mais filtrera les plus faibles.

3
Tom van der Zanden

Comme les réponses précédentes l'ont souligné: vous ne pouvez pas lire les mots de passe stockés.

Une solution alternative pourrait être:

  1. Mettez en œuvre la suggestion de Josip Ivic pour appliquer des mots de passe forts.
  2. Supprimez tous les mots de passe (ou uniquement les mots de passe pour les utilisateurs avec certains privilèges).
  3. Enfin, informez les utilisateurs concernés qu’une nouvelle stratégie de mot de passe est en vigueur et dirigez-les vers /wp-login.php?action=lostpassword pour réinitialiser leurs mots de passe.
1
Syberspace

Vous ne pouvez pas forcer de changer le mot de passe administrateur wp, sauf si vous n'avez aucun contrôle sur chaque base de données wordpress, qui est stockée dans phpmyadmin.

Et non, il n’existe aucun moyen rapide de connaître le mot de passe de la semaine sur le site 500 wordpress. Josip mentionne un lien pour vérifier la force du mot de passe, mais ce site n’a pas utilisé md5 crypto algo pour vérifier la force du mot de passe.

Commander ceci SO Link , ( Wordpress utilisant MD5 ) et vous verrez que la sortie est différente de celle de l'application. Donc, comme vous le voyez, p#aSS*Word14 n'est pas sûr que Dance With Me Tonight Donc n'utilisez pas cette application pour vérifier votre mot de passe Wordpress, car ils utilisent peut-être un autre algorithme de chiffrement pour vérifier/assumer la force du mot de passe.

Aussi, vous devriez avoir tous les mots de passe, et le tester un à un, il n’ya pas de tour de magie à découvrir rapidement.

Une autre chose est que, si un WordPress site est piraté, cela n’affecte pas les autres sites wp du même serveur (sauf attaque DOS). J'ai vu beaucoup de gens démarrer wp dans l'hébergement partagé, et leur site est en train d'être piraté, mais leur site voisin fonctionnait bien, car chaque wp a sa propre base de données sur phpmyadmin.

1
Goyllo

Les mots de passe WordPress sont hachés, comme le ferait n'importe quelle application judicieuse en matière de stockage de mots de passe, car le stockage de mots de passe en texte clair est très peu sécurisé, car vos utilisateurs pourraient avoir le même mot de passe pour les autres services qu'ils utilisent (pensez à gmail?).

Il n'est pas possible de reconvertir le hachage en mot de passe, sinon on pourrait tout aussi bien les stocker en texte clair. Auparavant, les mots de passe étaient hachés avec MD5, mais une équipe de sécurité a prouvé que cela n'était pas sûr. L'algorithme de hachage a donc été mis à jour à phpass.

Conseil: WordPress peut toujours réussir à le hacher correctement même si vous mettez à jour MD5 (% password%) dans la colonne SQL.

Maintenant, la façon pratique d’aborder ce que vous essayez de faire pour un site unique est d’imposer un changement de mot de passe en remplaçant la colonne par un autre élément et en appliquant des exigences de force de mot de passe à la page où ils vont mettre à jour leur mot de passe. Mais votre cas d'utilisation nécessite de le faire sur autant d'installations WP] et les propriétaires de site pourraient ne pas apprécier que vous le fassiez sans leur consentement. Vous devez donc absolument limiter l’impact de vos actions.

1) Mettez à jour les mots de passe uniquement pour les administrateurs, les éditeurs, mais vous avez besoin de savoir qui sont ces utilisateurs. Envoyez-leur un e-mail, puis appliquez la restriction de mot de passe lors de la réinitialisation de la page de mot de passe/de la page d'enregistrement, etc. N'oubliez pas que ces formulaires peuvent être placés ailleurs sur le site (pensez également aux formulaires AJAX). Création d'une commande WP-CLI qui vous aide à exécuter ce plan plutôt que de charger l'environnement WP et d'exécuter des scripts.

2) Générer une table Rainbow qui consiste en un mot de passe haché pour une chaîne connue (mot de passe). Et ensuite, vous devez essentiellement faire correspondre le hachage avec le mot de passe d'un utilisateur particulier et évaluer la force de ce mot de passe. La génération de la table est l'étape la plus lente ici car vous devez hacher chaque mot de passe possible, le stocker sur disque (plusieurs Go en fonction de la longueur et de la combinaison de mots de passe que vous comptez), puis agir en fonction des résultats. 99% sur c'est une solution excessive pour vos besoins.

Conseil: Vous connaissez les sels et les secrets que nous avons dans le fichier wp-config.php. Les modifier invalide les sessions connectées, juste au cas où vous en auriez besoin.

1
Ashfame

Essayez de le forcer brutalement en utilisant une attaque par dictionnaire

Quelle meilleure façon d'évaluer la force de votre mot de passe? :-) Oui je sais, ça va prendre du temps ...

Autrement, vous pourriez simplement supposer que tous les mots de passe sont faibles (je dirais que ce sera une hypothèse très précise) et créer vous-même les mots de passe, stocker les hachages dans la base de données et donner le mot de passe en texte brut à les administrateurs utilisant un canal "sécurisé"

Sinon, supposons que tous les mots de passe sont faibles et obligent les administrateurs à les modifier, et utilisez un validateur de force de mot de passe très pointilleux sur le site Web lui-même.

1
Gianluca Ghettini