Après update 4.4.21 encore des fichiers infiltrés

Des sites non-mis à jour se sont fait pirater ce week-end.
Sauf quelques uns j’ai pu tout rétablir.
Mais il reste peut-être des fichiers cachés dans l’arborescence, peut-être chez vous aussi ?

Sur des sites typiques, j’ai d’abord vu ce qui n’allait pas (des fichiers inconnus NX_.php image_cache.php un dossier images/ à la racine, des choses aussi dans lib/ et IMG/ et un /index.php énorme)

Après avoir retiré ça et mis à jour, j’ai comparé sur une recherche mes fichiers en prod:

grep -rl « shell_exec|passthru|system( » .
./plugins/auto/pages/v1.5.7/prive/themes/draft-note.php
./plugins/auto/agenda/v5.2.1/prive/themes/spip/images/archive-note.php
./plugins/auto/agenda/.v3.14.10.bck/prive/squelettes/navigation/webhook-listener.php
./plugins-dist/medias/lib/getid3/write.metaflac.php
./plugins-dist/medias/lib/getid3/getid3.php
./plugins-dist/medias/lib/getid3/module.audio.shorten.php
./plugins-dist/medias/lib/getid3/getid3.lib.php
./plugins-dist/medias/lib/getid3/write.vorbiscomment.php
./vendor/interface-definer.php
./vendor/symfony/polyfill-php83/Resources/stubs/system_loader.php
./vendor/symfony/service-contracts/Test/internal_core.php
./vendor/symfony/dependency-injection/Exception/secure_auth.php
./vendor/symfony/polyfill-php80/Resources/stubs/access_node.php
./vendor/spip-league/composer-installer/src/PluginsClearCache.php
./vendor/spip-league/composer-installer/src/BaseDirectories.php
./vendor/spip-league/composer-installer/src/Switch/runtime_core.php
./vendor/spip-league/composer-installer/src/Switch/Analyzer.php
./vendor/spip-league/composer-installer/src/WheelsClearCache.php
./vendor/spip-league/composer-installer/src/AssetsClearCache.php
./vendor/spip-league/kernel/src/Kernel.php
./ecrire/CHANGELOG.md
./ecrire/public/spip_cache.php
./ecrire/public/img_cache.php
./ecrire/inc/livrer_fichier.php

Et ce qu’il y a dans la distri 4.4.21

./plugins-dist/medias/lib/getid3/write.metaflac.php
./plugins-dist/medias/lib/getid3/getid3.php
./plugins-dist/medias/lib/getid3/module.audio.shorten.php
./plugins-dist/medias/lib/getid3/getid3.lib.php
./plugins-dist/medias/lib/getid3/write.vorbiscomment.php
./vendor/spip-league/composer-installer/src/PluginsClearCache.php
./vendor/spip-league/composer-installer/src/BaseDirectories.php
./vendor/spip-league/composer-installer/src/Switch/Analyzer.php
./vendor/spip-league/composer-installer/src/WheelsClearCache.php
./vendor/spip-league/composer-installer/src/AssetsClearCache.php
./vendor/spip-league/kernel/src/Kernel.php
./ecrire/CHANGELOG.md
./ecrire/inc/livrer_fichier.php

​Je crois que ceux qui restent dans dans la Distri avec ces codes PHP qui agissent avec des commandes systèmes sont légitimes, même si on peut se poser la question de tels contournement.

Que penser de tout ça ? Ai-je pu rater quelque chose ?
Qu’aviez-vous dans vos versions 4.1.x < 4.1.21 piratées ?

J.

vu aussi dans plugins/auto/nospam/nospam/ > un dossier complet qui ne doit pas exister : cache.php index.php … à virer.

Pour savoir si ce sont des fichiers de SPIP originaux, regarde leur date de modification. Si elle est postérieur au 20/08, alors ces fichiers sont modifiés.

Sans danger, tu peux écraser tous les fichiers de SPIP en récupérant, avant de mettre à jour, la même version dans Notes de publication - SPIP (tu as le numéro de version dans le fichier ecrire/inc_version.php (code $spip_version_branche = '4.4.20';)

1 « J'aime »

Bonjour,
Un site d’association à qui je donne un coup de main fait partie des « victimes ».
Pour le numéro de version, il me semblait que c’était dans local/config.txt ? Ce fichier et la ligne $spip_version_branche dans inc_version.php me donnent, l’un 4.4.6, l’autre 4.4.15.
Il y a en effet NX_.php et img_cache.php qui semblent les vecteurs d’attaque initiaux. Ce dernier, téléchargé sur l’hébergement via des requêtes qui passaient par le formulaire de recherche, ressemble à un web shell, donc ensuite l’attaquant a pu faire à peu près ce qu’il voulait.
Il y a également un index.php énorme avec du code compilé et quantité de fichiers bizarres dans /tmp/cache
Tout cela semble être arrivé > 20-08-2026.
Je tenterai bien de supprimer les fichiers modifiés après cette date, sans certitude que cela suffirait.
F.

Bonjour @fanfan si dans inc_version.php tu n’as pas $spip_version_branche = '4.4.21'; c’est que tu n’as pas mis à jour en 4.4.21 et il est urgent de le faire.
Le plus rapide est avec spip_loader.php.

Merci pour la réponse.
Pour le moment, spip_loader.php me fait une erreur 500.

Il s’agit bien du dernier spip_loader documenté et à télécharger à partir de Utiliser spip_loader - SPIP ?

Cela fonctionne avec l’hébergement complètement nettoyé. Mais mon plan était de restaurer une ancienne version du site (vulnérable, donc) que j’avais archivée puis de faire passer spip_loader tout de suite après pour mettre à jour.

Cela fonctionne après avoir enlevé l’ancien spip_loader_config.php

Oui il faut appliquer la nouvelle syntaxe pour le fichier de config Utiliser spip_loader - SPIP

C’est pire que ça… il y avait en première ligne :

<? php
1 « J'aime »