Zum Inhalt

Hinweis

Dieses Helpcenter befindet sich noch im Aufbau. Einige Themen fehlen noch oder werden aktuell überarbeitet.

Wenn dir etwas fehlt oder eine Formulierung unklar ist, sag uns bitte kurz Bescheid. Am hilfreichsten ist der Link zur Seite und ein Beispiel, was du erreichen möchtest.

Weiterführend: Wo finde ich was? · Ich habe keinen Zugang · Zugänge absichern

Meine Website wurde gehackt: was jetzt zu tun ist

Fremde Inhalte auf der Startseite, eine Warnung von Google, Besucher, die auf Werbeseiten landen, oder eine Mail von uns über Schadcode: Diese Seite führt dich der Reihe nach durch, was zu tun ist.

Das war fast sicher kein Angriff auf dich persönlich

Dahinter steckt in aller Regel kein Mensch, der es auf dich abgesehen hat, sondern ein Programm, das ununterbrochen das halbe Internet nach bekannten Lücken absucht. Ob deine Seite ein Verein, ein Shop oder ein Blog ist, spielt dabei keine Rolle.

Das ist die gute Nachricht: Gefunden wurde eine offene Tür, nicht du. Und offene Türen lassen sich schließen.

Woran du es erkennst

Anzeichen Was dahintersteckt
Du hast Post von uns bekommen der häufigste Fall. Unsere Server prüfen laufend auf Schadsoftware, wir melden uns mit einer Liste der Funde
Fremde Inhalte, Werbung oder eine ganz andere Seite die sichtbarste Form, oft nur für Besucher von Suchmaschinen
Google zeigt eine rote Warnseite Google hat Schadcode entdeckt und schützt seine Nutzer
Besucher werden woanders hingeleitet eine Umleitung wurde eingebaut, oft nur für Handys
Deine Seite taucht mit fremden Suchbegriffen auf versteckte Seiten wurden angelegt, etwa für Pillen oder Glücksspiel
Über deine Domain wird Spam verschickt ein Skript verschickt in deinem Namen
Der Speicherplatz wächst ohne Grund fremde Dateien wurden abgelegt
Die Seite ist plötzlich sehr langsam häufig ein Programm, das im Hintergrund Rechenleistung abzweigt

Meistens merken wir es zuerst

Die wenigsten Einbrüche fallen dem Betreiber selbst auf, denn eine befallene Seite sieht für ihn oft völlig normal aus. Umleitungen greifen häufig nur bei Besuchern von Suchmaschinen oder nur auf Handys, und ein Skript, das Spam verschickt, hinterlässt auf der Seite gar keine Spur.

Deshalb prüfen unsere Server laufend. Wenn du von uns eine Nachricht mit einer Dateiliste bekommen hast, ist das der Ausgangspunkt: Die Liste sagt dir, wo etwas gefunden wurde. Sie sagt dir aber nicht, ob es alles war, und genau darum geht es auf dieser Seite.

Nicht jede Auffälligkeit ist ein Einbruch

Eine weiße Seite oder ein Fehler 500 kommt viel häufiger von einem missglückten Update als von einem Einbruch. Sieh deshalb zuerst dort nach. → WordPress zeigt eine weiße Seite oder Fehler 500

Zuerst: was du nicht tun solltest

Nicht sofort alles löschen. Es ist verständlich, aber es zerstört die Spuren. Ohne die weißt du hinterher nicht, wie jemand hereingekommen ist, und schließt die Lücke nicht.

Die Seite nicht ausgiebig im Browser ansehen. Solange Schadcode aktiv ist, kann sie versuchen, auch deinen Rechner anzugreifen. Zum Aufräumen musst du sie nicht öffnen.

Nicht nur die gemeldeten Dateien löschen. Das ist der häufigste und teuerste Fehler. Wer eingebrochen ist, legt fast immer mehrere Hintertüren an unabhängigen Stellen an. Löschst du nur die eine, die auffiel, bist du in wenigen Tagen wieder da, wo du warst.

Nicht hektisch ein Backup einspielen. Erst muss klar sein, ob das Backup älter ist als der Einbruch. Sonst holst du dir den Schadcode zurück und hast zusätzlich deine neueren Inhalte verloren.

Schritt 1: Sichern, was da ist

So merkwürdig es klingt: Zieh zuerst eine Sicherung des befallenen Zustands.

Sie ist deine Rückversicherung, falls beim Aufräumen etwas kaputtgeht, und sie enthält die Spuren, mit denen sich der Weg des Einbruchs nachvollziehen lässt. Beschrifte sie deutlich, damit niemand sie später versehentlich einspielt. → Sicherung anlegen und wiederherstellen

