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

106

Mon blog WordPress amusant sur http://fakeplasticrock.com (exécutant WordPress 3.1.1) a été piraté - il en montrait un <iframe>sur chaque page comme suit:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//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. Mise à niveau vers 3.1.3 via le système de mise à niveau WordPress intégré
  2. Installation du scanneur Exploit (de nombreux avertissements critiques sur des fichiers inhabituels) et de l' antivirus (tout était vert et propre, je l'ai donc désinstallé et supprimé après l'exécution)
  3. Changement du mot de passe MySQL.
  4. Changement de tous les mots de passe utilisateur WordPress.
  5. Connecté via FTP et téléchargé le système de fichiers complet (pas grand, c'est un hôte partagé Linux uniquement WordPress)
  6. Le système de fichiers mis au format contre un officiel de WordPress postal 3.1.3 et enlevé ou réenregistrés tout ce qui ne correspond pas.

Je suis bien 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 le mien /theme, le plugin Exploit Scanner (que je viens de télécharger), le /uploadsdossier et une infime poignée d'autres fichiers attendus. Mon autre plugin, wp-recaptcha, correspond à la version téléchargée officielle actuelle.
  • J'ai également vérifié le .htaccessfichier et rien ne semble mal

Comparaison de fichiers wordpress 3.1.3 dans Beyond Compare

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 peut être malveillant sans un code PHP spécial pour le faire fonctionner.

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

Jeff Atwood
la source
1
Vous devriez garder le blog à jour. :)
fuxia

Réponses:

81

Avez-vous identifié le vecteur de l'exploit? Sinon, vous vous laissez peut-être ouvert à de futurs exploits.

Autres points à considérer:

  1. Changer les mots de passe des utilisateurs admin WordPress - Terminé
  2. Changer le mot de passe de l'utilisateur du compte d'hébergement
  3. Changer les mots de passe FTP
  4. Changer le mot de passe de l'utilisateur MySQL db - terminé
  5. Changer le préfixe de la table db
  6. Mettez à jour votre wp-config nonces / salt
  7. Vérifiez les permissions de votre répertoire / fichier
  8. Bloquer l'accès à la navigation dans les répertoires via .htaccess
  9. Passez en revue tout dans l' entrée de renforcement du codex WordPress
  10. Passez en revue tout dans la FAQ Mon site a été piraté entrée Codex
Chip Bennett
la source
1
désolé, négligé de mentionner - j'ai bien sûr changé les mots de passe WordPress. Poste mis à jour et coché sur la liste ici! Je ne vois pas comment ils pourraient avoir mon mot de passe d'hébergement, ou le mot de passe FTP, juste en entrant dans WordPress; cette information n'est nulle part dans le système de fichiers ou la base de données.
Jeff Atwood
9
Vous avez le vecteur exploit probable à l'envers; ce n'est probablement pas WordPress -> compte d'hébergement , mais plutôt compte (via serveur ou FTP) -> WordPress .
Chip Bennett
2
@ Jeff certains exploits au niveau du serveur sur lesquels vous n'avez aucun contrôle (mis à part la recherche d'un meilleur hôte). Mais ce n'est pas parce que vous n'avez pas utilisé les informations d'identification hôte / FTP que quelqu'un ne les a pas volées , en accédant à votre compte d'hébergement.
Chip Bennett
7
Il existe un exploit très courant: les logiciels malveillants infectent votre poste de travail (ou le poste de travail d’un contractant), fouillent vos mots de passe enregistrés dans votre programme FTP préféré (ou activé par FTP) et les envoient à l’attaquant, qui les compromet ensuite. votre site et l'utilise pour propager le même malware à d'autres webmasters. C'est un moyen courant par lequel votre mot de passe FTP est volé. Ce qui est particulièrement insidieux, c’est que sa propagation se fait par des sites normaux comme le vôtre, et non par des sites lugubres dans lesquels vous devez faire attention.
tylerl
3
Pour votre information, si vous avez accès à la ligne de commande, WP-CLI a une commande verify checksums qui vérifie chaque fichier contre wordpress.org
William Turrell le
26

En regardant le message de "navigation sécurisée" de Google Chrome, vous obtenez le "bidouillage .cc iFrame" qui semble faire beaucoup de bruit récemment. Je pense que 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à qu'il a continué à frapper jusqu'à ce que tout soit mis à jour et les mots de passe modifiés.

Il y a des choses très délicates que les gens peuvent faire avec des 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 t'aides!

Dillie-O
la source
4
J'ajouterais SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'et SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'juste pour être sûr ...
SeanJA
4
Oh, une dernière note. Je suppose que vous avez des outils Google Webmaster liés à ce domaine. Une fois les tâches nettoyées, vous pouvez demander à Google de réanalyser le site et de supprimer le message d'avertissement à partir de votre compte Outils pour les webmasters. Ils traitent les demandes des outils pour les webmasters généralement dans la journée. Sinon, vous êtes sur la "liste coquine" pendant 90 jours.
Dillie-O
Nous avons trouvé de nombreux résultats, mais c’est à cause des iframes intégrés à Vimeo.
Tooshel
20

