Überprüfen, ob ich einen WordPress-Hack vollständig entfernt habe?

105

Mein unterhaltsamer WordPress-Blog unter http://fakeplasticrock.com (mit WordPress 3.1.1) wurde gehackt - es wurde <iframe>auf jeder Seite wie folgt angezeigt :

<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"> 

Ich habe folgendes gemacht

  1. Upgrade auf 3.1.3 über das integrierte WordPress-Upgrade-System
  2. Installierte den Exploit Scanner (viele kritische Warnungen bei ungewöhnlichen Dateien) und AntiVirus (dies zeigte alles grün und sauber, so dass ich es deinstallierte und nach dem Ausführen entfernte)
  3. Geändertes MySQL Passwort.
  4. Alle WordPress-Benutzerpasswörter wurden geändert.
  5. Per FTP verbunden und das gesamte Dateisystem heruntergeladen (nicht groß, dies ist ein nur für WordPress freigegebener Linux-Host)
  6. Das Dateisystem wurde gegen eine offizielle ZIP-Datei von WordPress 3.1.3 ausgetauscht und alles, was nicht übereinstimmt, entfernt oder überschrieben .

Ich bin mir ziemlich sicher, dass

  • Alle Dateien auf der Festplatte sind offizielle WordPress 3.1.3-Dateien
  • Auf der Festplatte befinden sich keine "zusätzlichen" Dateien außer meiner /theme, dem Exploit Scanner-Plugin (das ich gerade heruntergeladen habe), dem /uploadsOrdner und einer kleinen Handvoll anderer erwarteter Dateien. Mein anderes Plugin, wp-recaptcha, entspricht der aktuell offiziell heruntergeladenen Version.
  • Ich habe auch die .htaccessDatei überprüft und nichts sieht dort falsch aus

WordPress 3.1.3 Datei vergleichen in Beyond Compare

Ich habe die Datenbank nicht angerührt , habe aber Schwierigkeiten zu überlegen, wie etwas in der Datenbank ohne speziellen PHP-Code bösartig sein könnte , damit es funktioniert.

Mein WordPress-Blog scheint jetzt in Ordnung und hackfrei zu sein (glaube ich), aber gibt es noch etwas, das ich überprüfen sollte?

Jeff Atwood
quelle
1
Sie sollten halten Sie den Blog auf dem Laufenden. :)
fuxia

Antworten:

80

Haben Sie den Exploit-Vektor identifiziert? Wenn nicht, lassen Sie sich möglicherweise für zukünftige Exploits offen.

Andere Dinge zu beachten:

  1. Ändern Sie die Benutzerpasswörter für den WordPress-Administrator - fertig
  2. Ändern Sie das Benutzerkennwort des Hosting-Kontos
  3. Ändern Sie die FTP-Passwörter
  4. Ändern Sie das MySQL-DB-Benutzerpasswort - fertig
  5. Ändern Sie das Präfix der DB-Tabelle
  6. Aktualisieren Sie Ihre wp-config nonces / salt
  7. Überprüfen Sie Ihre Verzeichnis- / Dateiberechtigungen
  8. Sperren Sie den Zugriff auf das Durchsuchen von Verzeichnissen über .htaccess
  9. Gehen Sie alles im Eintrag Hardening WordPress Codex durch
  10. Lesen Sie alles im FAQ- Eintrag " Meine Website wurde gehackt"
