Site vérolé et script de (pré)nettoyage

Hello

Je fais suite aux divers retours concernant les sites vérolés et comment les traiter.
Ayant eu à traiter en masse des spip vérolés, je propose un script de pré-nettoyage.

Il s’agit d’un script qui ne fera pas de magie mais automatise un certain nombre d’actions et pointe du terminal les endroits à regarder plus spécifiquement.

Le code est disponible sur spip-contrib-outils/spip_cleaner: Clean spip instance after some hack - spip_cleaner - SPIP on GIT
C’est un unique script bash à exécuter directement sur un serveur. Il suffit d’avoir un accès ssh que soit sur l’ensemble du serveur ou bien un espace web restreint.

Par défaut le script ne prend aucune initiative, il analyse l’arborescence donnée et informe des problèmes éventuels.

Sur demande explicite, le script peut aussi faire certaines actions qui sont :

  • correction du spip.php, déploiement de l’écran de sécurité et du spip_loader à jour
  • purge des répertoires temporaires (tmp, local)
  • purge de divers fichiers explicitement considérés comme invalides
  • recherche de fichies ayant des contenus malicieux

Le script ne supprime pas les fichiers considéré comme ayant un code potentiellement malicieux. Entre les fichiers contenant base64_decode.
En mode verbeux, les fichiers identifiés sont listés. Le reste doit être traité manuellement.

Sur le cas d’un serveur complet, je fais étape par étape :

  • serveur:~ wget https://git.spip.net/spip-contrib-outils/spip_cleaner/raw/branch/master/clean_spip.sh -O clean_spip.sh
  • serveur:~ chmod +X clean_spip.sh
  • serveur:~ ./clean_spip -p /var/alternc (par défaut le chemin vaut /var/www)
    Dry run enabled , action will not be executed
    Search SPIP in /var/www/
    SPIP found : /var/www/alternc/i/intour/www/intour.net
    SPIP found : /var/www/alternc/r/reducdu29/www/reducdu29.org
    SPIP found : /var/www/alternc/r/reducdu01/www/reducdu01
    Some files with ecrire/.rnd pattern name found
    SPIP found : /var/www/alternc/r/reducdu42/www/reducdu42.fr
    SPIP found : /var/www/alternc/r/reducdu69/www/reducdu69.fr
    Some files with data.php pattern name found
    SPIP found : /var/www/alternc/r/reducdu35/www/reducdu35.com
  • Ensuite je passe en mode verbeux sur le(s) répertoire(s) à contrôler
    serveur:~ ./clean_spip.sh -p /var/www/alternc/r/reducdu69/www/reducdu69.fr --verbose
  • Si cela me semble bon, je lance une purge globale
    serveur:~ ./clean_spip.sh -p /var/www/alternc/r/reducdu69/www/reducdu69.fr -d 0
  • Enfin je traite les fichiers recalcitrants manuellement

Sur le cas d’un serveur où juste un accès ssh a été donné pour le site, cela est plus simple :

  • serveur:~ wget https://git.spip.net/spip-contrib-outils/spip_cleaner/raw/branch/master/clean_spip.sh -O clean_spip.sh
  • serveur:~ chmod +X clean_spip.sh
  • serveur:~ ./clean_spip -p . (par scanner à partir du répertoire courant)
  • ensuite c’est comme le cas précédent

j’espère que cela pourra être utile à certaines et certains.

Pour toute demande, retours,… je vous invite à ouvrir un ticket sur la forge :slight_smile:

Km

1 « J'aime »

Bonjour

Le script a un peu évolué et propose maintenant l’option -l ou --listing qui est une option intermédiaire entre le mode par défaut et le mode verbeux.
Ce qui nous intéresse c’est d’avoir la liste des fichiers à nettoyer tout de suite. On évite de se noyer dans les informations verbeuses du détail de l’exécution du script.

L’analyse de la partie crontab est simplifiée également. Maintenant le script met en alerte uniquement si pour le crontab de l’utilisateur serveur associé au site est actif ou non.

Bonne journée

1 « J'aime »