Comment pirater un WordPress, ou pas...

Par Geluchat, mar. 12 mai 2015, dans la categorie L'actualité commentée

pirater, pulseheberg, wordpress

Je ne sais pas si vous l'avez remarqué, mais il y a une semaine mon site était indisponible en raison d'une maintenance.

Tout a débuté le 1er Mai, je me rends comme chaque jour sur mon site pour les mises à jour quotidiennes et c'est alors qu'apparaît une belle deface (modification de la page d'accueil du site) faite par un groupe de h4x0r avec un message dans un anglais approximatif "Ure security is bad, go patch, blabla" ainsi qu'une petite mention disant que payer un hébergeur ne veut pas dire que l'on est en sécurité.

Sur le coup, j'imagine que l'un de mes plugins n'a pas été mis à jour et j'accuse le coup en me disant qu'après tout, ce n'est qu'un Wordpress.

Après une analyse un peu plus approfondie des logs j'en viens à une conclusion étrange : il semblerait qu'ils se soient tous simplement connectés avec mon compte administrateur.

Hop, je lance un scan antivirus sur mon PC, rien n'est détecté, même pas le moindre logiciel espion, pas un faux positif, rien.

J'en viens à penser que c'est peut-être une 0day mais le souvenir de la tête de mort sur la deface ainsi que les pseudos du type xXxD4rkAng3lxXx me rappellent vite que la faille ne doit pas être bien compliquée.

Je reçois plusieurs messages via IRC et Skype, un de mes amis m'a même conseillé en rigolant de lancer un armitage auto_pwn, je décide de rester plus calme en lançant un scan Nikto classique ainsi qu'une analyse des plugins Wordpress, peut être que quelque chose m'aurait échappé ...

C'est alors qu'une personne fort sympathique m'a contacté sur IRC pour me souhaiter bonne chance pour la remise en place de mon site. En discutant avec celle-ci, j'apprends que le port 31337 est ouvert sur le serveur qui m'héberge.

J'en viens alors à deux hypothèses remplies de questions :

  1. Ce shell vient-il de mon site?
  2. S'il n'est pas à moi que fait-il là ? Et quels sont ses droits sur le serveur ?

Afin de satisfaire ma curiosité je décide de m'y connecter, sachant que mon hébergeur mutualisé est lié au domaine snip.snap (ce n'est pas le domaine réel), je lance un petit :

$ nc snip.snap 31337.

Je vérifie l'id, il correspond au compte "touspour".

Command id Pulseheberg

Et là, descente en enfer, encore une fois les mêmes questions : "Quels sont ses droits sur le serveur ? Que fait-il là ?".

Pour la deuxième question il faudra que je demande au support de mon hébergeur, je décide donc de chercher la réponse à la première question.

Quels sont ses droits sur le serveur?

Quelques commandes me permettent de voir que je ne suis de toute évidence pas doté de droits root, ouf.

Grâce à un affichage de /etc/passwd je vois qu'un compte est créé pour chaque nouvel utilisateur.

Niveau sécurité, ça n'a pas l'air au top niveau mais au moins je ne peux pas me déplacer dans les dossiers des autres personnes.

Enfin, ça, c'était avant le drame ...

Toujours dans le but final de découvrir comment mon site a pu être piraté par notre chère Dr34mT34m, je lance à tout hasard un listing des répertoires via le shell sur mon répertoire à priori privé :

Listing directory dailysecurity

Et là, horreur, on ne peut pas se déplacer dans les répertoires mais on peut les lister.

Je rentre la commande :

$ cat /home/dailysec/public_html/wp-config.php

Des gouttes de sueurs commencent à perler sur mon front quand je vois apparaître :

Base de données Wordpress

A partir de ce moment, je choisis de me connecter sur le port 3306 (MySQL) et un beau OPEN se peint devant mes yeux.

L'attaque devient alors claire:

Que fait-il là?

Bonne question, pour y répondre j'ai dû batailler avec le support de Pulseheberg qui m'a envoyé balader :

Message PulseHeberg

Etant une personne très patiente et dotée d'un sens du sarcasme assez poussé, je lui ai bien sûr répondu :

"Étonnamment quand je fais un 'nc snip.snap 31337' j'obtiens un shell console. Vos audits de sécurités sont-ils sélectifs dans le genre "on laisse le port 31337 ouvert, ça fait classe" ? Je dis bien sûr tout ça avec le plus grand des humours mais ça me reste tout de même en travers de la gorge ..."

Le tout accompagné des screenshots présents dans l'article.

Ma réponse n'a pas dû plaire au "Développeur en chef" puisque c'est une autre personne qui m'a répondu que la faille était "patchée" et "bloquée niveau firewall".

Je cherche à en savoir plus sur l'origine de ce shell et j'obtiens une réponse pour le moins originale :

"Le port avait été ouvert lors d'une très ancienne intervention et n'avait pas été fermé correctement."

De toute évidence ma réponse au "Développeur en chef" avait tapé dans le mille : les pseudos audits de sécurité quotidiens n'avaient pas vu le port 31337 ouvert.

Pire, le firewall semblait être un firewall à DROP.

Pour ceux qui ne connaissent pas les firewalls à DROP sachez que cela correspond grossièrement à ajouter des règles interdisant d'ouvrir tel ou tel port, ce qui n'est absolument pas sécurisé.

Retour d'expérience chez PulseHeberg

Avant d'en venir à des conclusions hâtives, je souhaiterais vous éclairer sur les points essentiels de mon ressenti sur "l'expérience Pulseheberg".

Lors de mon inscription, j'ai commandé un VPS afin de gérer moi-même la sécurité du serveur.

La livraison s'est déroulée sans encombre. Par contre, mes 8 Go de RAM allouée ne semblaient pas correspondre au résultat fourni par la commande "free" qui m'indiquait 8To.

J'ai appris plus tard qu'ils avaient mal configuré la VM.

Je me demande ce que cela aurait fait si j'avais mis à profit ces 8To, sûrement une coupure générale de toutes les VM du parc.

Au bout d'un mois, le serveur ne répondait plus, même via ssh, en tant "qu'administrateur de VPS du weekend" et avec ma confiance en moi légendaire, j'ai pensé à une erreur de ma part, personne n'est infaillible.

J'ai donc totalement réinstallé le serveur et le problème a persisté. Après trois tickets au support, il m'a semblé que le problème les dépassait.

J'avais déjà avancé de l'argent sur leur service, il me restait aux alentours de 40 euros, c'est pourquoi j'ai décidé de changer de prestation vers un hébergement mutualisé, la suite vous la connaissez...

Si je devais choisir un point positif chez PulseHeberg cela serait les tickets au support, auxquels on reçoit une réponse dans un temps record, environ une quinzaine de minutes, j'ai toujours eu l'impression que le support prenait vraiment mon problème à cœur.

Malgré un support à l'écoute ainsi que des prix défiants toute concurrence, leurs compétences gâchent totalement le service.

On comprend bien qu'ils essaient de faire de leur mieux, en revanche, comme vous vous en doutez, je ne vous conseille pas cet hébergeur, sauf si vous ne vous intéressez pas à la sécurité de votre site.

Voilà, c’est déjà terminé, n’hésitez pas à commenter cet article ainsi qu'à rejoindre mon Twitter pour avoir des news sur le site et mon point de vue sur l’actualité de la sécurité informatique.

Geluchat.