WordPress gehackt – Erfahrungsbericht

Das kam unerwartet. Ich betreibe meinen Blog auf der Software WordPress. Ich schätze dass ich einmal in der Woche drauf schaue und dabei auch Aktualisierungen und Updates installiere. Plugins nutze ich so wenig wie möglich.
Um so überraschender war es für mich, dass mein WordPress gehackt wurde. Ganz überraschend leitet mich meine Seite auf die Domain : bemylittleteddy.info/single.js?source=006&

Ich möchte offen und Ehrlich damit umgehen und beschreibe was ich feststellen konnte und welche Maßnahmen ich ergreife / ergriffen habe. Zum einen als Warnung und zum anderen als Unterhaltung. Mich hat es wachgerüttelt. Daher hier Schritt für Schritt meine Analyse und Maßnahmen.

Was wurde geändert? Schadensanalyse

Erstmal habe ich den Blog offline genommen damit keiner durch den Hack zu schaden kommt. Die große Frage war natürlich wo steckt der Fehler und was wurde geändert.
Der Blog besteht aus 2 Dingen, Datenbank und Dateien.
Die Dateien habe ich auf dem Server nach dem Inhalt “bemylittleteddy” durchsucht:

grep -li "https://bemylittleteddy.info/single.js?source=006&!" -r ./*

Dabei wurde aber nichts gefunden.
Da aber irgend etwas andere geändert worden sein könnte, habe ich mir die Modification-Time ausgeben lassen. Also die Zeit zu der die letze Änderung an Daten Stattgefunden hat

find .  -type f | xargs ls -ltr

Dabei kam heraus, dass es keine Änderungen an den Daten seit meinem letzten Update gab. Was schon mal ganz gut ist. Ich gehe daher davon aus, dass keinerlei Änderungen und kein Zugriff auf diese Daten möglich war. Natürlich kann ein Auslesen nicht ausgeschlossen werden. z.B. das MySQL Passwort aus der WP-Config.

SQL überprüfen

Jetzt ging es an die MySQL Datenbank. Dank der Suchfunktion war schnell die Tabelle “wp_options” gefunden. Dort wurden siteurl und home gändert und die oben erwähnte Domain eingetragen.
Leider war ich an diesem Punkt etwas voreilig und habe meine Daten wieder eingetragen.
Dadurch habe ich den Zeitpunkt des letzten Zugriffs überschrieben. Diesen hätte man ansonsten mit folgendem Befehl auslesen können:

SHOW TABLE STATUS LIKE 'wp_options'

Weitere Änderungen wurden nicht gefunden.

Meiner Einschätzung nach bin ich mit einem blauen Auge davon gekommen. Eine kleine Änderung an den Webseiten Einstellungen, wahrscheinlich über eine SQL Injektion, führt dazu dass mein Blog auf Werbung weiterleitet. Änderungen an meinen Daten gab es nicht, aber wie wurde das gemacht und wie stopft man das Loch.

Sicherheitslücke lokalisieren

Nachdem die Änderungen gefunden waren stellt sich die Frage wie diese gemacht wurden. Grundlegend gibt es mehrere Möglichkeiten an die Daten bzw. die MySQL Datenbank zu kommen.

1. Konsole / Über den Host.
2. Über die Webseite

Dass jemand sich Zugriff über meinen Hoster geschaffen hat, evt. SSH mit meinem Login oder die Verbindungsdate für die MySQL Datenbank kannte, schließe ich einfach mal aus. Der Aufwand dafür wäre viel zu groß für den geringen Schaden der verursacht wurde.
Daher gehe ich von einem Sicherheitsproblem in WordPress oder den Plugins aus.

Meine WordPress Installation ist aktuell und die Liste an Plugins kurz:

  • YellowPencil Pro
  • Smush
  • Gutenberg
  • Enlighter – Customizable Syntax Highlighter
  • Akismet Anti-Spam

Kurzes Googlen mit den Plugin Namen und WordPress Hack Exploit bringt eigentlich nur einen Treffer. YellowPencil scheint das Problem zu sein. An dieser Stelle ärgere ich mich. Das Plugin brauche ich ab und an mal um kleine Details am Design der Seite zu ändern. Nichts was ständig laufen muss. Eigentlich hätte das Plugin deaktiviert sein können – aber man ist halt faul.

Den Schuldigen finden?

natürlich stellt sich die Frage: “Wer war das” Anhand der Änderung in der MYSQL Tabelle weis man wann der Zugriff stattgefunden hat. Die Logdatein des Webservers verraten alle IP’s die zu diesem Zeitpunkt aktiv waren und damit hat man einen guten Anhaltspunkt.
In meinem Fall handelt es sich um einen VPN Server und der “Schaden” ist eine spannende Herausforderung für mich. Daher werde ich keine Anzeige erstatten. Aber auf die Positiven Dinge möchte ich noch eingehen:

Sicherheitsmaßnahmen greifen!

Zum ersten mal bin ich wirklich froh, dass ich einige Maßnahmen seit geraumer Zeit konsequent umsetze:

  • 1. Blog läuft auf separatem Webspace
  • 2. Alle Passwörter sind zufallsgeneriert und werden nur einmal verwendet.
  • 3. Keine Nutzerdaten
  • 4. Wenige persönliche Informationen

Ich nutze einen günstigen Webspace bei Netcup für meinen Blog. Dort liegt er gut und keine Daten auf meinem Server konnten kompromittiert werden.
Da ich alle Passwörter generiere und nur einmal verwende sind evt. erlangte Passwörder, z.B. aus der WP-Config für die MYSQL Datenbank nichts wert.
Es gibt nur einen Nutzer auf dem Blog und das bin ich. Das Gehashde Passwort wurde evt. aus der Datenbank ausgelesen, ist aber ebenfalls zufällig generiert. Es gibt keine Persönlichen Daten von mir auf dem Blog.

Gedanken und Konsequenzen

Nach meiner Einschätzung habe ich den Hack einigermaßen schadlos überstanden. Trotzdem rüttelt er einen Wach. Welche Konsequenzen sollte man also ergreifen.

  1. Backups. Ich mache sporadisch mal Backup des Blogs aber nicht automatisiert. Das muss ich mal ändern.
  2. Plugins abschalten. Plugins die nicht wirklich wichtig sind und keine Funktion dauerhaft bereitstellen sollten deaktiviert werden.
  3. WordPress nicht nutzen. Der Vorteil von WordPress ist auch der größte Nachteil. Zu viele Nutzen das System. Es ist einfach zu lukrativ für gefundene Lücken Scanner zu bauen und diese wahllos über Webseiten laufen zu lassen. Gerade für meine statischen Seiten würde eine andere Lösung vollkommen ausreichen,

So, ich hoffe meine Erfahrung hilft jemanden oder war für den einen oder anderen interessant.