Nettoyer un site WordPress infecté par un script shell

Il n’est pas rare de voir des sites WordPress infectés par des scripts shell, qui peuvent exploiter certaines failles du core WordPress, de plugins ou de thèmes.

Ces attaques de WordPress sont courantes et concernent les sites qui n’ont pas été protégés par un antivirus ou un plugin de sécurité comme iThemes Security.

Il peut donc arriver que certains malwares infestent votre site WordPress, de manière automatisée si certaines composantes (core, plugins, themes) ne sont pas mis à jour régulièrement.

La technique détaillée ci-dessous vous permet d’identifier et de supprimer ces fichiers dans vos dossiers WordPress.

Important: avant de commencer, faites une sauvegarde du site: fichiers et base de données.

Étape 1 : suppression des fichiers potentiellement infectés

Sur l’installation en question, ces fichiers n’appartiennent pas à WordPress ou sont infectés. Nous les supprimons à vue:

rm 1index.php index.php db.php del.php wikindex.phpCode language: CSS (css)

Nous supprimons également les répertoires wp-admin et wp-includes de WordPress car souvent des fichiers malfaisants sont copiés dedans:

rm wp-admin -rf
rm wp-includes -rf

Étape 2 : réinstallation de WordPress

On réinstalle WordPress:

wp core download --force --skip-content --locale=fr_FR --allow-root

Étape 3 : vérification de la checksum de l’installation

On vérifie que les fichiers et dossiers du site sont bien intégres et correspondent à la checksum officielle:

wp core verify-checksums --allow-root
wp plugin verify-checksums --all --allow-root

Étape 4 : mise à jour forcée de tous les plugins actifs

Nous forçons la mise à jour de tous les plugins actuellement activés. Cela les supprime du serveur, puis les re-télécharge depuis le dépôt WordPress officiel et les active:

wp plugin install $(wp plugin list --field=name --allow-root) --force --allow-rootCode language: JavaScript (javascript)

Pensez également à supprimer les plugins inactifs de l’installation.

Étape 5 : mise à jour forcée des thèmes

De la même manière que nous réinstallons les plugins, nous forçons la réinstallation des thèmes:

wp theme install $(wp theme list --field=name --allow-root) --force --allow-rootCode language: JavaScript (javascript)

Étape 6 : mise à jour des droits des fichiers et répertoires

Mettons maintenant les droits sécurisés aux fichiers et répertoires du site:

chown -R www-data:www-data ./public_html
find ./public_html -type d -exec chmod 755 {} +
find ./public_html -type f -exec chmod 644 {} +

Étape 7 : mise à jour des clés de sécurité et des mots de passe

On renouvelle les clés de sécurité présentes dans wp-config.php :

wp config shuffle-salts --allow-root

$ Success: Shuffled the salt keys.

Changez maintenant les mots de passe des comptes utilisateurs qui possèdent des droits importants sur le site. iThemes Security permet d’automatiser le changement de mot de passe pour tous vos utilisateurs en un clic, dans Security > Passwords. Activez la double-authentification forte (2FA).

Modifiez également le mot de passe SFTP. Activez l’identification par clé SSH si cela est possible sur votre hébergement.

Si vous avez besoin de sécuriser votre site WordPress, n’hésitez pas à me contacter.

Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.

Parlons de votre projet dès aujourd'hui »

Articles conseillés :

Opinions