Tester WordPress Connects avec Hydra sur Kali Linux

Tester WordPress Connects avec Hydra sur Kali Linux

Introduction

Il existe des formulaires Web partout sur Internet. Même les sites qui ne permettent généralement pas aux utilisateurs réguliers de se connecter ont probablement une zone d'administration. Il est important lors de l'exécution et du déploiement d'un site pour s'assurer que l'accès à la déclenchement des mots de passe aux contrôles sensibles et aux panneaux d'administration est aussi sécurisé que possible.

Il existe différentes façons d'attaquer une application Web, mais ce guide va couvrir en utilisant HYDRA pour effectuer une attaque de force brute sur un formulaire de connexion. La plate-forme cible de choix est WordPress. C'est facilement la plate-forme CMS la plus populaire au monde, et il est également connu pour être mal géré.

Se souvenir, Ce guide est destiné à vous aider à protéger votre WordPress ou un autre site Web. Utiliser sur un site que vous ne possédez pas ou que vous avez l'autorisation écrite à tester est illégal.

Se mettre en place

Avant de faire quoi que ce soit, vous aurez besoin d'un site Web WordPress pour cibler. Ce guide suppose également que vous hébergez le site WordPress sur votre propre machine. Si vous avez besoin d'aide pour configurer la lampe sur votre machine, consultez nos guides de la lampe Debian Lamp et Ubuntu.

Vous pouvez le faire soit sur une installation Linux régulière, soit sur une installation Kali Linux. Si vous utilisez Kali, suivez la lampe Debian du guide source. Assurez-vous simplement que Hydra et Curl sont installés sur le système que vous choisissez. Ils sont disponibles dans la plupart des référentiels.

Si vous ne souhaitez vraiment pas utiliser votre installation régulière, vous pouvez certainement utiliser une autre machine, juste sous la cible IP pour LocalHost, et assurez-vous que la machine cible est accessible à partir de l'attaque.



La collecte d'informations

Une fois que vous avez été opérationnel, il est temps de trouver autant d'informations que possible sur l'installation que vous ciblerez. Cela signifie découvrir comment le formulaire de connexion est construit, ce qui se passe lorsque vous le soumettez, et peut-être où il va si la connexion est réussie.

Source HTML

Commencez par accéder à la page de connexion. Vous pouvez le trouver à LocalHost / WP-Login.php. Utilisez la capacité de votre navigateur pour inspecter le code source. Vous pouvez simplement cliquer avec le bouton droit quelque part sur la page et sélectionner «Afficher la source» ou «Inspecter l'élément.«Quoi qu'il en soit, vous pouvez afficher la source, elle sera simplement affichée de différentes manières.

Chercher vers le milieu du code. Vous cherchez les balises. C'est le formulaire de connexion réel. À l'intérieur de cette forme se trouvent quelques informations dont vous avez besoin.

Avant de collecter les informations, vérifiez si le formulaire envoie une demande Get ou Post. Dans la première ligne du formulaire, il devrait y avoir une option de méthode qui ressemble à ceci: méthode = "post". Dans le cas de WordPress, c'est un post.

Tout d'abord, trouvez l'entrée du nom d'utilisateur. Cela devrait ressembler à la ligne ci-dessous.

 

La partie dont vous avez besoin est le nom. Dans ce cas, c'est enregistrer.

Ensuite, recherchez l'entrée du mot de passe. Il devrait être similaire.

 

Encore une fois, trouvez le nom lequel est PWD.

Vous devez également identifier le bouton Soumettre afin que Hydra peut soumettre le formulaire.

 

Il est important de enregistrer à la fois le nom et le valeur.

Il y a une dernière pièce. Si vous n'avez pas remarqué, il y a deux champs cachés au bas du formulaire. L'un dit à WordPress de rediriger lorsque le formulaire est soumis et l'autre est un cookie que WordPress recherchera lorsque le formulaire sera soumis. Tu as besoin du cookie.

 

