site-pirate2026-06-197 min de lecture

    Récupération Site Piraté : Guide Technique PME (WordPress/Prestashop)

    Découvrez comment réagir et récupérer votre site web après un piratage : étapes techniques pour nettoyer WordPress/Prestashop, supprimer les malwares, corriger les défacements et les ransomwares. Guide pratique pour PME.

    site piratérécupérationmalwarewordpress

    #Récupération d'un site piraté : guide technique pour PME (WordPress/Prestashop)

    Un site piraté est une urgence qui peut paralyser une PME : défacement, redirections malveillantes, vol de données clients ou injection de malware. Pour WordPress et Prestashop, les vecteurs d'attaque sont souvent similaires (plugins vulnérables, mots de passe faibles, core obsolète). Ce guide technique détaille les étapes concrètes de récupération, sans outil proprietary ni solution magique - uniquement des méthodes vérifiables et reproductibles.


    #1. Pré-requis : isoler et sauvegarder

    #1.1 Mettre le site hors ligne

    • Via .htaccess (si accès FTP/SSH) :
      # Désactiver l'accès public
      Order Deny,Allow
      Deny from all
      
    • Via le panel hébergeur : suspendre le domaine ou activer la "maintenance mode".
    • Via le DNS : modifier l'enregistrement A vers une IP neutre (ex: 127.0.0.1) si l'hébergeur ne répond pas.
    Attention
    Ne pas supprimer le site avant sauvegarde. Certains malwares se réactivent via des cron jobs ou des webhooks cachés.

    #1.2 Sauvegarde complète (même infectée)

    • Fichiers : archivez l'intégralité du répertoire racine via SFTP/SSH :
      tar -czvf backup_hacked_$(date +%Y%m%d).tar.gz /chemin/vers/le/site
      
    • Base de données : dump MySQL/MariaDB :
      mysqldump -u [user] -p[password] [db_name] > backup_db_$(date +%Y%m%d).sql
      
    • Logs : récupérez les logs Apache/Nginx des 30 derniers jours (/var/log/apache2/ ou équivalent).
    Astuce
    Stockez les sauvegardes sur un stockage externe (pas sur le même serveur). Utilisez des outils comme rclone pour un backup chiffré vers un cloud souverain.


    #2. Analyse des dégâts

    #2.1 Identifier le type d'infection

    SymptômeCause probableOutils de détection
    Défacement (page modifiée)Fichiers core/plugins altérésdiff, grep -r "hacked by"
    Redirections malveillantesCode injecté dans .htaccess, index.php, ou DBcurl -v http://votre-site.com
    Backdoor (accès persistant)Fichiers PHP suspects (wp-vcd.php, 1.php)find . -name "*.php" -newer /chemin/vers/wp-config.php
    Malware (drive-by download)Scripts obfusqués dans /wp-content/Scanners comme Wordfence (gratuit)
    Ransomware (fichiers chiffrés)Extension .locked, .encryptedVérifier les processus suspects (top, ps aux)

    #2.2 Scanner les fichiers

    • Recherche de patterns suspects :
      # Chercher des évals base64 (technique courante)
      grep -r "eval(base64_decode" /chemin/vers/le/site
      
      # Fichiers récemment modifiés (après la dernière mise à jour légitime)
      find . -type f -name "*.php" -mtime -7
      
    • Comparaison avec une version propre (pour WordPress) :
      # Télécharger la même version de WordPress depuis wordpress.org
      wget https://wordpress.org/wordpress-6.4.3.tar.gz
      tar -xzvf wordpress-6.4.3.tar.gz
      
      # Comparer avec diff (exclure wp-content/)
      diff -r wordpress/ /chemin/vers/le/site/ --exclude=wp-content
      
    Note
    Les backdoors sont souvent cachées dans des fichiers légitimes (ex: wp-config.php avec un code ajouté en fin de fichier). Vérifiez les tailles de fichiers anormales (ls -lh).


    #3. Nettoyage manuel (WordPress)

    #3.1 Remplacer les fichiers core

    1. Téléchargez la même version de WordPress depuis wordpress.org (vérifiez la version dans /wp-includes/version.php).
    2. Supprimez tous les fichiers sauf :
      • /wp-content/ (à nettoyer séparément)
      • wp-config.php (à auditer)
      • .htaccess (à remplacer par une version propre)
    3. Uploadez les fichiers core frais.

    #3.2 Nettoyer /wp-content/

    • Plugins/Themes :
      • Supprimez tous les plugins/thèmes inutilisés.
      • Pour les actifs : désactivez-les, puis remplacez par des versions fraîches depuis le repository officiel.
    • Uploads :
      # Chercher des fichiers PHP dans /uploads/ (normalement interdits)
      find wp-content/uploads/ -name "*.php" -exec rm -f {} \;
      
    • Fichiers suspects :
      # Exemple de suppression récursive de fichiers connus malveillants
      find . -type f \( -name "wp-vcd.php" -o -name "1.php" -o -name "hax0r.php" \) -exec rm -f {} \;
      

    #3.3 Nettoyer la base de données

    • Recherche d'injections :
      -- Chercher des URLs suspectes dans wp_posts
      SELECT * FROM wp_posts WHERE post_content LIKE '%http://%' AND post_content NOT LIKE '%votre-domaine.com%';
      
      -- Chercher des évals base64 dans wp_options
      SELECT * FROM wp_options WHERE option_value LIKE '%eval%';
      
    • Outils :
      • WP-CLI : wp db search-replace "malicious-code" "" (pour remplacer en masse).
      • phpMyAdmin : exportez la DB, éditez avec un éditeur de texte (ex: VS Code), puis réimportez.
    Attention
    Ne pas exécuter de requêtes DELETE sans backup. Testez d'abord en SELECT.


    #4. Nettoyage manuel (Prestashop)

    #4.1 Remplacer les fichiers core

    1. Téléchargez la même version de Prestashop depuis prestashop.com.
    2. Conservez :
      • /config/ (à auditer)
      • /img/ (médias)
      • /modules/ (à nettoyer)
      • /themes/ (à nettoyer)
      • /override/ (à vérifier)
    3. Remplacez tous les autres fichiers par la version propre.

    #4.2 Nettoyer les modules

    • Désactivez tous les modules via le backoffice (si accessible) ou en base de données :
      UPDATE ps_module SET active = 0;
      
    • Supprimez les modules non officiels ou obsolètes.
    • Pour les modules légitimes : téléchargez une version fraîche depuis l'Addons Marketplace.

    #4.3 Vérifier les fichiers critiques

    • /config/settings.inc.php : vérifier l'absence de code ajouté après ?>.
    • /override/classes/ : comparer avec une installation propre (les overrides peuvent cacher des backdoors).
    • Fichiers de cache :
      rm -rf /var/cache/* /cache/smarty/*
      

    #5. Post-nettoyage : sécurisation

    #5.1 Mises à jour obligatoires

    • WordPress :
      • Core, plugins, thèmes → tout mettre à jour.
      • Supprimer les plugins/thèmes inutilisés.
    • Prestashop :
      • Mettre à jour via le backoffice ou en ligne de commande :
        php bin/console prestashop:update
        
      • Vérifier les modules via le Security Advisories.

    #5.2 Renforcement des accès

    • Mots de passe :
      • Générez des mots de passe aléatoires (20+ caractères) pour :
        • Base de données (wp-config.php/settings.inc.php)
        • Comptes admin (WordPress/Prestashop)
        • FTP/SSH
      • Utilisez un gestionnaire comme Bitwarden ou KeePass.
    • 2FA :

    #5.3 Pare-feu et monitoring

    • WordPress :
      • Installer Wordfence (gratuit) pour :
        • Scanner quotidien des fichiers.
        • Blocage des IPs malveillantes.
        • Protection des connexions (limitation des tentatives).
    • Prestashop :
      • Module CrowdSec pour bloquer les attaques en temps réel.
      • Vérifier les logs Apache/Nginx avec fail2ban.
    Astuce
    Pour une protection souveraine, évitez les solutions cloud (Cloudflare, Sucuri) soumises au Cloud Act. Privilégiez des outils open source comme Wazuh pour le monitoring.


    #6. Restauration et tests

    #6.1 Restaurer depuis un backup propre

    • Si vous avez un backup pré-infection :
      1. Supprimez tous les fichiers du site.
      2. Restaurez le backup.
      3. Appliquez immédiatement toutes les mises à jour de sécurité.
    • Si le backup est infecté :
      • Utilisez le comme référence pour identifier les fichiers légitimes, mais ne restaurez pas directement.

    #6.2 Tester le site

    • Fonctionnel :
      • Vérifiez les pages clés (accueil, panier, checkout).
      • Testez les formulaires (contact, inscription).
    • Sécurité :
      • Scan avec VirusTotal (uploadez un fichier suspect).
      • Vérifiez les en-têtes HTTP avec curl -I https://votre-site.com (recherchez X-Frame-Options, Content-Security-Policy).
      • Soumettez le site à Google Search Console pour lever un éventuel blacklist.

    #7. Prévenir les réinfections

    #7.1 Bonnes pratiques PME

    • Sauvegardes automatiques :
      • Configurez des backups quotidiens hors serveur (ex: rsync vers un NAS ou un stockage souverain comme OVH Cloud Archive).
      • Testez la restauration régulièrement.
    • Maintenance proactive :
      • Désactivez l'édition de fichiers dans WordPress (define('DISALLOW_FILE_EDIT', true); dans wp-config.php).
      • Limitez les permissions des fichiers :
        find . -type f -exec chmod 644 {} \;
        find . -type d -exec chmod 755 {} \;
        
    • Surveillance :
      • Configurez des alertes sur les modifications de fichiers (outils : inotifywait, OSSEC).
      • Vérifiez les logs régulièrement :
        # Chercher des tentatives de connexion suspectes
        grep "POST /wp-login.php" /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr
        

    #7.2 Quand faire appel à un expert

    • Cas complexes :
      • Ransomware avec chiffrement des fichiers.
      • Backdoor persistante (réinfection en <24h).
      • Vol de données sensibles (RGPD).
    • Coût vs. temps :
      • Un diagnostic professionnel (ex: M-KIS) coûte ~2 500 € HT, mais évite des jours de downtime.
      • Pour un SOC managé souverain (monitoring 24/7), comptez 1 500 € de setup + 800-2 500 €/mois.
    Note
    Les assurances cyber couvrent souvent les frais de récupération. Vérifiez votre contrat.


    #8. Checklist de récupération (résumé)

    ÉtapeWordPressPrestashopOutil
    1. Isolation.htaccess denySuspendre domaine-
    2. Backuptar + mysqldumptar + mysqldump-
    3. Scangrep eval(base64find . -name "*.php"Wordfence
    4. Nettoyage coreRemplacer par version propreRemplacer par version propre-
    5. Nettoyage DBSELECT * FROM wp_options WHERE option_value LIKE '%eval%'Vérifier ps_configurationphpMyAdmin
    6. Mises à jourTout mettre à jourphp bin/console prestashop:update-
    7. Sécurisation2FA + pare-feu2FA + CrowdSecWordfence
    8. TestGoogle Search ConsoleGoogle Search Console-

    #Conclusion

    Récupérer un site piraté est un processus technique qui demande méthode et rigueur. Pour une PME, l'enjeu est double : reprendre le contrôle rapidement tout en évitant les réinfections. Les étapes clés sont :

    1. Isoler pour limiter les dégâts.
    2. Analyser pour comprendre le vecteur d'attaque.
    3. Nettoyer manuellement (ou restaurer depuis un backup propre).
    4. Sécuriser avec des mises à jour et des protections proactives.

    Si le site est critique (e-commerce, données clients), envisagez un audit de sécurité post-incident pour identifier les failles résiduelles. Pour les équipes internes, des outils open source comme Wazuh ou OSSEC permettent un monitoring souverain sans dépendre de solutions proprietary.

    Équipe M-KIS : Besoin d'un diagnostic NIS2 ou d'un audit ISO 27001 pour structurer votre cybersécurité ? Contactez-nous.


    Ressources complémentaires :

    Cet article vous parle ?

    On accompagne PME, ESN et éditeurs SaaS dans leur conformité ISO 27001 / NIS2 - accompagnement spécialisé, tarifs publics, 100 % open source.

    Auteur : Équipe M-KIS

    Vous avez un sujet sur ce périmètre ?

    Échange direct avec un ingénieur, pas d'intermédiaire commercial. On vous dit ce qui est faisable, à quel prix, et comment on s'y prend.