Chip Bennett
quelle
1
Entschuldigung, vergessen zu erwähnen - ich habe natürlich die WordPress-Passwörter geändert. Aktualisierter Beitrag und abgehakt auf der Liste hier! Ich kann mir nicht vorstellen, wie sie mein Hosting-Passwort oder das FTP-Passwort haben könnten, wenn sie einfach in WordPress einsteigen. Diese Informationen befinden sich nirgendwo im Dateisystem oder in der Datenbank.
Jeff Atwood
9
Sie haben den wahrscheinlichen Exploit-Vektor rückwärts; Es ist nicht wahrscheinlich, dass WordPress -> Hosting-Konto , sondern Hosting-Konto (über Server oder FTP) -> WordPress .
Chip Bennett
2
@ Jeff einige Exploits auf Serverebene, über die Sie keine Kontrolle haben (abgesehen von der Suche nach einem besseren Host). Nur weil Sie noch keine Host- / FTP-Anmeldeinformationen verwendet haben, bedeutet dies nicht, dass diese nicht gestohlen wurden , indem Sie Zugriff auf Ihr Hosting-Konto erhalten.
Chip Bennett
7
Es gibt einen sehr verbreiteten Exploit, bei dem Malware Ihre Workstation (oder die Workstation eines Auftragnehmers) infiziert, Ihre gespeicherten Passwörter in Ihrem bevorzugten FTP-Programm (oder FTP-fähigen Programm) durchsucht und diese an den Angreifer sendet, der dann Kompromisse eingeht Ihre Website und verwendet es, um die gleiche Malware an andere Webmaster zu verbreiten. Dies ist eine der häufigsten Methoden, mit denen Ihr FTP-Passwort gestohlen wird. Was besonders heimtückisch ist, ist, dass es sich über normale Websites wie Ihre verbreitet, nicht über die, bei denen Sie wahrscheinlich vorsichtig sind.
tylerl
3
Wenn Sie Zugriff auf die Befehlszeile haben, verfügt WP-CLI über einen Befehl zum Überprüfen der Prüfsummen , mit dem jede Datei mit wordpress.org verglichen wird
William Turrell,
26

Wenn Sie sich die Google Chrome-Meldung "Safe Browsing" ansehen, sehen Sie den ".cc iFrame-Hack", der in letzter Zeit eine Menge zu bieten scheint. Ich denke, 3.1.3 wird das beheben, aber überprüfen Sie Ihre index.php-Datei im Stammverzeichnis, wenn Ihre Site, dort traf es mich so lange, bis ALLES aktualisiert und Passwörter geändert wurden.

Es gibt einige sehr knifflige Sachen, die Leute mit Post- und Kommentar-Injektionen machen können. Sie können die folgenden Abfragen für Ihre Datenbank ausführen, um einige von ihnen zu finden, die ich den Rest meines "Trackings" hier gebloggt habe .

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%'

Hoffe das hilft!

Dillie-O
quelle
4
Ich würde hinzufügen SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'und SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'nur um sicher zu sein ...
SeanJA
4
Oh, eine letzte Anmerkung. Ich gehe davon aus, dass Sie Google Webmaster-Tools an diese Domain gebunden haben. Sobald Sie alles aufgeräumt haben, können Sie von Ihrem Webmaster-Tool-Konto aus einen Antrag stellen, damit Google die Website erneut scannt und die Warnmeldung entfernt. Sie bearbeiten Anfragen von Webmaster-Tools in der Regel innerhalb eines Tages. Ansonsten steht man für gut 90 Tage auf der "frechen Liste".
Dillie-O
Eine Reihe von Ergebnissen gefunden, aber es liegt an eingebetteten Iframes für Vimeo.
Tooshel
20

Die Datenbank kann auch böswilligen Code enthalten: versteckte Benutzerkonten oder Werte, die ungeschützt gedruckt werden. Überprüfen Sie auch Ihr Upload-Verzeichnis auf Dateien, die nicht dorthin gehören.

Oh, und versuchen Sie zu verstehen, wie der Angreifer auf Ihre Website gelangt ist. Bei gemeinsam genutzten Konten ist dies häufig der gesamte Server. Überprüfen Sie die anderen Websites auf dem Server auf gehackte Blogs oder andere Seiten. Lesen Sie Ihr FTP-Protokoll. Wenn Sie nicht wissen, wie es passiert ist, können Sie die nächste Pause nicht verhindern.