Schritt 2: Alle Zugangsdaten wechseln

Geh davon aus, dass alles gelesen werden konnte, was auf dem Webspace liegt. Dazu gehören auch die Datenbank-Zugangsdaten, die im Klartext in den Konfigurationsdateien deines CMS stehen.

Wechsle deshalb alle davon:

  • Kundenportal und cPanel
  • FTP-Zugänge, auch die längst vergessenen
  • Datenbank-Benutzer
  • E-Mail-Postfächer, jedes einzeln
  • Zugänge im CMS selbst, allen voran der WordPress-Administrator
  • SSH, falls du es nutzt, siehe unten

Wichtiger noch: lösche, was du nicht kennst

Passwörter zu wechseln reicht nicht, wenn sich jemand einen eigenen Zugang angelegt hat. Genau das passiert fast immer, denn ein zusätzliches Konto überlebt jeden Passwortwechsel und fällt niemandem auf.

Geh deshalb diese vier Listen durch und lösche jeden Eintrag, den du nicht zuordnen kannst:

Wo nachsehen Worauf achten
WordPress → Benutzer Administratoren, die du nicht angelegt hast. Oft mit unauffälligem Namen wie admin, wpuser oder support
cPanel → E-Mail Konten Postfächer, die niemand im Haus nutzt
cPanel → FTP-Konten Zugänge ohne erkennbaren Zweck
cPanel → Weiterleitungen stille Kopien an fremde Adressen

Im Zweifel löschen. Ein versehentlich entferntes Konto legst du in zwei Minuten neu an. Ein übersehenes fremdes Konto bedeutet, dass der Einbrecher jederzeit zurückkommen kann, ganz gleich wie oft du deine Passwörter änderst.

Sieh im CMS auch nach dem Datum der letzten Anmeldung. Ein Konto, das gestern aktiv war, obwohl niemand daran gearbeitet hat, ist ein eindeutiger Fund.

Wenn du SSH nutzt

Für SSH gilt dasselbe Passwort wie fürs cPanel. Wenn du das gewechselt hast, ist der Zugang per Passwort damit schon erledigt, ein zusätzlicher Schritt ist nicht nötig.

Anders ist es bei hinterlegten Schlüsseln. Ein Schlüssel funktioniert unabhängig vom Passwort weiter. Wer einen eingetragen hat, kommt also weiter herein, ganz gleich wie oft du das Passwort änderst.

Im cPanel: SicherheitSSH-ZugriffSSH-Schlüssel verwaltenwie das geht

Dort stehen die hinterlegten Schlüssel. Geh die Liste durch:

Fremde Schlüssel entfernen. Das ist der wichtige Teil. Steht dort einer, den du nicht selbst eingetragen hast, gehört er sofort weg. Das ist eine Hintertür, die sonst dauerhaft offen bleibt.

Deinen eigenen Schlüssel wechseln? Nur, wenn der Rechner betroffen sein könnte, auf dem der private Teil liegt. Auf dem Server steht nämlich nur der öffentliche Teil, und mit dem allein kann niemand etwas anfangen.

Eine Ausnahme, die du prüfen solltest

Manche legen ihren privaten Schlüssel versehentlich auf dem Webspace ab, etwa beim Einrichten einer Übertragung. Wenn das bei dir der Fall ist, muss der Schlüssel ersetzt werden, denn dann konnte er mitgelesen werden.

Erkennbar an Dateien wie id_rsa oder id_ed25519 ohne die Endung .pub. Solche Dateien gehören nie auf einen Webserver.

Und gleich die Anmeldung in zwei Schritten einschalten

Ein neues Passwort allein reicht nicht, wenn es auf demselben Weg wieder abhandenkommt. Mit der Anmeldung in zwei Schritten braucht es zusätzlich einen Code vom Handy, und ein gestohlenes Passwort nützt niemandem mehr.

Schalte sie an diesen drei Stellen ein:

Wo Wofür
Kundenportal Verträge, Domains, Kündigungen
cPanel die gesamte technische Verwaltung
Webmail jedes Postfach einzeln, unter Sicherheit

Nutzt du Zimbra, geht es dort ebenfalls, in den Sicherheitseinstellungen deines Kontos. Für Mailprogramme, die keinen Code abfragen können, legst du dort ein eigenes Anwendungspasswort an. → Zugänge absichern · Zimbra

Dich benachrichtigen lassen, wenn sich jemand anmeldet

