WordPress Blog gehackt

Vor ein paar Tagen hatten wir das Vergnügen, einen neuen Kunden begrüßen zu dürfen. Der brachte nicht nur viele Ideen, sondern auch gleich eine Website, einen Shop und zwei produktspezifische Microsites mit. Der Shop lief auf Magento, die Microsites mit WordPress.

Es gehört zu unserer Standardvorgehensweise, neu ankommende Websites zunächst auf unsere internen Systeme zu kopieren. Dort wird entwickelt, getestet und optimiert, ehe die neuen Webseiten wieder im Web veröffentlicht werden – so auch in diesem Fall.

remote_shell_sourcecode
Während normaler Website-Sourcecode ganz normal lesbar ist, sind Schadcodes meistens unleserlich codiert

Umso erstaunter waren wir, dass bei der Übernahme der Daten unser Virenscanner sofort heftig anschlug – eine der WordPress-Sites war ganz offensichtlich gehackt. Sie enthielt Schadcode, genauer gesagt eine Remote Shell. Solche Shells sind nichts anderes als eine Art Administrator-Zugang auf den jeweiligen Server – nur eben, dass der Nutzer sich diesen Zugang unberechtigterweise verschafft hat. Shells dieser Art werden gerne genutzt um bspw. Kreditkartendaten zu klauen oder den Server in einen Internet-Zombierechner (Bot) zu verwandeln.

Das Logfile im Detail (anonymisierter Auszug)

  1. originalteile.autohaendler.xy 213.74.152.17 – – [02/Feb/2014:22:02:02 +0100] „GET /wp-admin/theme-editor.php?file=404.php&theme=car-template-1 HTTP/1.1″ 200 34251 „http://originalteile.autohaendler.xy/wp-admin/theme-editor.php“ „Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36“

    Erklärung: Der Angreifer versucht, über den Änderungseditor im WordPress die Fehlerseite (404) der Website zu öffnen. Die 404-Seite wird nur selten benötigt – nämlich immer nur dann, wenn jemand eine Webseite aufruft, die es nicht mehr gibt. Der Versuch schlägt fehl, lediglich die Maske zum Eingeben des Passworts erscheint. Änderungen an der Website sind eben nur erlaubt, wenn man zuvor das richtige Passwort eingegeben hat.

  2. originalteile.autohaendler.xy 213.74.152.17 – – [02/Feb/2014:22:02:14 +0100] „POST /wp-admin/theme-editor.php HTTP/1.1″ 302 403 „http://originalteile.autohaendler.xy/wp-admin/theme-editor.php?file=404.php&theme=car-template-1″ „Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36“

    Erklärung: Jetzt holt der Angreifer keine Daten mehr vom Server ab, sondern sendet stattdessen („Post“). Und was sendet er? Ganz einfach: er versucht sich einzuloggen und etwas auf der Seite 404.php zu hinterlegen. Das Ganze funktioniert sehr schnell und ist völlig automatisiert.

  3. originalteile.autohaendler.xy 213.74.152.17 – – [02/Feb/2014:22:09:54 +0100] „POST /wp-admin/admin-ajax.php HTTP/1.1“ 200 557 „http://originalteile.autohaendler.xy/wp-admin/theme-editor.php?file=404.php&theme=car-template-1&scrollto=4752&updated=true“ „Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36“

    Mission erledigt: knapp 7 Minuten nach dem ersten Scan war das Werk vollbracht und Schadcode in die Webseite eingebracht. Die Website war gehackt.

Bitte nochmal auf deutsch

Von einem türkischen Server aus wurde zunächst die WordPress-Site gescannt. Das ist nicht verboten. Es führt dazu, dass der Angreifer anschließend sehr genau weiß, welche Dateien von der Website abrufbar sind.

Jetzt hatte der Angreifer die Wahl: entweder konnte er öffentlich bekannte Schwachstellen im Code ausnutzen oder einfach die Vordertür benutzen. Vordertür bedeutet: der Angreifer „errät“ den Administrator-Zugang, indem er die populärsten Internet-Passwörter (z.B. die geklauten 130 Millionen Passwörter von Adobe) einfach durchprobiert.

Der WordPress-Wartungszugang mit dem dazugehörigen Texteditor ist zwar durch einen Benutzernamen mit Passwort geschützt. Doch wenn man den Standard-Benutzernamen „admin“ beibehält und dazu ein schwachses Passwort gewählt wurde, klappt das Erraten des Passworts erstaunlich gut.

Lange Rede, kurzer Sinn

  1. So schön und einfach Zugangsdaten im Stile von admin/firmenname123 auch sind, sinnvoll sind sie nicht. Wer damit seine Firmendaten gefährdet, handelt fahrlässig!
  2. „Never touch a running system“ war eine vor 50 Jahren vertretbare Geisteshaltung. In Zeiten von globaler Vernetzung muss das „running system“ stets up to date gehalten sein (gilt übrigens auch für TYPO3-Installationen). Wer das nicht macht, darf sich nicht wundern, wenn nicht nur die NSA bei ihm mitliest.
  3. Hacker-Probleme häufen sich, wenn die betreffende Website bei Google hoch rankt. Je wichtiger die Site für Google ist (Top10 Platzierung), desto besser wird sie für Angreifer sichtbar und umso mehr Systempflege braucht sie.

Ausblick

Wir alle haben gelernt, dass Updates am Computer dazugehören. Sei es Windows, der Virenscanner, Flash oder der Acrobat Reader – irgendeine Komponente braucht immer ein Update. Mit einer Website verhält es sich im Prinzip genauso, nur mit dem Unterschied, dass je nach Komplexität des Systems das Update nicht mal eben auf Knopfdruck installiert werden kann. Wer selbst Hand anlegen will, findet zahlreiche Hinweise darauf, worauf im professionellen Einsatz zu achten ist (Sicherheitscheck WordPress / TYPO3). Wer das nicht leisten kann oder will, lässt Profis ran.