Attaques sur xmlrpc.php wordpress

wordpress-logo

Dans cet article nous verrons comment se protéger des attaques sur xmlrpc.php WordPress grâce à Fail2ban.

Hier soir, à ma grande surprise, je reçois un mail automatique de Zabbix, m’indiquant que le CPU de ma VM contenant mon site est à 100% ! Étonnant pour un site où les seules connexions sont celles de mon téléphone, de chez moi et mon boulot !

Pensant à une attaque de type DOS, je regarde avec attention les fichiers « error.log » d’Appache, rien de concret… Je remarque alors la taille anormale des fichiers access.log…

xmlrpc.php

Je découvre alors des centaines de connexions de ce type :

"POST /xmlrpc.php HTTP/1.1" 200 635 "-" "-"

Après quelques recherches sur Internet, je me rends compte que c’est une attaque de type Brutforce visant une faille XMLRPC dans WordPress. En plus de cela, l’attaque s’apparente également à une attaque de type DOS, des centaines d’adresses IP font des requêtes de type POST simultanément, la charge du serveur devient alors critique. La grande subtilité de cette attaque, réside dans le fait que l’attaque Brutforce est effectuée sur le fichier Xmlrpc.php et non le classique wp.login, qui lui est généralement bien protégé!

Cette faille toucherait exclusivement les WordPress inférieurs à la version 4.0, la faille aurait été corrigée… je suis en 4.0.1 !

Fail2ban

Plus une seconde à perdre, un filtre fail2ban supplémentaire s’impose :

Il faut configurer le filtre :
nano /etc/fail2ban/filter.d/xmlrpc.conf

[Definition]
failregex = ^ .*POST .*xmlrpc\.php.*
ignoreregex =

On configure à présent la prison :
nano /etc/fail2ban/jail.conf