Diese Einstellung ist gut versteckt, aber sie ist genau das, was du nach einem Einbruch haben willst: eine Nachricht, sobald sich jemand an deinem cPanel anmeldet.

Im cPanel: EinstellungenKontaktinformationen

Scroll dort zu Benachrichtigungseinstellungen und setz die Haken so:

cPanel: Benachrichtigung bei Anmeldung

  • „Jemand meldet sich an meinem Konto an."anhaken
  • „Die Benachrichtigungen bei erfolgreicher Anmeldung deaktivieren."Haken entfernen

Danach unten auf Speichern.

Die Option ist ab Werk ausgeschaltet

Standardmäßig ist der obere Haken nicht gesetzt und der untere doch — also genau andersherum als oben. Du bekommst also von Haus aus keine Meldung, wenn sich jemand anmeldet.

Die mittlere Zeile lässt du bewusst frei. Mit ihr bekämst du auch bei jeder eigenen Anmeldung aus dem gewohnten Netz eine Nachricht, und nach einer Woche liest sie niemand mehr. Ohne sie meldet sich das System nur, wenn die Anmeldung von woanders herkommt, und das ist genau der Fall, der dich interessiert.

Trag dort eine Adresse ein, die woanders liegt

Auf derselben Seite steht oben die Adresse, an die diese Nachrichten gehen. Nimm dafür kein Postfach aus diesem Tarif. Wer sich Zugang verschafft hat, könnte sonst die Warnung mitlesen und löschen, bevor du sie siehst.

cPanel weist an dieser Stelle selbst darauf hin.

Danach an alle Geräte denken

Nach dem Wechsel der Postfach-Passwörter musst du sie auf jedem Gerät nachziehen, auch beim Kopierer mit Scan-Funktion. Sonst probieren die es weiter mit dem alten und sperren deine Internetadresse aus. → Passwort geändert, und jetzt geht gar nichts mehr

Schritt 3: Den richtigen Weg zur Bereinigung wählen

Es gibt drei, und sie taugen unterschiedlich viel:

Weg Wann sinnvoll Ehrliche Bewertung
Aufräumen wenige Funde, du kennst die Installation gut Verlockend, aber unsicher. Eine übersehene Hintertür genügt
Backup einspielen du kennst den Einbruchszeitpunkt und hast eine Sicherung von davor Meist der schnellste Weg. Wir bewahren zwölf Wochen auf, frag uns nach dem Zeitpunkt
Sauber neu aufbauen im Zweifel immer Der einzige Weg mit Gewissheit. Aufwendiger, aber danach ist Ruhe

Das Backup ist oft der schnellste Weg, wenn der Zeitpunkt stimmt

Der entscheidende Satz dazu: Die Sicherung muss älter sein als der Einbruch. Spielst du eine neuere ein, holst du dir den Schadcode zurück und hast obendrein deine Arbeit der letzten Tage verloren.

Die gute Nachricht: Wir bewahren die Sicherungen zwölf Wochen lang auf. Du kannst also weit zurückgehen, auch wenn der Einbruch schon eine Weile zurückliegt und erst jetzt aufgefallen ist. Genau das ist der häufige Fall, denn viele Einbrüche bleiben wochenlang unbemerkt.

Woher weißt du, wann es passiert ist? Meist gar nicht selbst. Frag uns: Wir sehen in den Protokollen nach, wann die ersten auffälligen Dateien angelegt wurden, und nennen dir ein Datum. Erst damit kannst du die richtige Sicherung auswählen.

So gehst du vor:

  1. Uns nach dem Einbruchszeitpunkt fragen, bevor du etwas einspielst
  2. Eine Sicherung wählen, die deutlich davor liegt, im Zweifel ein paar Tage mehr
  3. Dateien und Datenbank gemeinsam zurückspielen, aus demselben Stand
  4. Vorher den aktuellen Stand sichern, siehe Schritt 1, damit neuere Inhalte nicht verloren sind
  5. Einspielen und danach sofort die Lücke schließen, siehe Schritt 5

Sicherung wiederherstellen

Im Zweifel: nimm einfach die älteste

Wenn sich der Zeitpunkt nicht sicher eingrenzen lässt, geh lieber zu weit zurück als zu wenig. Bei den meisten Websites verlierst du dabei fast nichts.

Eine typische Firmen- oder Vereinsseite ändert sich über Wochen praktisch nicht: Leistungen, Impressum, Kontakt und Anfahrt stehen oft seit Jahren unverändert da. Eine Sicherung von vor zehn Wochen ist dann inhaltlich dieselbe Seite wie die von gestern, nur eben ohne den Schadcode.