Encore une fois, notez le nom et valeur.



boucle

Même s'il y avait beaucoup d'informations à gagner en regardant la source HTML, il y a d'autres choses que vous devez savoir avant de déchaîner Hydra. Dans la plupart des cas, cependant, vous pourrez peut-être exécuter le test avec les informations que vous avez recueillies. Vous tenteriez simplement de vous connecter avec des informations d'identification incorrectes, d'enregistrer le message d'erreur et d'utiliser ce message comme condition de test défaillant dans HYDRA.

Cependant, WordPress est conçu différemment, et il n'y a pas vraiment de bon moyen de tester avec des tentatives infructueuses pour se connecter. Pour cette raison, vous devez tester une connexion réussie. Parce que vous pouvez maintenir votre propre installation WordPress et vous connecter, cela ne ferait pas de différence si vous testiez un système pour un client. La condition que vous trouvez localement devrait être universelle à WordPress.

Il y a aussi une autre ride ici. Vous souvenez-vous du champ de redirection caché dans la forme? Eh bien, cette redirection vous empêche d'utiliser une condition comme la présence du mot, «tableau de bord», pour tester également le succès. Vous allez devoir jeter un œil à la demande elle-même, et pour cela, il y a une boucle.

Afin de comparer, vous devez d'abord voir la page de connexion originale avec Curl.

$ curl -v http: // localhost / wp-login.php 

La majorité des informations sont les mêmes que le code source que vous avez examiné dans le navigateur. En haut, cependant, des informations sur la demande HTTP. Prenez note de ces informations. Vous allez devoir le comparer à une connexion réussie.

La prochaine chose que vous devez faire est de vous connecter avec succès avec Curl. Pour ce faire, vous aurez besoin de ce cookie de la demande précédente. Jetez un œil aux données HTTP et localisez une ligne qui ressemble à celle ci-dessous.

< Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/

Tu vas avoir besoin du wordpress_test_cookie = wp + cookie + chèque partie.

Très bien, vous allez maintenant avoir besoin des informations que vous avez recueillies à partir du HTML avec ce cookie pour faire la demande. C'est à quoi ça devrait ressembler.

curl -v --data 'log = username & pwd = realpassword & wp-sunumit = log + in & testcookie = 1' --cookie 'wordpress_test_cookie = wp + cookie + check' http: // localhost / wp-lingin.php 

Donc, vous avez la même demande de base qu'avant, mais cette fois, vous utilisez le --données drapeau et le --biscuit Flag pour passer les données de formul.

Cette chaîne de données, log = username & pwd = realPassword & wp-submit = log + in & testcookie = 1 correspond directement aux informations que vous avez recueillies à partir du HTML. Il dit de brancher la valeur «nom d'utilisateur» dans l'entrée appelée enregistrer et la valeur «realpassword» dans l'entrée appelée PWD. Assurez-vous d'utiliser le nom d'utilisateur et le mot de passe réels pour vous connecter. Ensuite, utilisez la soumission avec le nom WP-Sumit et une valeur de Connexion pour soumettre les données. À la fin est testcookie avec une valeur de 1. C'est juste dire à Curl de soumettre cela avec le reste des données de formulaire.

Lorsque Curl termine la demande, vous ne verrez vraiment aucun HTML, juste beaucoup d'informations sur la demande. N'oubliez pas que la redirection qui a fait des tests avec «tableau de bord» ne fonctionne pas comme une condition de test? Eh bien, maintenant la redirection elle-même sera la condition de test. Jetez un œil à la ligne ci-dessous.

< Location: http://localhost/wp-admin/

Cette ligne n'était pas dans la demande précédente. Il ne contient pas non plus d'informations spécifiques liées à cet utilisateur ou à la connexion. Cela signifie que ce sera toujours être présent lors d'une connexion WordPress réussie, ce qui en fait la condition de réussite parfaite pour tester avec.



Test avec Hydra

