Vérifier que j'ai complètement supprimé un piratage WordPress?

98

Mon blog WordPress amusant sur enlace (sous WordPress 3.1.1) s'est fait pirater - il affichait un <iframe> sur chaque page comme si:

<iframe src="http://evilsite.com/go/1"></iframe><!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

J'ai fait ce qui suit

  1. Mis à niveau vers 3.1.3 via le système de mise à niveau WordPress intégré
  2. Installation du Scanner Exploit (de nombreux avertissements critiques sur des fichiers inhabituels) et AntiVirus (tout était vert et propre, je l'ai donc désinstallé et supprimé après avoir été exécuté)
  3. Changement du mot de passe MySQL.
  4. Modification de tous les mots de passe d'utilisateurs WordPress.
  5. Connecté via FTP et téléchargé l’ensemble du système de fichiers (pas grand, il s’agit d’un hôte partagé Linux sous WordPress)
  6. Diffusez le système de fichiers avec un fichier ZIP officiel de WordPress 3.1.3 et supprimez ou remplacez tout ce qui ne correspond pas.

Je suis tout à fait sûr que

  • tous les fichiers sur le disque sont des fichiers WordPress 3.1.3 officiels
  • il n'y a pas de fichiers "extra" sur le disque autres que mon /theme , le plug-in Exploit Scanner (que je viens de télécharger), le dossier /uploads et une infime poignée de fichiers attendus. Mon autre plugin, wp-recaptcha, correspond à la version officielle téléchargée actuelle.
  • J'ai également vérifié le fichier .htaccess et rien ne semble mal se trouver là-bas

Je n'ai pas touché à la base de données , mais j'ai du mal à comprendre comment un élément de la base de données pourrait être malveillant sans code PHP spécial pour le faire fonctionner?

Mon blog WordPress semble OK et sans piratage maintenant (je pense), mais y a-t-il autre chose que je devrais vérifier?

    
posée Jeff Atwood 10.06.2011 - 17:31

12 réponses

76

Avez-vous identifié le vecteur d’exploitation? Si ce n’est pas le cas, vous vous exposez peut-être à de futurs exploits.

Autres points à prendre en compte:

  1. Changer les mots de passe des utilisateurs de l'administrateur WordPress - terminé
  2. Modifier le mot de passe de l'utilisateur du compte d'hébergement
  3. Modifier les mots de passe FTP
  4. Changer le mot de passe de l'utilisateur de la base de données MySQL - terminé
  5. Changer le préfixe de la table db
  6. Mettez à jour votre wp-config nonces / salt .
  7. Vérifiez vos autorisations de répertoire / fichier .
  8. Bloquer l'accès à la navigation dans les répertoires via .htaccess
  9. Parcourez tout ce qui se trouve dans Renforcement de WordPress Entrée de codex
  10. Tout parcourir dans la FAQ. Mon site a été piraté . Entrée de codex
réponse donnée Chip Bennett 10.06.2011 - 17:58
26

En regardant le message de "navigation sécurisée" de Google Chrome, vous obtenez le "bidouillage d'iFrame .cc" qui semble faire beaucoup de bruit récemment. Je pense que la 3.1.3 va résoudre ce problème, mais vérifiez votre fichier index.php à la racine si votre site Web, c’est là où il a continué à me frapper jusqu’à ce que TOUT soit mis à jour et que les mots de passe soient modifiés.

Les gens peuvent faire des choses très délicates avec les injections de post et de commentaires. Vous pouvez exécuter les requêtes suivantes sur votre base de données pour vous aider à en trouver. J'ai blogué le reste de mon "suivi" ici .

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

J'espère que cela aide!

    
réponse donnée Dillie-O 10.06.2011 - 18:00
20

La base de données peut également contenir du code malveillant: comptes d’utilisateur masqués ou valeurs imprimées non échappées quelque part. Vérifiez également que votre répertoire de téléchargement ne contient pas de fichiers qui y appartiennent.

Oh, et essayez de comprendre comment l'attaquant s'est frayé un chemin dans votre site. Sur les comptes partagés, c'est souvent le serveur entier. Consultez également les autres sites du serveur pour connaître les blogs ou autres pages piratés. Lisez votre journal FTP. Si vous ne savez pas comment cela s’est passé, vous ne pouvez pas empêcher la prochaine pause.

    
réponse donnée fuxia 10.06.2011 - 17:47
13

Désolé d'entendre que vous avez été piraté - on dirait que vous avez fait un bon travail de récupération!

Votre système de fichiers semble doré, je ne dirais pas que vous pouvez faire autre chose ici.

Je pense qu'Exploit Scanner émettrait un avertissement s’il trouvait des scripts, des iframes, PHP (bien que dangereux, si évalué), ou d’autres codes inhabituels dans votre base de données.

Je ne sais pas s'il vérifie les tables autres que posts & commentaires, il vaut peut-être la peine de consulter /wp-admin/options.php pour un aperçu rapide et voir si vous trouvez quelque chose d'étrange.

Je vérifierais également votre table d'utilisateurs dans un client MySQL (les utilisateurs peuvent figurer dans la base de données mais ne pas être visibles dans l'administrateur).

    
réponse donnée TheDeadMedic 10.06.2011 - 17:49
8