Anders sieht es aus, wenn deine Seite laufend neue Inhalte bekommt: ein Shop mit Bestellungen, ein Blog mit regelmäßigen Beiträgen, ein Buchungssystem oder ein Forum. Dort steckt der Wert in der Datenbank, und da lohnt es sich, den Zeitpunkt genauer einzugrenzen.

Die Abwägung in einem Satz: Ein paar Wochen alte Inhalte kannst du nachtragen, eine übersehene Hintertür kostet dich die ganze Arbeit noch einmal.

Dateien und Datenbank zurückspielen, aus demselben Stand

Der Fehler, der jede zweite Bereinigung scheitern lässt: Es werden nur die Dateien zurückgespielt, die Datenbank bleibt, wie sie ist.

Damit ist der Einbruch nicht behoben, denn in der Datenbank steckt oft genauso viel:

  • zusätzliche Administratoren, die sich jederzeit wieder anmelden können
  • eingeschleuster Code in Beiträgen und Seiten, der bei jedem Aufruf mitläuft
  • veränderte Einstellungen, etwa eine fremde Adresse für Systemmails oder eine eingebaute Umleitung
  • versteckte Seiten, die für Suchmaschinen angelegt wurden

Nimm deshalb beides aus demselben Sicherungsstand. Eine alte Datei-Sicherung mit einer neuen Datenbank zu kombinieren führt außerdem oft dazu, dass die Seite gar nicht mehr läuft, weil die Versionsstände nicht zusammenpassen.

Und danach im CMS nachsehen, ob die Liste der Benutzer wirklich nur die enthält, die du kennst.

Das Backup allein löst gar nichts

Ein eingespieltes Backup bringt genau den Zustand zurück, in dem die Lücke noch offen war. Ohne den nächsten Schritt bist du in wenigen Tagen wieder da, wo du warst, manchmal schon in Stunden.

Deshalb gehören diese beiden Dinge unmittelbar zusammen: erst einspielen, dann sofort aktualisieren. Trenne die Seite dafür notfalls kurz vom Netz, indem du sie mit einem Passwortschutz versiehst, bis du fertig bist. → Verzeichnis mit Passwort schützen

Was tun mit Inhalten von nach dem Einbruch?

Beiträge, Bestellungen oder Bilder, die nach dem Einbruch dazugekommen sind, fehlen nach dem Einspielen. Hol sie einzeln aus der Sicherung, die du in Schritt 1 gezogen hast.

Aber nur die Inhalte, nicht ganze Ordner oder Programmdateien. Sonst kommt der Schadcode genau auf diesem Weg zurück.

Der sichere Weg im Detail

  1. CMS, Themes und Plugins frisch herunterladen und neu einspielen, nicht die vorhandenen Dateien behalten
  2. Nur Inhalte übernehmen, also Bilder, Dokumente, Uploads. Diese Ordner vorher auf PHP-Dateien durchsehen, dort gehört keine einzige hinein
  3. Die Datenbank prüfen, bevor du sie übernimmst. Auch dort wird Schadcode abgelegt, etwa in Beiträgen oder Einstellungen
  4. Alles, was du nicht zuordnen kannst, weglassen. Ein Plugin, das du seit Jahren nicht nutzt, kommt nicht wieder mit

Schritt 4: Nachsehen, wo sonst noch etwas steckt

Der Punkt, an dem die meisten Bereinigungen scheitern. Es reicht nicht, die Website-Dateien anzusehen:

Geplante Aufgaben. Ein Cronjob, der stündlich eine Datei neu anlegt, macht jede Bereinigung zunichte. Prüfe im cPanel unter Erweitert → Cron-Jobs, ob dort etwas steht, das du nicht selbst eingerichtet hast. → Cronjobs einrichten

Zusätzliche Zugänge. Sieh nach, ob im CMS neue Administratoren angelegt wurden, und im cPanel unter FTP-Konten, ob dort ein Konto steht, das du nicht kennst.

E-Mail-Weiterleitungen. Eine stille Weiterleitung, die alle Nachrichten mitkopiert, ist ein beliebtes Mitbringsel. Im cPanel unter E-Mail → Weiterleitungen und bei der Standardadresse nachsehen. → Über mein Postfach wurde Spam verschickt

Die Datei .htaccess. Dort werden gern Umleitungen eingebaut, die nur bei Besuchern von Suchmaschinen oder nur auf Handys greifen. Deshalb fällt es dir selbst oft nicht auf. → .htaccess Grundlagen

Ungewöhnliche Dateien in Upload-Ordnern. In wp-content/uploads und vergleichbaren Verzeichnissen gehören Bilder und Dokumente hin, niemals ausführbarer Programmcode.