Enfin, vous avez tout ce dont vous avez besoin pour tester vos mots de passe avec Hydra. Le point de ce guide n'est pas tant pour couvrir la syntaxe Hydra, mais il décomposera la commande utilisée. Si vous souhaitez en savoir plus sur Hydra, consultez le guide SSH qui va dans plus de détails.

Il n'y a vraiment qu'une seule commande dont vous avez besoin pour Hydra pour exécuter les noms d'utilisateur et les mots de passe possibles pour tester la sécurité de votre site WordPress. La chose la plus simple à faire est de jeter un œil à la commande et de la décomposer.

$ Hydra -l Listes / USRNAME.txt -p listes / pass.txt localhost -v http-form-post '/ wp-login.php: log = ^ utilisateur ^ & pwd = ^ pass ^ & wp-submit = log dans & testcookie = 1: s = emplacement ' 

D'accord, donc c'est évidemment beaucoup à prendre en même temps. Le -L Flag dit à Hydra d'utiliser une liste de mots de noms d'utilisateur à listes / usrname.SMS. De même, le -P Flag indique à Hydra d'utiliser une liste de mots de mots de passe à listes / passes.SMS. hôte local dit à Hydra de cibler localhost, et -V lui dit de enregistrer chaque test dans la sortie de la console.

Le reste de la commande traite de la demande HTTP elle-même. http-form-post active le module HYDRA pour gérer les formulaires HTTP avec une méthode post. Rappelez-vous avant que le formulaire de connexion WordPress soit en face d'un post de. La chaîne qui suit contient tous les paramètres que Hydra. Vous devez remarquer qu'il est très similaire à celui utilisé pour vous connecter via Curl.

La chaîne se compose de différentes sections séparées par :. La première partie est l'adresse exacte qui est testée, / WP-Login.php. La partie suivante est presque exactement comme celle utilisée par Curl. Il transmet des valeurs dans la forme et la soumet, y compris le cookie. Au lieu de passer des valeurs littérales, Hydra utilise réellement des variables. Avertir log = ^ utilisateur ^ et pwd = ^ pass ^. Ce sont des variables séparées avec le caractère de carotte qui prennent les valeurs des listes de mots et les transmettent dans la demande de chaque test que Hydra exécute.

Le tout dernier morceau de la chaîne est la condition de test. S signifie qu'il teste le succès. Si vous vouliez tester l'échec, vous utiliseriez F. Vous définissez ce égal au mot ou à la phrase qu'il teste. Pensez si ça ressemble presque grep.

Lorsque vous exécutez ceci, vous devriez obtenir un résultat positif, à condition que le nom d'utilisateur et le mot de passe sont dans les listes de mots que vous avez fournies.

Réflexions de clôture

Tout d'abord, félicitations pour avoir traversé tout cela. Si vous avez réussi, vous avez maintenant une méthode solide pour tester la force du mot de passe de vos comptes d'utilisateurs WordPress.

Ce guide a été adapté à WordPress, mais vous pouvez facilement suivre les mêmes étapes pour tester d'autres formulaires Web. Si vous exécutez une application Web avec plusieurs utilisateurs, c'est certainement une bonne idée de faire
sûr qu'ils utilisent des mots de passe forts. Cela peut vous aider à informer votre politique de mot de passe. Encore une fois, assurez-vous que vous ne testez toujours qu'avec la permission.

Tutoriels Linux connexes:

  • Liste des meilleurs outils Kali Linux pour les tests de pénétration et…
  • Comment doubler Kali Linux et Windows 10
  • Ubuntu 20.04 WordPress avec installation Apache
  • Ubuntu 20.04: WordPress avec l'installation de Nginx
  • Installation de WordPress OpenLitesPeed
  • Comment installer Kali Linux dans VMware
  • Utilisez WPSCAN pour scanner WordPress pour les vulnérabilités sur Kali
  • Configuration du serveur Kali HTTP
  • Comment casser le mot de passe zip sur Kali Linux
  • Durcissant kali linux