La base de données peut également contenir du code malveillant: comptes d'utilisateurs caché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.

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. Vérifiez également sur les autres sites du serveur 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.

fuxia
la source
Le scanner d’exploitation ne trouve-t-il aucun compte d’utilisateur caché?
Jeff Atwood
@ Jeff Atwood, je ne compterais pas sur cela. Votre table d'utilisateurs n'est pas si grande. Vous pouvez facilement le lire sans aucun plugin.
fuxia
J'ai vérifié la wp_userstable et seulement 2 lignes, les deux attendus .. rien dans le /uploaddossier inhabituel (juste des gifs et des pngs et des jpegs)
Jeff Atwood
@ Jeff Atwood Avez-vous examiné les fichiers ou uniquement les extensions? Tous ces fichiers sont-ils répertoriés dans la médiathèque?
fuxia
4
Les fichiers image sont une méthode de livraison de charge utile assez courante. Voir ici , et l'équipe de révision des thèmes a également rencontré des thèmes utilisant un exploit TIFF similaire.) Donc, oui: je vérifierais chacun d'eux pour s'assurer qu'il fait partie de la médiathèque. (Numérisation facile à haut niveau: recherchez des images pour lesquelles la taille des vignettes n'a pas été définie.)
Chip Bennett
13

Désolé de vous avoir 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, du PHP (bien que dangereux seulement), ou tout autre code inhabituel dans votre base de données.

Je ne sais pas s'il vérifie les tableaux autres que les posts et les commentaires. Cela vaut peut-être la peine de /wp-admin/options.phpjeter un coup d'œil rapide et de voir si vous trouvez quelque chose d'étrange.

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

TheDeadMedic
la source
C'est une bonne idée de lancer une requête MySQL sur la table users pour s'assurer qu'il ne reste rien d'inattendu, et c'est ce que j'ai fait. Bon conseil!
Jeff Atwood
8

Vérifiez les outils Google Webmaster pour deux choses:

  • vérifiez que votre site n'a pas été signalé comme compromis et demandez un réexamen s'il a
  • vérifiez votre site en tant que Googlebot et vérifiez qu'il n'y a pas de spam qui soit uniquement visible par Googlebot - un exemple en est le bidouillage de WP Pharma

En outre, je ré-implémenterais le thème ou le vérifierais avec la plus grande attention. 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.

Jon Galloway
la source
Oui, j'ai définitivement resoumis le site via Google Webmaster Tools, et il semble "effacé" maintenant.
Jeff Atwood
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 tables qui n'apparaissaient pas dans WP Admin >> Utilisateurs.

Options de nettoyage «Les plugins WordPress montreront quels fichiers indésirables de vieux plugins, potentiellement vulnérables, sont laissés dans la base de données.

La <head>balise manque également dans votre thème . Je voudrais donc vérifier si vous avez modifié le thème pour supprimer les mauvais liens.

Et l'habituel: et comment trouver une porte dérobée dans un WordPress piraté et durcissant WordPress «Codex WordPress

markratledge
la source
5

"Y a-t-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.

Tom Chiverton
la source
5
Je doute que cela ait à voir avec la non mise à jour de WordPress (bien que ce soit possible , ce n'est tout simplement pas probable ). WordPress lui-même n'est presque jamais le vecteur de l'exploit. Les vecteurs habituels sont la configuration d’hôte non sécurisée et les informations d’identification FTP volées.
Chip Bennett
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 comme un github gist .

Il est assez convivial, comporte plusieurs étapes qui fournissent des commentaires et vérifient à nouveau votre base de données une fois que vous avez terminé.

Bonne chance!

kaiser
la source
4

J'ai eu un bidon très similaire que j'ai dû réparer sur l'un de mes sites clients.

Il y avait des scripts malveillants dans le système de fichiers (php base64_decode). Cependant, les tables 'posts' et 'comments' de la base de données avaient été compromises et le code iframe était également dispersé dans ces données.

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

Eric Allison
la source
3

Vérifiez vos plugins!, Jusqu'à présent cette année, il y a eu 60 versions d'exploitation de plugins .org, je suppose que le nombre réel est bien plus élevé puisque personne ne le fait vraiment à plein temps.

Vous avez indiqué ne disposer que d'un seul plug-in, et bien 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 a été publié: 2011-03-18
Version d'exploit: 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é.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Journal des modifications: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

Wyck
la source
2

J'utilise un serveur de nuage et ai des numéros de port sack loufoques et 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 va pas être 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 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.

xLRDxREVENGEx
la source
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 moyen le plus sûr d’être sûr serait de comparer (par exemple, une comparaison de hachage) tous les fichiers avec les fichiers d’installation d’origine.

Powtac
la source