WordPress gehackt: Ein Leitfaden zur Wiederherstellung und Absicherung einer kompromittierten Installation

Redaktion

Web
WordPress gehackt

Dieser detaillierte Leitfaden soll helfen, nach einem erfolgreichen Hacker-Angriff auf ein WordPress den Überblick zu behalten und eine kompromittierte Installation wiederherzustellen sowie zu sichern. Dieser Leitfaden führt Schritt für Schritt durch den gesamten Prozess, von der ersten Schadensbegrenzung bis hin zur präventiven Absicherung der Website.

Schritt 1: Schadensbegrenzung

1.1. Server von Internet isolieren

Um weiteren Schaden, Zugriff durch Hacker und Datendiebstahl zu verhindern, sollte der Server vorübergehend vom Internet getrennt werden. Dafür gibt es verschiedene Möglichkeiten:

  • Server herunterfahren und in ein Rescue-Live System booten (sicherste Herangehensweise)
  • Netzwerkadapter deaktivieren und über die (virtuelle) KVM-Konsole zugreifen
  • Traffic über Firewall-Regeln unterbinden, um externen Zugriff (ein UND ausgehend!) zu unterbinden

1.2. Wartungsmodus aktivieren

Falls die Website online bleiben muss, sollte der Wartungsmodus aktiviert werden. Dies kann durch eine manuelle Bearbeitung der .htaccess-Datei geschehen. Legen Sie dafür eine Wartungsseite namens wartungs.html in den Webroot des Servers und erstellen Sie die folgenden Regeln in der .htaccess Datei. Ersetzen Sie dafür die Beispiel IP 1.1.1.1 mit der IP Adresse Ihres Internet-Anschlusses, welche Sie zum Beispiel auf der Webseite whatismyipaddress.com einsehen können. Damit wird die Wartungsseite nur für Ihre Adresse nicht angezeigt, sodass nur Sie weiterhin zugriff auf die WordPress-Installation haben.

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^Ihre.IP.Adresse$

RewriteRule .* /wartung.html [R=302,L]

Schritt 2: Voruntersuchung

2.1. Beteiligte benachrichtigen

Alle Stakeholder sollten über den Vorfall informiert werden, insbesondere dann, wenn personenbezogene Daten betroffen sein könnten. Dies war bei unserer Website nicht der Fall, da die Datenbank des Servers keine personenbezogenen Kundendaten speichert.

2.2. Aktuellen Zustand sichern

Ein Backup der aktuellen, kompromitierten Installation sollte für spätere forensische Untersuchungen erstellt werden. Im Idealfall sollte dies auf einem Live-System erstellt werden, um eine Manipulation der Backup-Dateien durch Schadsoftware zu unterbinden.

tar -cvpzf wordpress-backup.tgz /pfad/zur/wordpress-installation

mysqldump -u root -p datenbankname > wordpress-db-backup.sql

2.3. Geänderte Dateien erkennen

Die WordPress-Installation sollte auf kürzlich geänderte Dateien überprüft werden. Das find Argument -mtime steht hier für Stunden.

find /pfad/zur/wordpress-installation -type f -mtime -5

Schritt 3: Entfernen des Schadcodes

3.1. WordPress-Kern-Dateien ersetzen

Die WordPress-Kern-Dateien sollten von der WordPress.org Download Seite neu heruntergeladen und die kompromittierten Dateien (mit Ausnahme von wp-config.php und wp-content) ersetzt werden. Achten Sie dabei unbedingt darauf, die identische WordPress Version herunterzuladen!

wget https://wordpress.org/wordpress-6.5.3.zip

unzip latest.zip

