Attaque wordpress xmlrpc

wpattaque
wpattaque

Aujourd’hui, samedi 27 août 2016, je suis victime de ma première cyber attaque.(du moins visible)

Symptômes

Un jour, je tape l’url de mon blog et un joli message « 502 BAD GATEWAY » s’affiche.
Ayant eu déjà des déboires avec mon DNS,je décide de tester en tapant directement  l’IP de mon VPS dans le navigateur .

Et là,rebelote, même message !!

Euh,direction le ssh de mon terminal pour vérifier les services et les logs de mon serveur web.
(Debian + serveur web nginx).

Diagnostic

Jeter un coup d’oeil au log des connexions du serveur nginx.

tail -f /var/log/nginx/access.log

191.96.249.54 - - [27/Aug/2016:17:29:09 +0200] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [27/Aug/2016:17:29:09 +0200] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [27/Aug/2016:17:29:09 +0200] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [27/Aug/2016:17:29:10 +0200] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [27/Aug/2016:17:29:10 +0200] "POST /xmlrpc.php HTTP/1.0" 502 574 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [27/Aug/2016:17:29:12 +0200] "POST /xmlrpc.php HTTP/1.0" 502 574 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Je n’ai mis qu’un extrait mais c’est comme ça sur des centaines de lignes, je ne rêve pas je suis en train de me faire DDOS ou quoi?
Un ptit coup de GeoIPTool pour vérifier la provenance des deux adresses IP « 191.96.249.53 » et « 191.96.249.54 ».
A priori 2 ip chiliennes qui ne me paraissent pas des plus amicales.
Ce ne sont pas des robots d’indexation au vu de la fréquence de leur requête, sur l’unique URL /xmlrpc.php.
Un ptit coup de google pour m’apercevoir que c’est un classique du genre :
l’attaque XMLRPC, apparemment patchée dans WordPress à partir des versions 4.0.
Et pourtant je suis en 4.6 !

En quoi consiste cette attaque ?

Cette attaque consiste à bruteforcer le login de la page WordPress d’administration xmlrpc.php.
Elle exploite une faille dans le protocole xmlrpc activé depuis la version 3.5 de WordPress.
Mais auparavant un attaquant devait initialiser 1000 connexions pour tester 1000 combinaisons d’identifiants login/mot de passe. Dorénavant, il peut le faire avec une seule requête http !
L’amplification de cette attaque permet donc au pirate d’être beaucoup plus efficace et de passer au travers des restrictions habituelles côtés serveurs. En effet, lorsqu’un nombre trop important de connexions sont demandées avec la même IP , le serveur bloque l’IP pour un certain temps avant qu’il puisse redemander la page.

Arrêter l’attaque

  • Arrêter le service web:

    service nginx stop

  • Désactiver le protocole xmlrpc dans wordpress

    on peut utiliser une extension comme « disable xmlrpc » c’est bien pratique.

  • Bloquer les IP avec le PAREFEU

On rajoute les règles au pare feu linux « iptables »

iptables -I INPUT -s 191.96.249.54 -p tcp –dport 80 -j DROP
iptables -I INPUT -s 191.96.249.54 -p tcp –dport 443 -j DROP

Mais cette méthode est un poil contraignante , car il faudra ajouter autant de règles que d’IP malveillantes.

  • Installer l’extension wordpress: IP GEO BLockTrès simple à paramétrer et rudement efficace puisque à ce jour, je n’ai pas eu de récidive des attaques. Elle permet même de loguer précisément les différentes tentatives de bruteforce.
  • Autres pistes envisageables mais qui doivent faire l’objet de billets plus complets:

#bannir avec fail2ban

#bannir avec pgl

Conclusion

Utiliser un CMS comme wordpress expose aux dangers de l’internet. Mon blog n’étant même pas référencé !
Les scans de WP et les outils d’automatisation pour bruteforcer facilite l’exploitation de ses failles.
C’est pourquoi cette petite mésaventure, nous rappelle qu’il est important de surveiller les services sensibles tels que web apache ou nginx et de réagir au plus vite en bannissant les IP responsables de l’attaque.

Dans notre cas , il convient de désactiver le protocole XMLRPC. Au passage on fait une croix sur la mise à jour de notre site wordpress via l’application smartphone :-(.

Dans la foulée, contrôler les flux entrants sur le serveur avec des règles dans le parefeu , des restrictions au niveau des services web .(sur l’ip, le nombre de connexions etc…)

Be the first to comment

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*