Ich wurde gehackt 2

28. März 2010 14:13 in Blog

Was habe ich an diesem Wochenende Zeit verbraten, um meine Webseite wieder sauber zu bekommen. Inzwischen sind da eine ganze Menge Dateien zusammengekommen, die Schadcode enthalten. Ich kann nur allen WordPress-Betreibern raten einfach einmal ihre Installation nach Anzeichen zu durchsuchen. Der Befall ist auch schon in älteren Backups zu finden, bevor es zu sichtbaren Fehlern kam.

Ein kurzer Befehl auf der Shell (im Installationsverzeichnis) zeigt, ob sich der Parasit auch bei euch eingenistet hat.

find ./ -iname "*.php" | xargs grep -H -n "eval(base64_decode"

Für Windows-User: Alle *.php Dateien nach “eval(base64_decode” mit einem Programm eurer Wahl durchsuchen.

Das brachte bei mir auch noch einige Dateien außerhalb von wp-admin zum Vorschein:

./htdocs/ucara/wp-admin/edit-form-advanced.php:6:eval(base64_decode("$d"));
./htdocs/ucara/wp-admin/includes/users.php:6:eval(base64_decode("$d"));
./htdocs/ucara/wp-admin/includes/class-wp-filesystem-check.php:3:eval(base64_decode("$dd"));
./htdocs/ucara/wp-content/themes/classic/archive.php:3:eval(base64_decode("$dd"));
./htdocs/ucara/wp-includes/images/crystal/license.php:3:eval(base64_decode("$dd"));
./htdocs/ucara/wp-includes/common.php:3:eval(base64_decode("$dd"));
./htdocs/ucara/wp-includes/wp-vars.php:6:eval(base64_decode("$d"));
./htdocs/ucara/wp-includes/class-read.php:6:eval(base64_decode("$d"));

Also dieses Mal alle Dateien der WordPress-Installation aus einem frischen Release-Archiv überschreiben und ein weiteres Mal die Passwörter ändern. *seufz*

Diese Nacht war mein Provider so freundlich, mich auf einen anderen Server zu verlegen, auf dem PHP und MySQL in 5.X läuft. Zum Glück nutze ich ja keine alte Software, die mit diesen Versionen inkompatibel ist. Auch habe ich den Umbau genutzt, einige Altlasten aus den Datenbanken zu tilgen (alte Joomla-Installationen z.B.).

Regelmäßige Backups und Kontrollen – ist wohl das einzige was hilft.

8 Reaktionen
#1Benny Neugebauer 30. März 2010 22:03

Hallo, dasselbe Problem hat mich heute auch ereilt. Bei mir lagen im “/wp-includes/wp-vars.php”-Ordner auch noch zwei weitere schadhafte Dateien namens “wp-vars.php” (verschlüsselter Quelltext) und “wp-version.php”. Ich bin gerade am Suchen nach der Schwachstelle. Eine weitere Meldung dazu findet man übrigens hier: http://www.biggle.de/blog/merkwuerdige-wp-vars-php-im-footer

#2Christian 30. März 2010 23:08

Ja, das ist wirklich ärgerlich.

Zusätzlich zu den oben genannten Dateien, gab es noch Veränderungen an meiner .htaccess (Symbolischer Link von einem Unterordner auf die wp-vars.php) und der footer.php in meinem selbst-erstellten Theme, um einige zusätzlichen Links einzubauen.

Meiner Erfahrung nach, ist die Installation in wenigen Minuten wieder komplett infiziert, wenn man eine der Dateien übersieht.

Ich hab hier eine recht umfangreiche Anleitung gefunden, um den Fremdcode wirklich komplett zu entfernen. Da ist man allerdings einige Zeit beschäftigt.

Ich wünsch dir viel Erfolg und auch allen anderen Betroffenen.

#3Benny Neugebauer 30. März 2010 23:44

Stimmt! Die .htaccess ist bei mir auch nicht mehr im Originalzustand. Ich bekomme übrigens beim Schreiben eines neuen Blogeintrags (“/wp-admin/post-new.php”) auch nur noch den WordPress-Footer angezeigt.

Mal sehen, was das WordPress Support Team dazu sagt (habe denen gerade geschrieben). Momentan teste ich den WordPress ExploitScanner (http://wordpress.org/extend/plugins/exploit-scanner/installation/). Dieses Plugin ist sehr umfangreich! Es beschwert sich bei mir überwiegend über die Verzeichnisrechte rwxr-x— (CHMOD 750), die bei einigen Dateien (z.B. meinem Template-Ordner) gesetzt sind. Habe die entsprechenden Rechte jetzt auf “550” umgestellt. Hoffe das reicht aus.

Hast du dein befallenes System einfach nur mit nicht-befallenen Dateien überschrieben? Wenn Ja, gingen dabei bei dir spezifische Einstellungen (z.B. für Widgets und Plugins) verloren?

Vielleicht wäre es hilfreich, wenn alle Betroffenen mal ihre Plugins vergleichen. Möglicherweise ist dort auch eine Schwachstelle zu finden.

Viele Grüße und einen schönen Abend.

Benny

#4Christian 31. März 2010 06:59

Den Exploitscanner habe ich auch erst hinterher gefunden. Dabei ist es ja eigentlich ungeschickt, mit Hilfe eines befallenen Systemes zu testen – dem Exploit steht ja nichts im Wege seine Arbeit vor dem Scanner zu verbergen. (und die MD5-Hashs kann ich bei mir eh nicht auf dem Server selbst vergleichen)

Bei den Rechten bin ich radikal vorgegangen und habe alles was möglich war auf “nur Lesen” gesetzt.

Bei mir hat es jetzt im Endeffekt gereicht alle WordPress-Ordner (ohne eigenen Inhalt) zu löschen und aus dem Archiv neu hochzuladen.

Einige Plugins die ich benutze(in der Hoffnung, dass diese Information nicht irgendjemandem mit bösen Absichten hilft):

– All In One SEO Pack
– Google Analyticator
– Google XML Sitemaps
– Lightbox 2
– Ozh’ Who Sees Ads
– Pagebar2
– TTFTitles
– Video Embedder
– WP-Syntax

deaktiviert(inzwischen gelöscht):
– Simple Tags
– Subscribe to comments
– semmelstatz
– proplayer

Für einen kompletten Review fehlt mir leider die Zeit und die Erfahrung mit PHP.

Christian

#5Krulli 31. März 2010 17:20

Also mein WP scheint clear, allerdings scheint mein Joomla 1.0.xx auf meiner Hauptseite was abbekommen zu haben… Allerdings wollte ich das Ding eh schon killen!

#6Benny Neugebauer 1. April 2010 16:12

@Christian, unser gemeinsamer Nenner steckt in “All In One SEO Pack”, “Pagebar2″ und “WP-Syntax”. Bei mir trat der Befall meiner Seite auch 1 Tag nach der Installation vom “All In One SEO Pack” auf. Das kann natürlich ein Zufall sein oder auch ein Zeichen… Ich werde es jetzt erstmal mit einer neuen WP-Installation versuchen.

#7Christian 1. April 2010 17:00

Vielen Dank für die Rückmeldung.

Wenn ich mir die Plugins so anschaue, sind die eigentlich alle nicht auf große Interaktion ausgelegt, so dass die Schnittstellen für Benutzer außerhalb der Administration sofern überhaupt vorhanden, minimal sein dürften.

Aber bei drei Plugins kann man ja mal etwas genauer in den Quelltext schauen.

  • Kommentar schreiben