Vérifiez les outils Google Webmaster pour deux choses:

  • vérifiez que votre site n'a pas été marqué comme compromis et demandez un réexamen s'il a
  • vérifiez votre site en tant que Googlebot et assurez-vous qu'aucun spam, qui n'est visible que pour Googlebot, est inséré - par exemple, le piratage WP Pharma

De plus, je réinstalle le thème ou le vérifie avec une extrême prudence. Quelques lignes de PHP peuvent redéfinir les fonctions PHP essentielles afin d’extraire du code malveillant de la base de données, en particulier des tables de magasin de clés / valeurs wp_options

    
réponse donnée Jon Galloway 10.06.2011 - 18:10
6

Recherchez "iframe" dans la base de données via phpmyadmin ou videz la base de données et recherchez le texte.

Et recherchez les utilisateurs invisibles dans la table users; J'ai vu des utilisateurs dans les tableaux ne figurant pas dans WP Admin > > Utilisateurs.

Options de nettoyage «Les plugins WordPress indiqueront quels fichiers indésirables provenant d'anciens plugins, potentiellement vulnérables, sont laissés dans la base de données. .

La balise <head> est également absente de votre thème. Par conséquent, je vérifierais si vous avez modifié le thème pour supprimer les liens incorrects.

Et comme d'habitude: et Comment trouver une porte dérobée dans un WordPress piraté et Hardening WordPress «Codex WordPress

    
réponse donnée markratledge 10.06.2011 - 17:58
5

"Y at-il autre chose que je devrais vérifier?" Vous devez examiner votre processus et découvrir comment vous avez été piraté (presque certainement parce que vous n'avez pas corrigé à temps ou correctement) et y remédier également, pas seulement les symptômes.

    
réponse donnée Tom Chiverton 10.06.2011 - 18:00
4

Cela m’est arrivé une fois, à travers une fuite sur mediatemple. Je devais écrire un plugin pour vérifier la base de données pour les liens injectés. Vous pouvez le saisir ici sous forme d'un gistub gist .

Il est plutôt convivial, comporte plusieurs étapes permettant de générer des commentaires et de revérifier votre base de données lorsque vous avez terminé.

Bonne chance!

    
réponse donnée kaiser 10.06.2011 - 18:01
4

J'ai eu un hack très similaire que j'ai dû corriger sur l'un de mes sites clients.

Il y avait des scripts malveillants dans le système de fichiers (php base64_decode). Cependant, la base de données 'posts' & Les tableaux de commentaires ont été compromis et le code iframe a également été dispersé dans ces données.

Je voudrais au moins faire quelques recherches sur la base de données, juste pour être sûr. :)

    
réponse donnée Eric Allison 10.06.2011 - 18:11
3

Vérifiez vos plugins!, jusqu’à présent cette année, il ya eu 60 versions d’exploit provenant de plugins .org, je soupçonne que le nombre réel est bien supérieur, car personne ne le fait vraiment à plein temps.

Vous avez indiqué que vous ne disposiez que d'un seul plug-in. En fait, il y avait une faille de sécurité (vous ne savez pas combien de temps il est sorti, et ce n'est peut-être pas le vecteur).

  

wp-recaptcha-plugin
  L'exploit est sorti: 2011-03-18
  Exploiter la version: 2.9.8

L'auteur a déclaré avoir réécrit avec la version 3.0, mais le correctif de sécurité n'est pas mentionné.

enlace

Journal des modifications: enlace

    
réponse donnée Wyck 11.06.2011 - 06:43
2

J'utilise un serveur de nuage et les numéros de port ssh wacky sont aléatoires, pas de ftp du tout. Les mots de passe sont extrêmement difficiles à pirater. Tout accès root est complètement refusé. Je suis d'accord que WordPress ne sera pas votre coupable. Une autre chose à vérifier est les sessions ftp non fermantes, les virus sur votre ordinateur personnel (rappelez-vous que vous pouvez charger un fichier sur votre site et qui charge jamais ce fichier peut obtenir le même virus), ne gardez pas non plus vos mots de passe sur des sites publics ou privés. les sites les mettent toujours sur papier, jamais sur un document Word ou un bloc-notes.

Enfin, demandez à votre hôte s’il a récemment eu une brèche car il devrait avoir une configuration de pare-feu

    
réponse donnée xLRDxREVENGEx 11.06.2011 - 07:50
2

Vérifiez la date de vos fichiers. Aucun fichier ne doit avoir une donnée de changement plus récente que votre dernière modification / installation!

Mais cela peut aussi être simulé. Le seul moyen d’en être sûr serait de comparer (par exemple, une comparaison de hachage) tous les fichiers avec les fichiers d’installation d’origine.

    
réponse donnée powtac 11.06.2011 - 14:49

Lire d'autres questions sur les étiquettes