Wenn du Git nutzt: das Repository gehört mit geprüft

Das ist die unangenehmste Falle überhaupt, weil sie nach der Bereinigung zuschlägt: Du räumst sauber auf, spielst das nächste Mal deine Änderungen ein, und der Schadcode ist zurück. Nicht weil du etwas übersehen hast, sondern weil er im Repository liegt.

Im cPanel: DateienGit™ Verwaltung

Drei Stellen sind zu prüfen:

Was Worauf achten
Der Inhalt des Repositorys Wurde dort hineingeschrieben? Sieh dir die letzten Änderungen an, besonders solche, die du nicht selbst gemacht hast
Die Datei .cpanel.yml Sie steuert, was beim Einspielen ausgeführt wird. Steht dort ein Befehl, den du nicht kennst, wird er bei jedem Deploy ausgeführt
Die Zugänge zum Repository Liegt es bei einem Anbieter wie GitHub, prüf dort die Mitarbeiter und die hinterlegten Deploy-Schlüssel

Behandle das Repository wie den Webspace selbst. Wenn es befallen ist, hilft es nicht, nur den Server zu bereinigen: Beim nächsten Einspielen wäre alles wieder da.

Bei Zweifeln lohnt der Blick in die Änderungshistorie. Git zeichnet auf, wann was von wem geändert wurde, und genau das macht die Suche hier einfacher als auf dem Webspace.

Schritt 5: Die Lücke schließen

Ohne diesen Schritt wiederholt sich alles. Der Einbruch lief fast immer über eine veraltete Version, und zwar meist nicht über das CMS selbst, sondern über ein Plugin oder ein Theme.

  1. Alles auf den aktuellen Stand bringen, CMS, Plugins, Themes
  2. Ungenutztes löschen. Ein deaktiviertes Plugin ist trotzdem angreifbar, denn seine Dateien liegen weiter auf dem Server
  3. Automatische Updates einschalten. Der wirksamste einzelne Schritt überhaupt
  4. Aufgegebene Erweiterungen ersetzen. Wird ein Plugin vom Entwickler nicht mehr gepflegt, bleibt seine Lücke für immer offen

Die schlimmsten Dinge, die du tun kannst · Website sicher und schnell betreiben

Schritt 6: Bei Google die Warnung entfernen lassen

Wenn Google eine Warnung anzeigt, verschwindet sie nicht von selbst. Nach der Bereinigung meldest du die Seite über die Google Search Console zur erneuten Prüfung an. Das dauert meist ein bis drei Tage.

Solange die Warnung steht, kommen praktisch keine Besucher mehr. Setz diesen Schritt also nicht ans Ende der Liste.

Was wir dabei tun und was nicht

Was wir tun:

  • Einen erneuten Suchlauf anstoßen, damit du eine vollständige und aktuelle Liste der Funde hast
  • Dir sagen, wann der Einbruch stattgefunden hat, soweit sich das aus den Protokollen ergibt
  • Prüfen und bestätigen, ob nach deiner Bereinigung wirklich alles weg ist
  • Bei Bedarf eine ältere Sicherung heraussuchen

Was wir nicht tun: Wir bereinigen fremde Webinhalte nicht eigenmächtig. Wir wissen nicht, welche Datei zu deiner Seite gehört und welche nicht, und ein falsch gelöschtes Theme legt deine Website lahm. Dafür brauchst du jemanden, der deine Website betreut.

Wenn nichts geschieht, müssen wir die Seite sperren

Reagiert niemand, versehen wir die Website mit einem Passwortschutz. Für Besucher ist sie dann nicht mehr erreichbar, für dich weiterhin.

Das ist keine Strafe. Solange Schadcode ausgeliefert wird, gefährdet die Seite ihre eigenen Besucher, und Google trägt die Domain als schädlich ein. So ein Eintrag kostet weit mehr Zeit als die Bereinigung selbst. Sobald du fertig bist, prüfen wir und schalten wieder frei.

Damit es nicht wieder passiert

Drei Dinge, die zusammen den größten Teil abdecken:

  1. Automatische Updates, im CMS und für Plugins und Themes
  2. Für jeden Zugang ein eigenes, langes Passwort, dazu die Anmeldung in zwei Schritten
  3. Aufräumen. Was du nicht brauchst, gehört gelöscht, nicht deaktiviert

Gut starten: die Einrichtungs-Checkliste · Zugänge absichern

Das könnte auch weiterhelfen

Serverprofis.de erstellt mit Material for MkDocs