cp -r wordpress/* /pfad/zur/wordpress-installation/

3.2. wp-config.php überprüfen

Die wp-config.php-Datei sollte auf verdächtige Änderungen überprüft werden. Besondere Aufmerksamkeit gilt:

  • Datenbankverbindungsinformationen
  • Zugriffsschlüssel und Sicherheitstoken
Siehe auch  Seit wann gibt es YouTube?

3.3. Plugins und Themes überprüfen

Alle Plugins und Themes sollten vorübergehend deaktiviert und einzeln wieder aktiviert werden, um potenziell bösartige Erweiterungen zu identifizieren.

# Alle Plugins deaktivieren

wp plugin deactivate --all

# Themes einzeln aktivieren

wp theme activate twentytwentyfour

Alternative Tools zur Überprüfung:

Die Folgenden WordPress Plugins eignen sich zum Scannen nach Malware. Im Idealfall installieren Sie eines der folgenden Plugins vor einem erfolgreichen Angriff:

3.4. Datenbank bereinigen

  • Die Tabellen wp_options, wp_users und andere sollten auf verdächtige Einträge überprüft werden.
  • Setzen Sie potenziell kompromittierte Datenbank-Tabellen zurück!
  • Nutzen Sie den folgenden SQL Query, um nach unerwarteten Administrator-Accounts suchen:
SELECT ID, user_login FROM wp_users WHERE user_level = 10;

Schritt 4: Aktualisieren und Patchen

4.1. WordPress aktualisieren

Falls Ihre WordPress Version nicht “latest“ war, sollten Sie die WordPress-Installation umgehend auf die neueste Version aktualisieren! Stellen Sie sicher, dass Sie Ihr WordPress IMMER auf die neuste Version upgraden, am besten vollautomatisch!

wp core update

4.2. Plugins und Themes aktualisieren

Alle Plugins und Themes sollten ebenfalls auf ihre neueste Version aktualisiert werden.

wp plugin update --all

wp theme update --all

4.3. Anmeldedaten ändern

Alle relevanten Anmeldedaten sollten geändert werden:

  • WordPress-Admin-Passwörter
  • Datenbank-Passwörter
  • FTP-Zugangsdaten
  • Server-Zugangsdaten

Schritt 5: Sicherheit erhöhen

5.1. Dateiberechtigungen setzen

Setzen Sie die korrekten Dateiberechtigungen auf Ihrem Server mit den folgenden BASH-Befehlen. Diese stellen sicher, dass nur die Linux-Eigentümer sowie alle Mitglieder ihrer Gruppe auf die Dateien zugreifen können. Auch erhält damit nur der Linux-Nutzer, welcher Eigentümer der Dateien ist, Schreibzugriff auf die Dateien:

find /pfad/zur/wordpress-installation -type d -exec chmod 750 {} \;

find /pfad/zur/wordpress-installation -type f -exec chmod 640 {} \;

5.2. Datei-Bearbeitung deaktivieren

In der wp-config.php-Datei sollte die Datei-Bearbeitung deaktiviert werden (nährere Informationen dazu finden Sie in diesem Blogpost).

define('DISALLOW_FILE_EDIT', true);

5.3. Directory Listing deaktivieren

Das Directory Listing sollte in .htaccess deaktiviert werden. Dies verhindert, dass Verzeichnisse und Dateien direkt über den Webserver gelistet werden können.

Options -Indexes

5.4. Login-Versuche begrenzen

Ein Plugin sollte verwendet werden, um die Anzahl der Login-Versuche zu begrenzen. Im Idealfall sollten Sie für wp-login.php eine Zwei-Faktor-Authentifizierung aktiviert werden. Das Plugin Fluent-Security bietet diese Möglichkeiten.

Siehe auch  Kollaboratives Arbeiten in der digitalen Ära: Ein Ratgeber für Unternehmen

5.5. Regelmäßige Backups einrichten

Plugins wie UpdraftPlus können für regelmäßige Backups verwendet werden. Alternativ können Sie eigene Backup-Scripte über Cron-Jobs nutzen.

Schritt 6: Überwachung und Überprüfung

6.1. Überwachung aktivieren

  • Server-Logs sollten eingerichtet und regelmäßig überprüft werden.
  • WordPress-Sicherheitsaudit-Logs aktivieren, z.B. über das Plugin WP Activity Log.

6.2. Regelmäßige Sicherheitsüberprüfungen

Regelmäßige Schwachstellen-Scans und Penetrationstests sollten durchgeführt werden, z.B. mit wpsec.com.

Sofortige Befehle

Die folgenden Befehle können sofort ausgeführt werden, um Informationen über mögliche unbefugte Zugriffe zu sammeln.

# Überprüfen Sie das System auf unbefugte Benutzer

awk -F':' '{ print $1}' /etc/passwd

# Liste der laufenden Prozesse auf verdächtige Aktivitäten prüfen

ps aux

# Crontab auf unerwartete Jobs überprüfen

crontab -l

Schlusswort

Nach der unmittelbaren Reaktion ist es wichtig, eine umfassende Überprüfung des Vorfalls durchzuführen, um die Sicherheitsmaßnahmen zu verbessern und die Wahrscheinlichkeit zukünftiger Angriffe zu verringern.

Ein herzliches Dankeschön geht an die Firma Blunix GmbH aus Berlin für den schnellen und professionellen Linux-Support bei der Wiederherstellung unserer Website nach einem Hackerangriff. Dank des Fachwissens und der zügigen Reaktionen durch Blunix konnten wir unsere Website schnell wieder online bringen. Ihre Hilfe war entscheidend, um unsere Seite für zukünftige Angriffe besser abzusichern.