fuxia
quelle
Findet der Exploit Scanner keine versteckten Benutzerkonten?
Jeff Atwood
@ Jeff Atwood Darauf würde ich mich nicht verlassen. Ihre Benutzertabelle ist nicht so groß. Sie können es leicht ohne Plugin lesen.
fuxia
Ich überprüfte die wp_usersTabelle und nur 2 Zeilen, beide erwartet .. nichts in dem /uploadOrdner ungewöhnlich (nur GIFs und PNGs und JPEGs)
Jeff Atwood
@ Jeff Atwood Hast du dir die Dateien angesehen oder nur die Erweiterungen? Sind alle diese Dateien in der Medienbibliothek aufgeführt?
fuxia
4
Bilddateien sind eine ziemlich häufige Methode zur Übermittlung von Nutzdaten. Sehen Sie hier , und das Theme Review Team hat auch Themes mit einem ähnlichen TIFF-Exploit gefunden.) Also, ja: Ich würde jedes einzeln prüfen, um sicherzustellen, dass es Teil der Medienbibliothek ist. (Einfaches Scannen auf hoher Ebene: Suchen Sie nach Bildern, für die keine Miniaturbildgröße definiert ist.)
Chip Bennett,
13

Tut mir leid zu hören, dass du gehackt wurdest - anscheinend hast du aber gute Arbeit geleistet!

Ihr Dateisystem klingt golden, ich würde nicht sagen, dass Sie hier noch etwas tun können.

Ich würde denken, Exploit Scanner würde eine Warnung auslösen, wenn es Skripte, Iframes, PHP (obwohl nur gefährlich, wenn es ausgewertet wird) oder anderen ungewöhnlichen Code in Ihrer Datenbank findet.

Ich bin mir nicht sicher, ob es andere Tabellen als Posts und Kommentare überprüft. Vielleicht lohnt es sich, /wp-admin/options.phpeinen kurzen Blick darauf zu werfen und festzustellen, ob Sie etwas Seltsames entdecken.

Ich würde auch Ihre Benutzertabelle in einem MySQL-Client überprüfen (Benutzer befinden sich möglicherweise in der Datenbank, sind jedoch im Administrator nicht sichtbar).

TheDeadMedic
quelle
Auf jeden Fall ist es eine gute Idee, eine MySQL-Abfrage für die Benutzertabelle auszuführen, um sicherzustellen, dass nichts Unerwartetes vorhanden ist, und das habe ich getan. Guter Tipp!
Jeff Atwood
8

Überprüfen Sie die Google Webmaster-Tools auf zwei Dinge:

  • Stellen Sie sicher, dass Ihre Website nicht als gefährdet gekennzeichnet wurde, und fordern Sie gegebenenfalls eine erneute Überprüfung an
  • Überprüfen Sie Ihre Website als Googlebot und stellen Sie sicher, dass kein Spam eingefügt wird, der nur für Googlebot sichtbar ist. Ein Beispiel hierfür ist der WP Pharma-Hack

Außerdem würde ich das Thema erneut implementieren oder es äußerst sorgfältig überprüfen. Einige PHP-Zeilen können die Kernfunktionen von PHP neu definieren, sodass sie schädlichen Code aus der Datenbank extrahieren, insbesondere die Schlüssel- / Wertspeichertabellen wp_options

Jon Galloway
quelle
Ja, ich habe die Website definitiv über die Google Webmaster-Tools erneut übermittelt und sie scheint jetzt "gelöscht" zu sein.
Jeff Atwood
6

Durchsuchen Sie die Datenbank mit phpmyadmin nach "iframe" oder sichern Sie die Datenbank und durchsuchen Sie den Text.

Suchen Sie in der Benutzertabelle nach unsichtbaren Benutzern. Ich habe Benutzer in den Tabellen gesehen, die in WP Admin >> Users nicht angezeigt wurden.

Optionen bereinigen «WordPress-Plugins zeigen an, welcher Müll von alten und möglicherweise anfälligen Plugins in der Datenbank verbleibt.

In Ihrem Thema fehlt auch das <head>Tag, daher würde ich überprüfen, ob Sie das Thema bearbeitet haben, um fehlerhafte Links zu entfernen.

