Revolution Slider

Wer insbesondere bei ThemeForest Theme(s) gekauft hat und darin sich der Revolution Slider (kurz Revslider) in einer älteren Version als 4.2 befindet, sollte dringensd seine WordPress Installation(en) überprüfen und falls noch nicht infiziert den Revslider unbedingt aktualisieren! Denn seit ca. einem Monat ist ein sogenannter Exploit bekannt, der über ältere Versionen vor 4.2 des Revolution Sliders Angreifern ermöglicht, in dem Verzeichnis /wp-content/plugins/revslider/temp selbst ausführbare PHP Dateien heraufzuladen, mit denen das installierte WordPress (insbesondere die XML-RPC Schnittstelle sowie aber auch die wp-login.php) zu infizieren.
Bei einem Kunden wurden gleich zwei WordPress Shops infiziert. Nach eingehender Prüfung wurden folgende Dateien infiziert (bzw. bearbeitet):

  • /wp-content/plugins/revslider/temp – Hier wurden diverse Dateien / Ordner hereingeladen, die offenbar dafür benötigt werden, um das WordPress zu infizieren
  • /wp-content/themes/twentyfourteen/footer.php – Direkt am Anfang der Datei wurde base64 kodierter Code eingefügt
  • /wp-content/themes/topshop/footer.php – Die footer.php des Themes des Kunden wurde ebenfalls wie bei TwentyFourteen Theme infiziert
  • /frommshead.php – Direkt im Root des Webs wurde diese Datei abgelegt (ebenfalls base64 kodierter Code enthalten)
  • /wp-xmlrpc.php – Diese Datei existiert in einem Original WordPress nicht im Root
  • /wp-admin/.htaccess – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/admin-ajax.php – Diese Datei wurde verändert und infiziert
  • /wp-admin/class-wp-index.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/ms-head.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/options-admin.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/raw.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/css/ms-functions.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/patError.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/blue/javascript.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/light/request.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/mignight/sysinfo_phpinfo.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/ocean/users.class.php – Existiert im Original WordPress nicht
  • /wp-admin/css/colors/sunrise/config_debug.php – Existiert im Original WordPress nicht
  • /wp-admin/headers – Dieses Verzeichnis existiert im Original WordPress nicht
  • /wp-admin/includes/observable.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/maint/xml_domit_utilities.php – Diese Datei existiert im Original WordPress nicht
  • /wp-admin/network/Reader.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/ID3/unicode_data.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/SimplePie/index.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/SimplePie/Decode/default_ftp.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/SimplePie/HTTP/spacer.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/SimplePie/Parse/grip.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/SimplePie/XML/Declaration/default_address.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/Text/Gzip.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/Text/Diff/Renderer/site-info.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/certificates/archives.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/fonts/ml_domit_parseattributes.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/images/media/plugins.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/js/imgareaselect/settings.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/js/jcrop/StripComments.php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/js/mediaelement/eAccelerator,php – Diese Datei existiert im Original WordPress nicht
  • /wp-includes/js/thickbox/class-pclzip.php – Diese Datei existiert im Original WordPress nicht
  • usw.

Wie man unschwer erkennt, sind diverse neue Dateien insbesondere im /wp-includes/ Verzeichnis abgelegt worden, die fast allesamt base64 kodierten PHP Code erhalten.

Was tun, wenn man solche Dateien in seinem WordPress findet?

Im Grunde ist das glücklicherweise gar nicht so schwierig. Eine Garantie kann ich unmöglich geben, aber es scheint so, als wenn die Daten in der Datenbank nicht infiziert werden und lediglich nur User-Daten ausgelesen und diverse Dateien hinein geladen und verändert werden, um so glaube ich Crosssite-Scripting / XSS Angriffe aus dem Blog heraus vorzunehmen.

Um seinen Blog nun wiederherzustellen und zu bereinigen, geht man wie folgt vor:

  1. Zunächst erst mal bis auf folgende Verzeichnisse und Dateien alles im Root per FTP löschen:
    /wp-content/ das gesamte Verzeichnis zunächst erstmal belassen
    /wp-config.php
  2. Im Verzeichnis /wp-content/uploads prüfen, ob *.php Dateien abgelegt wurden. Wenn man selbst keine PHP Dateien hochgeladen hat (im Normalfalls ist dem auch nicht so) diese ebenfalls löschen. Außerdem sollte man ggf. auch das vorhandene Verzeichnis /wp-content/upgrade sowie /wp-content/languages auf PHP Dateien prüfen.
  3. In den Theme-Verzeichnissen ebenfalls alles prüfen, bestenfalls durch die Originale ersetzen. Aber bitte, zuerst das Theme per FTP löschen und dann die heruntergeladene Originalversion wieder einspielen! Setzt man ein eigens angepasstes Theme ein, insbesondere die footer.php öffnen und mal anschauen. Ist dort irgendwelche „komischer PHP Code“ mit solchen Zeichen (eval(base64_decode(„ZnVuY3Rpb24gZmlsZV9nZXRfY29udGVudHNfY3VybCgkdXJsKSB7CiAkY… etc) oben in der Datei, sollte man ebenfalls versuchen die footer.php im Originalzustand erneut heraufzuladen.
  4. Im Plugin Ordner /wp-content/plugins sollte ebenfalls durch die Originale ausgetauscht werden. Auch hier gilt: Zuerst per FTP das Plugin löschen und mit dem erneut heruntergeladenen Originalversion ersetzten. Das Plugin revslider sollte zwingend gelöscht werden und dann mit einer neueren Version > 4.2. des revsliders ersetzt werden.
  5. Um sicher zu gehen, dass der Angreifer nicht eventuell bereits irgendwelche Passwörter ausgelesen hat, sollte man das Datenbank Zugangspasswort ändern. Achte auch darauf, in deine /wp-config.php das neue Zugangspasswort deiner Datenbank einzutragen. Bestenfalls um vielleicht bereits „geklaute Cookies“ zu entwerten erzeuge auch die neuen Security-Keys hier und ersetze diese in der /wp-config.php.
  6. Lade dir das aktuelle WordPress herunter und lade alles bis auf das Verzeichnis /wp-content per FTP auf deinen Host hoch.
  7. Nachdem alles heraufgeladen wurde, rufst Du den /wp-admin/ auf und loggst Dich ein. Ändere sofort dein Zugangspasswort unter Benutzer > Dein Profil und prüfe auch danach, ob unter Benutzer weitere Adminsitratoren existieren. Falls ja, sollte auch hier die Passwörter geändert werden und Admins die Du nicht kennst, solltest Du umgehend entfernen.
0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.