[xmlrpc]
enabled = true
port = http,https
filter = xmlrpc
action = iptables[name=xmlrpc, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
maxretry = 2
bantime = 100000

Résultat

Voici le résultat de ce nouveau filtre (/var/log/fail2ban.log) :

2014-11-27 22:46:23,699 fail2ban.actions: WARNING [xmlrpc] Ban 85.30.75.21
2014-11-27 22:47:30,791 fail2ban.actions: WARNING [xmlrpc] Ban 188.26.150.224
2014-11-27 22:52:38,178 fail2ban.actions: WARNING [xmlrpc] Ban 89.134.74.108
2014-11-27 22:54:38,335 fail2ban.actions: WARNING [xmlrpc] Ban 41.63.3.50
2014-11-27 22:59:03,665 fail2ban.actions: WARNING [xmlrpc] Ban 2.90.100.132
2014-11-27 23:04:55,105 fail2ban.actions: WARNING [xmlrpc] Ban 119.92.155.208
2014-11-27 23:12:29,665 fail2ban.actions: WARNING [xmlrpc] Ban 189.235.185.254
2014-11-27 23:20:54,280 fail2ban.actions: WARNING [xmlrpc] Ban 89.139.18.249
2014-11-27 23:27:11,750 fail2ban.actions: WARNING [xmlrpc] Ban 65.124.232.124
2014-11-27 23:34:39,313 fail2ban.actions: WARNING [xmlrpc] Ban 85.65.3.186
2014-11-27 23:35:30,392 fail2ban.actions: WARNING [xmlrpc] Ban 46.117.111.30
2014-11-27 23:36:20,469 fail2ban.actions: WARNING [xmlrpc] Ban 89.134.175.163
2014-11-27 23:38:58,673 fail2ban.actions: WARNING [xmlrpc] Ban 115.134.147.167
2014-11-27 23:40:07,772 fail2ban.actions: WARNING [xmlrpc] Ban 194.224.254.178
2014-11-28 00:02:09,377 fail2ban.actions: WARNING [xmlrpc] Ban 89.152.232.240
2014-11-28 00:02:14,403 fail2ban.actions: WARNING [xmlrpc] Ban 41.98.108.194
2014-11-28 00:03:19,496 fail2ban.actions: WARNING [xmlrpc] Ban 79.177.23.56
2014-11-28 00:05:44,695 fail2ban.actions: WARNING [xmlrpc] Ban 190.80.132.211
2014-11-28 00:11:14,112 fail2ban.actions: WARNING [xmlrpc] Ban 109.67.176.157
2014-11-28 00:15:57,475 fail2ban.actions: WARNING [xmlrpc] Ban 88.132.159.6
2014-11-28 00:26:22,263 fail2ban.actions: WARNING [xmlrpc] Ban 92.36.187.115
2014-11-28 00:32:21,702 fail2ban.actions: WARNING [xmlrpc] Ban 46.185.246.45
2014-11-28 00:44:37,624 fail2ban.actions: WARNING [xmlrpc] Ban 202.130.124.130
2014-11-28 00:48:43,943 fail2ban.actions: WARNING [xmlrpc] Ban 103.242.219.25
2014-11-28 01:03:06,006 fail2ban.actions: WARNING [xmlrpc] Ban 177.134.167.131
2014-11-28 01:05:44,210 fail2ban.actions: WARNING [xmlrpc] Ban 84.108.100.122
2014-11-28 01:07:14,337 fail2ban.actions: WARNING [xmlrpc] Ban 88.103.220.222
2014-11-28 01:08:51,472 fail2ban.actions: WARNING [xmlrpc] Ban 119.94.78.202
2014-11-28 01:34:36,343 fail2ban.actions: WARNING [xmlrpc] Ban 145.2.230.218
2014-11-28 01:35:21,418 fail2ban.actions: WARNING [xmlrpc] Ban 201.248.122.145
2014-11-28 01:44:45,097 fail2ban.actions: WARNING [xmlrpc] Ban 88.246.57.122
2014-11-28 01:52:19,667 fail2ban.actions: WARNING [xmlrpc] Ban 125.251.12.3
2014-11-28 01:55:46,937 fail2ban.actions: WARNING [xmlrpc] Ban 112.218.212.218
2014-11-28 01:58:14,136 fail2ban.actions: WARNING [xmlrpc] Ban 61.15.184.21
2014-11-28 02:04:49,642 fail2ban.actions: WARNING [xmlrpc] Ban 94.4.28.168
2014-11-28 02:06:57,819 fail2ban.actions: WARNING [xmlrpc] Ban 91.93.223.7
2014-11-28 02:15:23,444 fail2ban.actions: WARNING [xmlrpc] Ban 190.162.67.246
2014-11-28 02:15:25,462 fail2ban.actions: WARNING [xmlrpc] Ban 109.186.121.241
2014-11-28 02:27:27,366 fail2ban.actions: WARNING [xmlrpc] Ban 84.228.135.40
2014-11-28 02:32:12,739 fail2ban.actions: WARNING [xmlrpc] Ban 93.173.173.79
2014-11-28 02:39:39,319 fail2ban.actions: WARNING [xmlrpc] Ban 222.124.189.90
2014-11-28 02:57:40,681 fail2ban.actions: WARNING [xmlrpc] Ban 71.164.231.54
2014-11-28 02:58:46,778 fail2ban.actions: WARNING [xmlrpc] Ban 1.236.135.140
2014-11-28 03:06:57,397 fail2ban.actions: WARNING [xmlrpc] Ban 119.154.203.19
2014-11-28 03:21:53,524 fail2ban.actions: WARNING [xmlrpc] Ban 36.73.98.179
2014-11-28 03:24:10,707 fail2ban.actions: WARNING [xmlrpc] Ban 36.75.107.51
2014-11-28 03:33:06,396 fail2ban.actions: WARNING [xmlrpc] Ban 103.23.224.151
2014-11-28 03:42:29,130 fail2ban.actions: WARNING [xmlrpc] Ban 50.136.39.115
2014-11-28 03:49:17,659 fail2ban.actions: WARNING [xmlrpc] Ban 121.97.2.202
2014-11-28 03:51:58,879 fail2ban.actions: WARNING [xmlrpc] Ban 182.185.236.218
2014-11-28 03:55:08,134 fail2ban.actions: WARNING [xmlrpc] Ban 79.179.149.6
2014-11-28 04:28:26,655 fail2ban.actions: WARNING [xmlrpc] Ban 115.143.25.12
2014-11-28 04:29:21,744 fail2ban.actions: WARNING [xmlrpc] Ban 109.72.63.80
2014-11-28 04:47:52,152 fail2ban.actions: WARNING [xmlrpc] Ban 14.32.120.71
2014-11-28 04:57:32,896 fail2ban.actions: WARNING [xmlrpc] Ban 49.145.30.25
2014-11-28 05:07:13,644 fail2ban.actions: WARNING [xmlrpc] Ban 93.35.226.27
2014-11-28 05:10:13,882 fail2ban.actions: WARNING [xmlrpc] Ban 212.36.207.2
2014-11-28 05:13:43,159 fail2ban.actions: WARNING [xmlrpc] Ban 121.147.84.111

Plutôt efficace non? Et encore, je n’ai mis qu’une partie du LOG, l’attaque ayant commencé vers 19h et est toujours en cours à la publication de l’article!

Il existe d’autres moyens de se protéger de ces attaques, via le fichier htaccess par exemple. Je vous conseille de lire ceci pour plus d’infos!

Bookmarquez le permalien.
  • Fanny Sylvestre

    Bonjour

    j’ai mis en place ce système mais je ne trouve pas le fichier fail2ban.log. Dois-je le créer ? Je pensais que ça le créerait en fait. Je vais le créer pour vois mais j’ai un doute.

    Et en recherchant sur le serveur partout où il y aurait ce fichier, je l’ai trouvé dans les wordpress visiblement c’est normal, mais ce qui m’étonne c’est de le trouver dans ovh/www/postfixadmin/ c’est normal ça ? J’hésite à le virer du coup puisque visiblement c’est un fichier lié à WordPress je ne comprends pas ce qu’il vient faire dans postfix. Est-ce que ça pourrait expliquer les spams en masse envoyés depuis mon serveur qui a fait que OVH a bloqué mes envois de mail ?

    merci en tout cas ça a l’air top !

  • powtos

    Salut,

    Désolé pour le temps de réponse, mais ce site est un peu laissé à l’abandon pour l’instant!

    le fichier log de fail2ban se créer automatiquement après l’installation du paquet, dans debian il se situe dans /var/log.