Und das Übliche: und wie man eine Hintertür in einem gehackten WordPress- und Hardening-WordPress- «WordPress-Codex findet

markratledge
quelle
5

"Gibt es noch etwas, das ich überprüfen sollte?" Sie müssen Ihren Prozess untersuchen und herausfinden, wie Sie gehackt wurden (mit ziemlicher Sicherheit, weil Sie nicht rechtzeitig oder korrekt gepatcht haben) und das auch beheben, nicht nur die Symptome.

Tom Chiverton
quelle
5
Ich bezweifle, dass es damit zu tun hat, WordPress nicht zu aktualisieren (obwohl es möglich ist , ist es einfach nicht wahrscheinlich ). WordPress selbst ist fast nie der Exploit-Vektor. Die üblichen Vektoren sind unsichere Hostkonfiguration und gestohlene FTP-Anmeldeinformationen.
Chip Bennett
4

Das ist mir einmal durch ein Leck im Medientempel passiert. Ich musste ein Plugin schreiben, um die Datenbank auf injizierte Links zu überprüfen. Sie können es hier als Github Gist greifen .

Es ist ziemlich benutzerfreundlich, hat mehrere Schritte, die Feedback liefern und Ihre Datenbank erneut prüfen, wenn Sie fertig sind.

Viel Glück!

Kaiser
quelle
4

Ich hatte einen sehr ähnlichen Hack, den ich auf einer meiner Client-Sites reparieren musste.

Es gab bösartige Skripte im Dateisystem (php base64_decode stuff). Die Tabellen "Posts" und "Comments" der Datenbank waren jedoch kompromittiert worden, und der Iframe-Code war auch in diesen Daten verstreut.

Ich würde zumindest ein paar Suchanfragen in der Datenbank durchführen, um sicherzugehen. :)

Eric Allison
quelle
3

Überprüfen Sie Ihre Plugins! Bisher gab es in diesem Jahr 60 Exploit-Releases von .org-Plugins. Ich würde vermuten, dass die tatsächliche Anzahl viel höher ist, da niemand dies wirklich in Vollzeit tut.

Sie haben angegeben, dass Sie nur ein Plug-in haben, das eine Sicherheitslücke aufweist (nicht sicher, wie lange es nicht verfügbar ist, und es ist möglicherweise nicht der Vektor).

wp-recaptcha-plugin
Der Exploit wurde veröffentlicht: 2011-03-18
Exploit-Version: 2.9.8

Der Autor gab an, dass er mit Version 3.0 umgeschrieben hat, der Sicherheitspatch wird jedoch nicht erwähnt.

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

Änderungsprotokoll: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

Wyck
quelle
2

Ich benutze einen Cloud-Server und habe zufällige verrückte SSH-Portnummern ohne FTP. Passwörter sind extrem schwer zu hacken. Jeder Root-Zugriff wird vollständig verweigert. Ich bin damit einverstanden, dass WordPress nicht Ihr Schuldiger sein wird. Eine andere Sache, auf die Sie achten sollten, ist, dass FTP-Sitzungen nicht geschlossen werden, dass sich auf Ihrem PC ein Virus befindet (denken Sie daran, dass Sie eine Datei auf Ihre Site laden können und wer diese Datei lädt, kann denselben Virus bekommen) und dass Sie Ihre Passwörter nicht auf öffentlichen oder privaten Sites aufbewahren Aufstellungsorte berichtigen sie immer unten auf Papier nie auf einem Wortdokument oder einem Notizblock.

Fragen Sie zuletzt Ihren Host, ob er kürzlich eine Sicherheitslücke hatte, da er eine Firewall einrichten sollte

xLRDxREVENGEx
quelle
2

Überprüfen Sie das Datum Ihrer Dateien. Keine Datei sollte Änderungsdaten haben, die neuer sind als Ihre letzte Bearbeitung / Installation!

Aber auch das kann man vortäuschen. Am sichersten ist es, alle Dateien mit den ursprünglichen Installationsdateien zu vergleichen (z. B. Hash-Vergleich).

powtac
quelle