Die Website ist sauber, sagt die Plugin-Liste. Warum Schadsoftware als Must-Use-Plugin unsichtbar bleibt und wie Sie sie finden
Wordfence seziert eine Schadsoftware, die sich als Must-Use-Plugin tarnt, selbst repariert und ihre Server in der Blockchain versteckt. Wo Sie nachsehen.


Die Plugin-Liste im WordPress-Backend zeigt nur, was dort angezeigt werden soll. Es gibt einen zweiten Ort, an dem Code bei jedem Seitenaufruf läuft, ohne aktiviert zu werden und ohne dass man ihn im Backend abschalten könnte: der Ordner für Must-Use-Plugins. Wordfence hat am 22. September 2026 eine Schadsoftware auseinandergenommen, die genau dort saß, sich als Werkzeug für automatische Gesundheitsprüfungen tarnte und sich nach dem Löschen selbst wiederherstellte. Der Fall ist lehrreich, weil er zeigt, wo eine Standardprüfung endet und wo eine gründliche beginnt.
Was Wordfence gefunden hat
Entdeckt wurde die Probe Mitte Juni bei der Bereinigung einer Kundenseite. Sie war als Must-Use-Plugin installiert, mit plausiblem Autorennamen und Link auf ein Code-Repository, als handle es sich um ein Werkzeug für Berichte und Systemchecks. Mehrere Mechanismen sorgten dafür, dass sie eine Entfernung überlebt. Für die Verbindung zu den Servern der Angreifer nutzt sie eine Technik namens Etherhiding: Die Adresse des Kontrollservers steckt in einem Smart Contract auf der Ethereum-Blockchain. Wird ein Server abgeschaltet, ändern die Angreifer den Eintrag, und die Schadsoftware findet den nächsten. Ziel des Ganzen ist laut Wordfence das Abgreifen von Daten.
Zwei Details sind für Betreiber wichtiger als die technische Raffinesse. Erstens tauchte die Schadsoftware unter tausenden verschiedenen Dateinamen auf, am häufigsten unter Namen, die nach WordPress aussehen: advanced-cache.php und db.php, die als sogenannte Drop-ins legitim vorkommen, oder functions.php eines Themes. Autor, Plugin-Name und URL im Dateikopf wechseln zwischen den Proben, taugen also nicht als Erkennungsmerkmal. Zweitens versteckt der Code nicht die Aufrufe von WordPress-Funktionen, sondern deren Argumente: Hook-Namen, Optionsnamen, Pfade. Wer nach dem klassischen Muster eval(base64_decode(…)) sucht, findet nichts.
Warum die Plugin-Liste nichts zeigt
Must-Use-Plugins laden bei jeder Anfrage automatisch. Sie erscheinen im Backend nur unter „Plugins“ → „Must-Use“, einem Reiter, den die wenigsten Betreiber je öffnen, und lassen sich dort nicht deaktivieren, nur per Dateizugriff löschen. Drop-ins wie advanced-cache.php haben einen eigenen Reiter. Hoster und Caching-Plugins legen solche Dateien legitim an, weshalb ein zusätzlicher Eintrag nicht auffällt. Genau diese Eigenschaften machen den Ordner zum bevorzugten Versteck für dauerhafte Schadsoftware.
Wo Sie nachsehen
- Reiter „Must-Use“ und „Drop-ins“ unter „Plugins“ öffnen. Jede Datei dort muss sich erklären lassen: durch den Hoster, ein Caching-Plugin oder eine bewusste Entscheidung. Fragen Sie im Zweifel den Hoster.
- Per FTP oder Dateimanager in
wp-content/mu-plugins/schauen. Auch Unterordner und Dateien, die dort nicht angezeigt werden. Änderungsdatum und Größe mit dem Rest vergleichen. - Theme-Funktionsdatei prüfen:
functions.phpdes aktiven Themes mit der Originalversion des Herstellers vergleichen. Bei Child-Themes beide. - Scanner mit aktuellen Signaturen laufen lassen. Wordfence hat die Signatur nach eigener Angabe am 23. Juni ausgeliefert, an Nutzer der kostenlosen Version mit dem üblichen Abstand von dreißig Tagen.
- Geplante Aufgaben und Optionen: Selbstheilende Schadsoftware hinterlegt oft Cron-Einträge oder Optionswerte, aus denen sie sich wiederherstellt. Ein Plugin wie WP Crontrol zeigt die Aufgaben.
Wenn Sie fündig werden
Eine Datei zu löschen reicht bei dieser Art Schadsoftware nicht. Sie kommt zurück. Die Reihenfolge, die ich bei Bereinigungen einhalte: Website in den Wartungsmodus, vollständiges Backup des befallenen Zustands für die Analyse, dann alle Bestandteile in einem Durchgang entfernen, also Must-Use-Plugin, Drop-ins, Cron-Einträge, Optionen, veränderte Theme-Dateien. Danach alle Passwörter, Sicherheitsschlüssel und API-Zugänge erneuern, weil der Zweck der Software das Sammeln genau dieser Daten war. Liegen mehrere Websites im selben Hosting-Paket, sind alle zu prüfen. Wer sich das nicht zutraut, holt jemanden, der es regelmäßig macht. Die Grundlagen dazu stehen in meinem Beitrag über regelmäßige Wartung; die Prüfung von Must-Use-Plugins und Drop-ins gehört bei Websites in meiner Betreuung zu jedem Wartungslauf.
Quellen
Kurz beantwortet
Was ist ein Must-Use-Plugin?
Eine PHP-Datei im Ordner wp-content/mu-plugins, die WordPress bei jedem Aufruf automatisch lädt. Sie muss nicht aktiviert werden und lässt sich im Backend nicht deaktivieren.
Wie erkenne ich ein bösartiges Must-Use-Plugin?
Nicht am Namen, der wechselt. Jede Datei unter „Plugins“ → „Must-Use“ und „Drop-ins“ muss erklärbar sein. Unerklärliche Einträge, fremde Cron-Aufgaben und veränderte Theme-Dateien sind die Zeichen.
Warum kommt die Schadsoftware nach dem Löschen zurück?
Weil sie sich aus Cron-Einträgen, Optionen oder anderen Dateien selbst wiederherstellt. Alle Bestandteile müssen in einem Durchgang entfernt und alle Zugangsdaten danach erneuert werden.
Konrad Griesser
Webdesigner & SEO-Experte aus Augsburg — seit 1999