Une fois n’est pas coutume, je testais la sécurité de mon site tournant actuellement sous WordPress grâce à l’excellent Kali Linux, digne successeur de Backtrack. Pour ceux qui débarquent, Kali est une distribution regroupant l’ensemble des outils nécessaires aux tests de sécurité d’un réseau, et notamment WPScan, qui va nous intéresser ici. Et vous allez voir que votre cher blog n’est pas si sécurisé que vous ne le pensez…
Tout d’abord, prenons un peu de recul. Vous avez certainement déjà essuyé une attaque de type Brute Force émanant de multiples pays tous plus exotiques les uns que les autres? Heureusement, vous avez pris la peine de changer le nom d’utilisateur par défaut de WordPress, admin, qui est souvent celui utilisé par les robots scannant votre site. Rien à craindre à priori donc. Maintenant, que se passerait-il si ledit robot pouvait trouver à coup sûr votre username si précieux?
Gageons que cela n’arrive pas, mais vous allez voir qu’il est TRÈS facile de l’obtenir sur une installation de WordPress non-sécurisée, et cela même sans WPScan ni quelque connaissance. Cela m’étonne même que cela ne soit pas intégré par les personnes malintentionnées gérant ces botnets…
Revenons donc à WPScan. Voici les différents options offertes par cet outil:
Vous voyez qu’il y a de quoi faire! :) Celle qui nous intéresse est la commande Enumerate Users. Lancez-la sur quasiment n’importe quel site que vous connaissez tournant sur WordPress, même les plus grands blogueurs laissent cette faille béante! La commande retourne les éventuelles failles laissées par WordPress lui-même ainsi que les plugins présents sur le site scanné, puis finalement énumère le(s) utilisateur(s) trouvé(s):
Voilà qui va simplifier le travail des robots travaillant par Brute Force… mais ce n’est pas tout, car il existe un moyen beaucoup plus simple de découvrir ces usernames: il suffit en effet de rajouter à la suite de l’url ce tout petit bout de code: /?author=1, ce qui donne http://example.com/?author=1. Si 1 ne donne rien, incrémentez jusqu’à tomber sur quelque chose du genre: http://example.com/author/nom_de_l’auteur. Si cette commande ne donne rien, c’est que le site est déjà patché contre cette attaque! Pour protéger vous aussi votre site sous WordPress, il suffit de rajouter le code suivant dans le .htaccess situé à la racine de votre dossier WordPress, en remplaçant l’url par une url de votre site bien sûr:
- RewriteCond %{REQUEST_URI} ^/$
- RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
- RewriteRule ^(.*)$ https://strak.ch? [L,R=301]
Cela aura pour effet de renvoyer à la racine de mon site toutes les requêtes de type /?author=. Essayez donc, vous verrez bien! ;) Enfin, comme preuve final, voici le résultat retourné par WPScan une fois le .htaccess mis à jour:
Voilà qui conclu ce tuto qui j’espère, servira à de nombreux blogueurs et blogueuses. N’hésitez pas à me contacter en cas de problème ou de question, je vous aiderai en fonction de mes moyens.
Salut,
Faut surtout utiliser un autre nom que le login pour poster ses articles…
Hello,
Tu veux dire avec un autre compte que celui de l’admin de base?
Non, je parle bien de choisir un pseudonyme de publication différent du login. Et de faire un login avec différents caractères pour au final tomber sur un « nom » qui n’a justement rien d’un nom ou d’une suite logique.
Merci pour ces petites astuces Strak. Jvais devoir modifier mon htaccess … :-). Après bruteforcer un mot de passe… faut se lever tôt quand même. Un minimum de caractère, quelques chiffres et cela est casi-impossible.
Mais de rien, profites-en! ^^ Pour le bruteforce, c’est sûr que c’est peu probable mais jamais impossible comme tu dis. Cette astuce a le mérite de fermer une autre entrée possible à un bot un peu plus malin, car ils se contentent généralement de bruteforcer l’user « admin ».