Sicherheitsprüfungsbericht

northgate-advisors.com

Umfassende Sicherheitsüberprüfung der Website-Dateien, der Konfiguration, der Datenbank und des Zugriffsprotokolls.

Projekt 100472 Website northgate-advisors.com Berichtsdatum: 30 . Juli 2026 WordPress 7.0.2 Tabellenpräfix wp_ Server nginx

Die Website wurde im Juli 2026 gehackt und ist bis heute gefährdet: Hohes Risiko

Drei von einem Angreifer erstellte Administratorkonten hatten sich zwischen dem 22. und 23. Juli auf der Website angemeldet, und am 28. Juli wurde im Medienordner eine Webshell entdeckt. Diese Spuren wurden inzwischen beseitigt. Was weiterhin offen ist, ist noch dringender: Ihr Datenbankpasswort, alle Ihre Sicherheitsschlüssel und Ihr E-Mail-API-Schlüssel können von jedem unter einer öffentlichen Adresse heruntergeladen werden, fast 8.000 Kundendokumente können ohne Anmeldung abgerufen werden, und im Medienordner wird weiterhin PHP-Code ausgeführt – genau das, was die Hintertür erst möglich gemacht hat.

Dies ist ein Beispiel. Es handelt sich um einen echten Prüfbericht, bei dem alle identifizierenden Angaben ersetzt wurden: der Name der Website, die Projektnummer, alle Kontonamen und Adressen, die Namen der Mitarbeiter, auf die sich die Passwort-Kampagne bezog, sowie die Pfade zu den Kundendokumenten. Die Ergebnisse, Zahlen, Daten und Begründungen sind unverändert geblieben, sodass sich der Bericht genau so liest wie der, den ein Kunde erhält.

Übersicht

Die Anzahl der Schweregrade und der Zustand der Website, wie am 30. Juli 2026 festgestellt.

5
Kritisch
6
Hoch
9
Mittel
4
Niedrig
7,994
Kundendaten offengelegt
0
Noch vorhandene schädliche Dateien
Bitte lesen Sie dies zuerst. In diesem Bericht werden zwei verschiedene Sachverhalte beschrieben, die nicht miteinander verwechselt werden sollten. Der Einbruch selbst (Angreifer-Konten, Backdoor-Datei) scheint behoben worden zu sein: Auf der Website befindet sich heute nichts Schädliches mehr. Die Sicherheitslücken (für jedermann lesbare Anmeldedaten und Kundendokumente, Codeausführung im Medienordner erlaubt) bestehen derzeit, wurden am 30. Juli 2026 über das öffentliche Internet überprüft und würden ein erneutes Auftreten des Vorfalls ermöglichen.

Bestandsaufnahme des Standorts

ArtikelWert
Standortadressehttps://northgate-advisors.com
WordPress-Version7.0.2
Webservernginx
Präfix für Datenbanktabellenwp_ (Standard)
StapelThrive Theme (Child-Theme aktiv), WooCommerce und Abonnements, Amelia Booking, Fluent Suite (Formulare, CRM, Support, SMTP), Formidable, Rank Math Pro, Real Cookie Banner Pro, Wordfence, Patchstack
PHP-Dateien47,005
Datenbanktabellen355
Benutzerkonten317 (8 Administratoren)
Plugins54 aktiv, 63 auf der Festplatte vorhanden
Themen7 (thrive-theme-child aktiv)
Gesamtgröße4,8 GB
Hosting-Kontext: Die Website wurde zweimal auf einen anderen Host umgezogen. In der Datenbank sind noch drei verschiedene Serverpfade gespeichert: ein älterer Plesk-Pfad, ein Zwischenpfad und der aktuelle Pfad. Diese Historie erklärt mehrere Sachverhalte, die andernfalls so aussehen würden, als würde ein Angreifer seine Spuren verwischen: ein Sicherheits-Plugin, dessen Ordner gelöscht wurde, dessen geplante Aufgaben jedoch weiterhin bestehen, eine nur teilweise durchgeführte Umbenennung des Datenbankpräfixes sowie verbleibende Einstellungen von Tools, die nicht mehr installiert sind. Diese werden in diesem Bericht als Wartungsmaßnahmen behandelt und nicht als Hinweise auf einen Einbruch gewertet.

Was ist passiert?

Rekonstruiert anhand der Zugriffsprotokolle der Website und der Protokolle ihres Sicherheits-Plugins. Alle Zeitangaben sind in UTC. Zwei Zeiträume sind dabei von größerer Bedeutung als die einzelnen Ereignisse: Der Weg ins System wurde nie protokolliert, und die Warnmeldung, in der die Hintertür benannt wurde, blieb sechs Tage lang ungelesen.

Zugang: nicht erfasst
Benachrichtigung ungelesen, 6 Tage
nicht erfasst
22. Juli
23. Juli
24. Juli
25. Juli
26. Juli
27. Juli
28. Juli
29. Juli
30. Juli
Aktivitäten der Angreifer Ihr Team Von Ihren Tools erkannt Status zum Berichtsdatum

Führen Sie den Mauszeiger über eine Markierung, um zu sehen, was es war, oder klicken Sie darauf, um zu den Details weiter unten zu gelangen.

  1. Vor dem 22.Juli
    Die Website wurde kompromittiert. Es wurden drei Administratorkonten angelegt, die niemand aus Ihrem Team kennt. Der Zugriffsweg wurde nicht protokolliert. Möglich wurde dies durch vier Plugins, die in Versionen mit bekannten Sicherheitslücken laufen, sowie einen Medienordner, der PHP-Code akzeptiert und ausführt.
  2. 22. Juli, 03:20 UTC
    Erste Anmeldung des Angreifers. Konto a4f2_71c9d038 (Adresse bei shellcode.lol) meldet sich an von 203.0.113.41 beim ersten Versuch, ohne dass zuvor fehlgeschlagene Versuche stattgefunden haben. Ein Erfolg beim ersten Versuch bedeutet, dass das Konto von der Person erstellt wurde, die es genutzt hat, und nicht erraten wurde.
  3. 23. Juli, 03:20 UTC
    Anmeldung des zweiten Angreifers. Konto 8b16f402c7de meldet sich an von 203.0.113.88.
  4. 23. Juli, 04:48 UTC
    Anmeldung des dritten Angreifers. Konto site_admin (Adresse unter shelltool.invalid) meldet sich an von 198.51.100.23.
  5. 23. bis 26. Juli
    Ihr Team löscht die drei Konten. Nacheinander gelöscht aus 198.51.100.9. Heute gibt es keinen unerwarteten Administrator mehr.
  6. 27. Juli, 15:00 Uhr UTC
    Eine Änderung an den Schutzregeln des Servers wurde protokolliert. Die Regel, die die Ausführung von PHP im Medienordner verhindern soll, ist nicht aktiv.
  7. 28. Juli, 01:03 UTC
    Ihr eigener Malware-Scan meldet die Backdoor. Markiert bei wp-content/uploads/_9ce8098b.php, mit der höchsten Schweregradstufe eingestuft. Die E-Mail-Benachrichtigung war zu diesem Zeitpunkt aktiviert und korrekt konfiguriert, sodass eine Benachrichtigung an die Einsatzadresse Ihrer Behörde hätte eingehen müssen.
  8. 30. Juli
    Der aktuelle Stand: Die Backdoor-Datei ist verschwunden, und auf der gesamten Website wurde kein Schadcode gefunden. Die Warnmeldung liegt weiterhin unbestätigt im Scanner, und die Bedingungen, unter denen die Backdoor ausgeführt werden konnte, sind unverändert.
Zu den Zeitangaben: Die Zeitstempel der Dateien sind normalisiert und lassen keine Rückschlüsse auf den Zeitpunkt des Eindringens zu. Die oben genannten Zeitangaben stammen aus Anmeldungsprotokollen und dem Scanner-Verlauf, die zuverlässig sind. Die Zugriffsprotokolle des Webservers Ihres Hosts würden die genaue Anfrage zeigen, über die die Backdoor-Datei abgelegt wurde, und es lohnt sich, diese anzufordern, solange sie noch aufbewahrt werden.

Anzeichen für eine Kompromittierung

Die konkreten Punkte, die hinter diesem Vorfall stehen, jeweils mit der Angabe, ob sie heute noch zutreffen und wie man damit umgehen sollte. Zwei der sieben Punkte sind derzeit aktuell. Die übrigen sollten Sie auf allen anderen von Ihnen betriebenen Websites überprüfen, da eine kopierte Website die Altdaten mitübernimmt.

Sperrliste und Suchliste
Backdoor-Datei
wp-content/uploads/_9ce8098b.phpEntfernt

Wir haben diese Adresse am 30. Juli abgefragt, und der Server hat mit „nicht gefunden“ geantwortet. Durchsuchen Sie Ihre anderen Websites nach demselben Pfad und nach PHP-Dateien, die sich direkt im Ordner „media“ befinden.

Backdoor-Fingerabdruck
03E3772B0E1670743301179E66A1505B16E687F92EA45092F05F198A54BD6382Referenzwert

Die Identifikationsnummer genau dieser Datei, die auch bei einer Umbenennung unverändert bleibt. Geben Sie diese Ihrem Host weiter oder fügen Sie sie in die Dateisuche Ihres Sicherheits-Plugins ein, um dieselbe Datei auf einer anderen Website zu finden.

Angreifer-Konten
a4f2_71c9d038@shellops.invalid, 8b16f402c7de@mailbox.invalid,site_admin@shelltool.invalidDeleted hier

Alle drei wurden zwischen dem 23. und 26. Juli von dieser Website entfernt. Öffnen Sie die Benutzerliste jeder anderen von Ihnen betriebenen Website und suchen Sie nach diesen drei Adressen sowie nach allem, was auf „shellcode.lol“ oder „shelltool.invalid“ endet.

Adressen der Angreifer
203.0.113.41, 203.0.113.88, 198.51.100.23 Hier nicht mehr aktiv

Die drei Adressen, von denen aus sich die Angreifer-Konten angemeldet haben. Seit dem 23. Juli gab es keine Aktivitäten mehr von diesen Adressen. Blockieren Sie sie in Ihrer Firewall und durchsuchen Sie die Anmeldelogbücher Ihrer anderen Websites nach diesen Adressen.

Unbekannte Sitzungsquelle
192.0.2.117Gibt es heute noch

Das ist noch keine Geschichte. Derzeit sind acht Administratorsitzungen von dieser Adresse aus offen und bis zum 11. August gültig. Fragen Sie noch heute bei Ihrer Behörde und Ihrem App-Entwickler nach, ob diese Sitzungen ihnen gehören. Wenn niemand Anspruch darauf erhebt, behandeln Sie die Website so, als wäre sie weiterhin für Außenstehende erreichbar (H-2).

Adressleck
/wp-config.php.wpdebugtoolkit-backupHeute noch online

Wurde jedem ausgehändigt, der danach gefragt hat; am 30. Juli bestätigt. Löschen Sie diese Datei noch heute und ändern Sie anschließend alle darin enthaltenen Daten: das Datenbankpasswort, die neun Schlüssel und Salts sowie den Mailgun-Schlüssel (C-1).

Namenskonvention
Unterstrich, gefolgt von 8 Hexadezimalzeichen, PHP-Datei im Ordner „media“, deren Inhalt mit GIF89aWorauf Sie achten sollten

So könnte eine Variante dieser Backdoor an anderer Stelle aussehen. Listen Sie den Inhalt des Ordners „media“ auf Ihren anderen Websites auf und behandeln Sie jede dort befindliche PHP-Datei als verdächtig, unabhängig davon, wie sie heißt.

Ergebnisse

24 Ergebnisse, sortiert nach Schweregrad (die schwerwiegendsten zuerst). Verwenden Sie den Filter in der Leiste oben, um die Ergebnisse nach Schweregrad einzugrenzen.

Kritisch C-1 https://northgate-advisors.com/wp-config.php.wpdebugtoolkit-backup

Ihr Datenbankpasswort, alle Sicherheitsschlüssel und Ihr E-Mail-API-Schlüssel können von jedem heruntergeladen werden

Eine Kopie der Hauptkonfigurationsdatei von WordPress wurde im öffentlichen Ordner mit einer anderen Dateiendung hinterlassen. Da die Dateiendung nicht .php, der Server führt sie nicht aus, sondern gibt den Text weiter. Wenn man diese Adresse über das Internet aufruft, wird die gesamte Datei zurückgegeben, die den Datenbanknamen, den Datenbankbenutzer, das Datenbankpasswort sowie alle neun Authentifizierungsdaten enthält Schlüssel und Salze, sowie den Mailgun-Versandschlüssel. Wir haben bestätigt, dass die Datei am 30. Juli 2026 bereitgestellt wurde, und haben keine Kopie ihres Inhalts aufbewahrt.

Was das in der Praxis bedeutet. Der E-Mail-Schlüssel ermöglicht es jedem, E-Mails zu versenden, die scheinbar von Ihrer Domain stammen – eine fertige Phishing-Möglichkeit gegen Ihre eigenen Kunden. Die Authentifizierungsschlüssel ermöglichen es einem Angreifer, Sitzungen und Formulare zu manipulieren. Das Datenbankpasswort ist zwar dadurch eingeschränkt, dass Ihre Datenbank nur Verbindungen vom Server selbst akzeptiert und der Datenbankport von außen nicht erreichbar ist – was wir überprüft haben –, sodass es nicht direkt über das Internet nutzbar ist, aber es wird sofort für jeden nutzbar, der sich auf diesem Server einen Zugang verschafft.

Maßnahme: Löschen Sie diese Datei noch heute und tauschen Sie anschließend alle darin enthaltenen Daten aus: das Datenbankpasswort, alle neun Authentifizierungsschlüssel und Salts (dadurch werden alle Benutzer abgemeldet, was beabsichtigt ist) sowie den Mailgun-API-Schlüssel. Überprüfen Sie anschließend den Rest des öffentlichen Ordners auf weitere Dateien, deren Namen mit wp-config.
Kritisch C-2 uploads/client-statements/, billing_invoices_temp/, uploads/fluentform/, uploads/fluent-support/

7.994 Kundendokumente können ohne Anmeldung heruntergeladen werden

In vier separaten Ordnern befinden sich Kundendokumente, die der Webserver jedem zur Verfügung stellt, der danach fragt. Wir haben überprüft, dass jeweils eine Datei aus jedem Ordner erfolgreich aus dem öffentlichen Internet heruntergeladen werden kann, und haben keine davon behalten.

  • 5.606 Steuerunterlagen in uploads/client-statements/, benannt in einer einfachen Folge (statement_5393.pdf, statement_3084.pdf). Der Ordner ist nicht geschützt, und die Nummerierung lässt sich leicht erraten, sodass der gesamte Bereich durchlaufen werden kann. Automatisierte Scanner tun dies routinemäßig.
  • 27 Rechnungen in wp-content/billing_invoices_temp/, mit dem Namen invoice-4395.pdf und Ähnliches, das ebenso leicht zu erraten ist. Der Ordner enthält zwar eine Zugriffsregel, diese ist jedoch für Apache geschrieben, während Ihre Website auf Nginx läuft, sodass sie keine Wirkung zeigt.
  • 1.113 Dateien, die über Ihre Formulare eingereicht wurden in uploads/fluentform/.
  • 1.248 Anhänge in 248 Support-Ticket-Ordnern in uploads/fluent-support/. Dies sind die sensibelsten der vier Datensätze: Schon allein die Dateinamen, die in der Adresszeile zu sehen sind, lassen auf Steuerbescheinigungen, Kontoauszüge, Versicherungspolicen und Übersichten über Anlagekonten schließen, jeweils neben dem Nachnamen eines Kunden.

Ein Unterschied ist entscheidend dafür, wie dringend die einzelnen Datensätze sind. Die Steuerunterlagen und Rechnungen sind fortlaufend nummeriert, sodass jeder sie auflisten kann, ohne etwas über Ihre Website zu wissen. Die Formular- und Ticketdateien enthalten eine zufällige Zeichenfolge in ihren Namen, sodass sie nicht einzeln erraten werden können, aber auch hier gibt es keine Zugangsbarriere: Der Name allein reicht aus, und Namen werden über den Browserverlauf, Referrer-Header, geteilte Links und an jeden weitergegeben, der Zugriff auf die Datenbank hat. Unbekanntheit ist kein Schutz.

Es handelt sich hierbei um Steuer-, Abrechnungs- und Korrespondenzdaten von Kunden, die gemäß der DSGVO als sensible personenbezogene Daten gelten. Gehen Sie davon aus, dass ein unbefugter Zugriff tatsächlich stattgefunden hat und nicht nur theoretisch möglich ist, da die Website im selben Zeitraum ebenfalls unter der Kontrolle der Angreifer stand.

Maßnahme: Sperren Sie noch heute den direkten Zugriff auf alle vier Ordner auf Webserver-Ebene – nicht über eine Plugin-Regel. Stellen Sie diese Dokumente ausschließlich über ein Skript bereit, das überprüft, wer die Anfrage stellt. Fordern Sie anschließend bei Ihrem Hosting-Anbieter die Zugriffsprotokolle dieser Ordner an, damit Sie feststellen können, ob tatsächlich jemand die Dateien heruntergeladen hat – diese Information benötigen Sie, falls eine Entscheidung über eine Benachrichtigung getroffen werden muss.
Kritisch C-3 wp-content/uploads/

Der Medienordner führt PHP-Code aus, wodurch die Hintertür funktionierte, und er ist nach wie vor offen.

Ihr Sicherheits-Plugin versucht zwar, die Ausführung von PHP-Dateien im Medienordner zu verhindern, tut dies jedoch mithilfe einer .htaccess-Regel, und .htaccess-Dateien sind eine Apache-Funktion, die von nginx vollständig ignoriert wird. Jede Regel dieser Art auf dieser Website ist wirkungslos, einschließlich dieser.

Wir haben dies direkt überprüft. Eine vorhandene PHP-Datei im Ordner „media“ wurde über das Internet angefordert, und der Server führte sie aus, anstatt ihren Text zurückzugeben. Die Schutzregelprüfung Ihrer Website kam am 27. Juli zu demselben Ergebnis: Die Ausführung von PHP im Ordner „media“ wird nicht blockiert.

Das ist wichtiger, als es zunächst klingt. Die am 28. Juli entdeckte Hintertür war eine PHP-Datei, die sich genau in diesem Ordner befand und mit einem GIF89a Header, damit die Datei beim Hochladen als Bild erkannt wird. Durch das Löschen dieser Datei wurde das Problem behoben. Solange das Hochladen von Dateien möglich ist, führt die nächste Schwachstelle beim Hochladen von Dateien in einem Ihrer 54 Plugins erneut zum gleichen Ergebnis.

Maßnahme: Füge eine Nginx-Regel hinzu, die alle Anfragen unter wp-content/uploads/ auf PHP. Das sind nur ein paar Zeilen in der Serverkonfiguration, und es ist die mit Abstand wichtigste Änderung auf dieser Liste. Verlassen Sie sich dabei nicht auf eine Plugin-Einstellung.
Kritisch C-4 Benutzerkonten 372, 374 und 376 (alle gelöscht)

Drei von Angreifern erstellte Administratorkonten hatten die volle Kontrolle über die Website

Drei Konten mit vollständigen Administratorrechten haben sich zwischen dem 22. und 23. Juli auf der Website angemeldet. Ihre E-Mail-Adressen geben Aufschluss über die verwendeten Tools: shellcode.lol, shelltool.invalid, sowie einen maschinengenerierten Namen unter einer plausibel wirkenden Domain. Beide konnten sich beim ersten Versuch erfolgreich anmelden, ohne dass zuvor fehlgeschlagene Anmeldeversuche stattgefunden hatten, was das Erraten von Passwörtern ausschließt und bedeutet, dass die Konten von der Person erstellt wurden, die sie anschließend genutzt hat.

Ihr Team hat alle drei zwischen dem 23. und 26. Juli gelöscht, und heute gibt es keinen unerwarteten Administrator mehr. Das ist das richtige Ergebnis, aber ein Konto mit Administratorrechten kann alles tun, bevor es entfernt wird: ein Plugin installieren, Theme-Dateien bearbeiten, die gesamte Datenbank auslesen, Kundendaten exportieren. Gehen Sie davon aus, dass all das in diesen Tagen möglich war.

Maßnahme: Das Passwort aller verbleibenden Administratoren zurücksetzen und alle Sitzungen zwangsweise beenden – was auch durch die Schlüsselrotation in C-1 erreicht wird. Die Zwei-Faktor-Authentifizierung für alle 8 Administratorkonten aktivieren, da diese derzeit nur bei einem Konto eingerichtet ist.
Kritisch C-5 wp-content/uploads/_9ce8098b.php (mittlerweile entfernt)

Ihr eigener Scanner hat eine Backdoor mit höchster Schweregradstufe gemeldet, und auf diese Warnung wurde nie reagiert

Am 28. Juli um 01:03 Uhr hat der Malware-Scan Ihrer Website eine Datei im Medienordner als bösartig mit einem Schweregrad von 100 identifiziert. Die Datei war so getarnt, dass sie wie ein Bild aussah (sie begann mit dem Text GIF89a) und sein Code setzte die Namen gefährlicher Funktionen Buchstabe für Buchstabe zusammen, um Scanner zu umgehen. Bei diesen Funktionen handelte es sich um solche, die das Annehmen einer hochgeladenen Datei, das Schreiben von Dateien auf die Festplatte und das Ausführen von Systembefehlen ermöglichten. Einfach ausgedrückt: ein Tool, mit dem man beliebige Dateien hochladen und Befehle auf Ihrem Server ausführen konnte.

Die Datei ist heute von der Website verschwunden, und wir haben bestätigt, dass die Adresse nun eine „Nicht gefunden“-Meldung zurückgibt. Die Warnmeldung ist jedoch weiterhin als neu und unbehandelt erfasst, und die Benachrichtigungsfunktion war zu diesem Zeitpunkt mit einer gültigen Empfängeradresse aktiviert, sodass am 28. Juli jemand eine E-Mail dazu erhalten haben müsste. Der gleiche Scan listet außerdem 35 veraltete Plugins und Themes auf, von denen ebenfalls keines bestätigt wurde.

Maßnahme: Klären Sie mit Ihrer Agentur ab, wer die E-Mails mit Sicherheitswarnungen erhält und ob die Nachricht vom 28. Juli angekommen ist. Führen Sie anschließend einen neuen Scan durch und arbeiten Sie die Liste der Probleme vollständig ab, anstatt Warnmeldungen offen zu lassen, denn eine Liste ungelesener Warnmeldungen ist nicht von gar keinen Warnmeldungen zu unterscheiden.
Hoch H-1 https://northgate-advisors.com/wpdebugtoolkit/ plus wp-content/db.php

Eine Debug-Konsole, die jede Datenbankabfrage protokolliert, ist über eine öffentliche Adresse erreichbar

Auf der obersten Ebene Ihrer Website ist ein eigenständiges Diagnosetool installiert. Wir haben am 30. Juli überprüft, dass die Adresse korrekt ist. Es ist kein Bestandteil von WordPress und nutzt keine WordPress-Anmeldedaten, sondern ist durch ein eigenes, individuelles Passwort geschützt. Das Tool kann Ihr Debug-Protokoll auslesen, Ihre Hauptkonfigurationsdatei überschreiben und den vollständigen Text von Datenbankabfragen aufzeichnen, weshalb SAVEQUERIES in Ihrer Konfiguration aktiviert ist und warum sich eine Datenbank-Protokollierungsdatei in wp-content.

Der Text einer Datenbankabfrage ist kein harmloser Inhalt. Er enthält Passwort-Hashes, Sitzungskennungen und alles, was über Ihre Formulare übermittelt wird – was bei dieser Website auch Kundendaten umfasst. Zwei weitere Details verschlimmern die Situation noch: Die Konfigurationssicherung, durch die Ihre Anmeldedaten in C-1 offengelegt werden, wurde mit genau diesem Tool erstellt, und Ihr Malware-Scanner ist ausdrücklich so konfiguriert, dass er dieses Verzeichnis überspringt – es ist also der einzige Ort auf der Website, der von keiner Überprüfung erfasst wird.

Wir haben den Code überprüft und kein verstecktes böswilliges Verhalten festgestellt: Die sensiblen Vorgänge sind durch ein Passwort und ein Anfrage-Token geschützt. Das Problem ist nicht, dass die Anwendung böswillig ist, sondern dass sie auf einer Produktionswebsite vorhanden ist, die Steuerdaten verarbeitet.

Maßnahme: Entfernen Sie das Werkzeug, das wp-content/db.php Abhördatei und die SAVEQUERIES Einstellung auf der Live-Website. Falls dies wirklich erforderlich ist, beschränken Sie den Zugriff auf die IP-Adressen Ihres Büros auf Serverebene und stellen Sie sicher, dass diese nicht mehr von Malware-Scans ausgeschlossen werden.
Hoch H-2 Konto 1 (admin_k2p9x1), Quelle 192.0.2.117

Acht Administratorsitzungen von einem Server, den niemand identifiziert hat; gültig bis zum 11. August

Ihr Hauptadministratorkonto weist derzeit acht gleichzeitig angemeldete Benutzer auf Sitzungen, alle von der Adresse 192.0.2.117 (ein Hosting-Anbieter, keine Büroverbindung), die sich alle als node anstelle eines Browsers. Sie wurden paarweise am 23., 24., 26. und 28. Juli erstellt und sind bis zum 11. August gültig.

Diese wurden nicht dadurch erstellt, dass jemand ein Passwort eingegeben hat: Das gespeicherte Passwort dieses Kontos liegt noch im älteren Format vor, und WordPress aktualisiert das Format automatisch, sobald zum ersten Mal ein korrektes Passwort verwendet wird. Es gibt also etwas, das Administrator-Sitzungen programmgesteuert erstellt. Wir haben die Verwaltungsverbindung unter WP Umbrella ausgeschlossen, da diese andere Adressen verwendet und anders funktioniert.

Die wahrscheinlichste Erklärung ist Ihre eigene Integration, da auf der Website ein Benutzerkonto namens „PortalApp“ existiert. In diesem Fall wäre dies ein zu erwartendes Verhalten bei mangelnder Sicherheit. Die Alternative wäre, dass es sich nicht um Ihr Konto handelt; in diesem Fall handelt es sich um einen permanenten Administratorzugang. Von außen können wir diese Fälle nicht unterscheiden, und der Zeitraum, in dem die Angreiferkonten aktiv waren, überschneidet sich mit diesen Daten.

Maßnahme: Fragen Sie Ihre Agentur und Ihren App-Entwickler, ob 192.0.2.117 gehört heute ihnen. Falls niemand Anspruch darauf erhebt, behandeln Sie die Website so, als wäre sie weiterhin für Außenstehende zugänglich. Beenden Sie in jedem Fall alle Sitzungen auf diesem Konto und lassen Sie Integrationen ein dediziertes Konto verwenden, das nur über die erforderlichen Berechtigungen verfügt – niemals über das des Hauptadministrators.
Hoch H-3 Fluent Forms 6.2.5, Google Tag Manager 1.22.3, Loco Translate 2.8.5, Widget für Google-Bewertungen 6.9.7

Bei vier Plugins laufen Versionen, in denen Sicherheitslücken bekannt sind, und 35 Updates stehen noch aus

Ihr Scanner weist darauf hin, dass diese vier eine Version verwenden, für die eine Sicherheitslücke bekannt ist, was bedeutet, dass die technischen Details öffentlich zugänglich sind. Insgesamt sind 35 Plugins und Themes veraltet, darunter die gesamte Thrive-Suite, WooCommerce, Amelia und die Fluent-Suite.

Dies ist der wahrscheinlichste Einfallsweg. Die Hintertür gelangte als Datei, die wie ein Bild aussah, in den Medienordner – ein typisches Anzeichen für eine Schwachstelle bei der Upload-Verarbeitung –, und „Fluent Forms“ ist die Komponente auf dieser Website, die Datei-Uploads von Kunden akzeptiert. Ohne Ihre Server-Zugriffsprotokolle können wir nicht nachweisen, welche Schwachstelle ausgenutzt wurde, aber wenn Sie diese Versionen beibehalten, bleibt die Sicherheitslücke in demselben Zustand wie am 22. Juli.

Maßnahme: Aktualisieren Sie zunächst diese vier, und arbeiten Sie sich dann durch die restlichen 31. Automatische Kernaktualisierungen sind in Ihrer Konfiguration derzeit deaktiviert, daher hängt dies vollständig davon ab, dass der verwaltete Aktualisierungsprozess planmäßig abläuft.
Hoch H-4 wp-config.php, DISALLOW_FILE_EDIT nicht definiert

Der integrierte Dateieditor ist aktiviert, sodass in jeder Administratorsitzung Code ausgeführt werden kann

WordPress enthält einen Editor, mit dem ein Administrator Theme- und Plugin-Dateien direkt über den Browser bearbeiten kann. Auf dieser Website ist diese Funktion aktiviert. Dadurch kann in jeder Administratorsitzung beliebiger Code ausgeführt werden, ohne dass ein Upload oder eine Dateiübertragung erforderlich ist.

Da im Juli drei Angreifer-Administratorkonten angemeldet waren, stand ihnen diese Funktion zur Verfügung. Sie sollte dauerhaft deaktiviert werden: Legitime Änderungen erfolgen über den Bereitstellungsprozess Ihrer Behörde und nicht über den Browser-Editor.

Maßnahme: hinzufügen define('DISALLOW_FILE_EDIT', true); in die Konfigurationsdatei. Füge außerdem Folgendes hinzu: define('FORCE_SSL_ADMIN', true);, das derzeit fehlt.
Hoch H-5 Anmeldedaten: 393 Fehlversuche von 221 Adressen innerhalb von sieben Tagen

Gegen die tatsächlichen Namen Ihrer Mitarbeiter läuft derzeit ein anhaltender Passwortangriff, und 7 von 8 Administratoren verfügen über keine Zwei-Faktor-Authentifizierung.

In den letzten sieben Tagen wurden auf der Website 393 fehlgeschlagene Anmeldeversuche von 221 verschiedenen Adressen verzeichnet, dazu 56 Versuche, die vom Anmeldeschutz abgewehrt wurden, sowie 21 Versuche, Benutzernamen aufzulisten. Betrachtet man das gesamte Protokoll des Plugins, so ist der Umfang der Kampagne noch größer: Der Anzeigename Daniel wurde etwa 500 Mal ins Visier genommen und Rossi Marta etwa 179.

Das Wichtigste dabei ist, dass es sich um echte Namen von echten Personen auf Ihrer Website handelt, nicht um die üblichen admin Vermutungen. Das bedeutet, dass die Angreifer die Namen der Autoren von Ihren Seiten abgegriffen haben und nun Passwörter für bekannte Konten durchprobieren. Eine Adresse pro Name, breit gestreut und bewusst langsam genug, um wie gewöhnlicher Datenverkehr zu wirken.

Genau eines Ihrer acht Administratorkonten verfügt über eine aktivierte Zwei-Faktor-Authentifizierung. Bei den anderen sieben ist ein korrektes Passwort das einzige Hindernis – und Passwörter sind genau das, worauf diese Kampagne letztendlich abzielt.

Maßnahme: Führen Sie eine Zwei-Faktor-Authentifizierung für alle Administrator- und Shop-Manager-Konten ein. Blenden Sie die Namen der Autoren auf öffentlichen Seiten aus, damit die Angreiferliste nicht mehr aktualisiert wird, und lassen Sie den Anmeldeschutz aktiviert.
Hoch H-6 wp-content/share-one-drive-cache/

Ihr Ordner mit den OneDrive-Zugriffstoken ist öffentlich lesbar

Die OneDrive-Integration speichert ihre Autorisierungsdaten in einem Ordner ohne Zugriffskontrolle, und wir haben festgestellt, dass eine darin enthaltene Datei über das Internet bereitgestellt wird. Allein der Dateiname gibt bereits die Adresse des verbundenen Kontos und Ihre Microsoft-Tenant-ID preis. In dem von uns untersuchten Fall war die Token-Datei selbst leer, doch auf einer Live-Website befindet sich unter diesem Pfad ein gültiges Zugriffstoken für Ihr OneDrive.

Ein gültiges Token dieser Art gewährt Lese- und Schreibzugriff auf den verbundenen Dokumentenspeicher, ohne dass ein Passwort erforderlich ist und ohne dass eine Anmeldebenachrichtigung ausgelöst wird.

Maßnahme: Sperren Sie den Webzugriff auf diesen Ordner auf Serverebene und trennen Sie anschließend die OneDrive-Integration, um sie anschließend erneut herzustellen, damit eventuell offengelegte Tokens ersetzt werden.
Mittel M-1 Benutzerkonten 1, 2, 8, 11, 12, 23, 70, 325

Acht Administratorkonten, von denen zwei seit Monaten nicht mehr genutzt wurden

Acht Konten verfügen über vollständige Administratorrechte auf einer Website, auf der Steuer- und Zahlungsdaten verarbeitet werden. Alle acht sind Personen oder Organisationen zuzuordnen, mit denen Sie zusammenarbeiten; es handelt sich also bei keinem um ein betrügerisches Konto, doch zwei davon fallen als inaktiv auf.

  • Ein im Oktober 2022 erstelltes Agenturkonto, das seit Januar 2025 nicht mehr genutzt wird und dessen gespeichertes Passwort noch im alten Format vorliegt.
  • Ein am 21. Mai 2026 erstelltes Support-Konto eines Anbieters, das einmal von einer Adresse in Bangladesch aus genutzt wurde und seitdem ungenutzt ist. Die Adresse stimmt mit dem Support-Team eines Ihrer Plugin-Anbieter überein, daher handelt es sich wahrscheinlich um einen legitimen Zugriff, den Ihre Agentur veranlasst hat, doch das Konto sollte nicht mehr offen sein.

Jeder inaktive Administrator ist wie ein kompletter Schlüsselsatz, auf den niemand achtet.

Maßnahme: Löschen Sie die beiden inaktiven Konten oder stufen Sie sie herunter und vereinbaren Sie mit Ihrer Agentur, dass der Support-Zugang für einen bestimmten Vorgang gewährt und anschließend wieder entzogen wird.
Mittel M-2 MainWP Child ist auf der Festplatte vorhanden, aber inaktiv; Einstellungen und geplante Aufgaben bleiben erhalten

Ein Fernverwaltungskanal ist weiterhin mit zwei Administratorkonten verbunden, obwohl dessen Plugin deaktiviert ist.

Ein Plugin zur Verwaltung von Remote-Standorten ist weiterhin installiert, jedoch deaktiviert, und zwei Administratorkonten verfügen nach wie vor über dessen Verbindungseinstellungen, einschließlich eines gespeicherten Verbindungsschlüssels. Die geplanten Aufgaben sind weiterhin registriert, und im Medienverzeichnis wurde ein Ordner mit einem Serverklon zurückgelassen.

Ein solches Tool ist von seiner Konzeption her ein Kanal zur Fernverwaltung. „Deaktiviert“ bedeutet nicht „gelöscht“: Die Dateien befinden sich weiterhin auf der Festplatte, und durch eine Reaktivierung wird der Kanal wiederhergestellt. Es handelt sich höchstwahrscheinlich um eine eigene Verwaltungskonfiguration Ihrer Behörde, was zwar in Ordnung ist, aber entweder in Gebrauch und auf dem neuesten Stand sein sollte oder ganz entfernt werden sollte.

Maßnahme: Klären Sie mit Ihrer Agentur ab, ob dieser Kanal noch benötigt wird. Falls nicht, löschen Sie die Plugin-Ordner, entfernen Sie die Verbindungseinstellungen aus beiden Konten und löschen Sie die verbleibenden geplanten Aufgaben.
Mittel M-3 wp-content/uploads/cache/wpml/twig/ (91 Dateien) und wp-content/plugins/share-one-drive-1/

In Ordnern, in denen sich eigentlich beides nicht befinden sollte, befinden sich ausführbarer Code und eine alte, doppelte Kopie eines Plugins

Ein Übersetzungs-Plugin, das nicht mehr installiert ist, hat 91 kompilierte PHP-Vorlagendateien im Ordner „media“ hinterlassen. Ihr Inhalt ist harmlos, aber es handelt sich um ausführbaren Code in einem Ordner, der niemals solchen Code enthalten sollte, und wie C-3 feststellt, wird PHP in diesem Ordner auf diesem Server tatsächlich ausgeführt.

Unabhängig davon ist eine vollständige zweite Kopie des OneDrive-Plugins in der Version 3.5.2.1 vorhanden, während die Live-Version 3.8.1 ist. Sie ist zwar nicht aktiv, aber jede darin enthaltene Datei ist weiterhin zugänglich und ausführbar, was bedeutet, dass die Schwachstellen einer alten Version weiterhin bestehen, obwohl das Plugin scheinbar aktualisiert wurde.

Maßnahme: Beide Verzeichnisse löschen. Alte Plugin-Kopien sollten niemals im Plugin-Ordner verbleiben.
Mittel M-4 /.user.ini, /.htaccess, /wp-content/debug.log

Ihre Serverkonfigurationsdateien und Ihr Debug-Protokoll sind öffentlich einsehbar.

Drei Dateien, die beschreiben, wie Ihr Server eingerichtet ist, werden jedem bereitgestellt, der danach fragt. Wir haben alle drei am 30. Juli überprüft:

  • /.user.ini (112 Byte), die Ihr Scanner bereits am 27. Juli gemeldet hat und die nach wie vor als ungelöst aufgeführt ist. Sie gibt den absoluten Pfad der Website auf der Festplatte preis.
  • /.htaccess (1.901 Byte), wodurch einem Angreifer Ihr gesamter Regelsatz offengelegt wird – einschließlich der Pfade, die Ihrer Meinung nach geschützt sind, und des Sicherheits-Plugins, das die Regeln erstellt hat.
  • /wp-content/debug.log (220 Byte), in die PHP-Fehler geschrieben werden. Debug-Protokolle enthalten in der Regel Dateipfade, Abfragefragmente und gelegentlich übermittelte Daten.

Keine dieser Maßnahmen ist für sich genommen gefährlich. Zusammen bilden sie die Erkundungsmaßnahmen, die ein Angreifer durchführt, bevor er sich für eine Technik entscheidet, und sie werden von Scan-Tools automatisch erfasst.

Maßnahme: den Webzugriff auf Dateien verweigern, deren Name mit einem Punkt beginnt, sowie auf .log Dateien auf Serverebene. Bei Nginx sind das zwei Regeln, die diese drei Dateien und viele ähnliche auf einmal abdecken.
Mittel M-5 24 .htaccess-Dateien auf der gesamten Website, Server als nginx bestätigt

Jede Schutzregel, auf die sich diese Website stützt, ist für den falschen Webserver geschrieben.

Wir haben auf der gesamten Website 24 Zugriffsregel-Dateien gefunden, die von Ihren Sicherheits-, Backup- und Formular-Plugins erstellt wurden. Alle verwenden die Apache-Syntax. Ihr Server läuft unter nginx, das diese Dateien jedoch vollständig ignoriert.

Die Konsequenz ist eher systematischer als isolierter Natur: die Sperrung von PHP im Medienordner (C-3), der Schutz der Konfigurationsdatei, die Deny from all Der Rechnungsordner (C-2) und der Ordner für die Sicherungszwischenspeicherung werden im Dashboard eines Plugins alle als aktive Schutzmaßnahmen angezeigt, obwohl sie überhaupt nichts bewirken. Dies ist der einzige Grund, warum mehrere Feststellungen in diesem Bericht so schwerwiegend sind.

Maßnahme: Übertragen Sie die relevanten Regeln in Ihre Nginx-Konfiguration: kein PHP im Ordner „media“, kein Zugriff auf „.“-Dateien, kein Zugriff auf die Ordner „document“ und „invoice“, kein Zugriff auf Backup-Ordner. Betrachten Sie die Dashboards des Plugins danach nicht mehr als Nachweis dafür, dass diese Schutzmaßnahmen vorhanden sind.
Mittel M-6 Registrierungseinstellung aktiviert, Standardrolle: Abonnent

Jeder kann sich auf der Website ein Konto anlegen

Die Registrierung ist offen, und neue Konten erhalten die Rolle „Abonnent“. Angesichts des Shops, des Buchungssystems und der Online-Kurse ist dies vermutlich beabsichtigt, und die Kontenliste stimmt mit echten Kunden überein: Die Registrierungsspitzen im Februar und März fallen mit der Steuererklärungssaison zusammen.

Dies wird hier aufgeführt, da ein offenes Registrierungsformular der übliche erste Schritt bei Angriffen zur Rechteausweitung ist. Einige der Plugins auf dieser Website wiesen in der Vergangenheit Schwachstellen auf, die nur von angemeldeten Benutzern ausgenutzt werden konnten, und eine offene Registrierung bedeutet, dass sich jeder als Benutzer registrieren kann.

Eine Handvoll Konten nutzt Einweg- oder anonyme E-Mail-Domains. Keines davon verfügt über Sonderrechte.

Maßnahme: Behalten Sie die Registrierung bei, wenn das Unternehmen sie benötigt, und halten Sie im Gegenzug die Plugins auf dem neuesten Stand, da davon das Risiko abhängt. Wenn sie nicht benötigt wird, deaktivieren Sie sie.
Mittel M-7 Dateimanager-Schlüssel, Einstellungen für die HTTP-Authentifizierung des Backup-Plugins

Die Anmeldedaten von deinstallierten Plugins sind weiterhin in der Datenbank gespeichert

Zwei Plugins, die nicht mehr installiert sind, haben Anmeldedaten zurückgelassen: Ein Dateimanager hat seinen Zugriffsschlüssel hinterlassen, und ein Backup-Plugin hat gespeicherte HTTP-Authentifizierungseinstellungen zurückgelassen. Wir haben die Werte nicht ausgelesen.

Ein Dateimanager ist aus einem zweiten Grund erwähnenswert. Er ermöglicht den vollständigen Zugriff auf das Dateisystem über den Browser, und an mehreren Stellen auf dieser Website finden sich Spuren davon, sodass er hier also irgendwann einmal gelaufen ist. Das ist genau die Art von Tool, die es ermöglicht, aus einem einzigen kompromittierten Administratorkonto vollständigen Zugriff auf den Server zu gewinnen.

Maßnahme: Löschen Sie diese übrig gebliebenen Einstellungen, und falls eine der Anmeldedaten an anderer Stelle wiederverwendet wurde, ändern Sie diese.
Mittel M-8 wp-config.php

Konfigurationsmängel, die einen Vorfall schlimmer machen, als er sein müsste

Drei Umstände, von denen keiner für sich genommen gefährlich war, die jedoch jeweils die Auswirkungen des Geschehens verstärkten.

  • In der Produktionsumgebung ist die vollständige Protokollierung von Datenbankabfragen aktiviert, wodurch das in H-1 beschriebene Abfrageprotokoll mit Passwort-Hashes und Kundendaten gefüllt wird.
  • Die Standardeinstellung wp_ Tabellenpräfix, das es automatisierten Angriffstools ermöglicht, Ihre Tabellennamen zu erraten, ohne diese einzeln abfragen zu müssen.
  • Automatische Updates sind deaktiviert, sodass die Website vollständig vom verwalteten Update-Zeitplan abhängt und derzeit 35 Updates ausstehen.

Ihre Datenbank-Anmeldedaten selbst sind in Ordnung: Das Passwort ist weder leer noch trivial kurz, und die Sicherheitsschlüssel sind eindeutig und wurden nicht auf ihren Platzhalterwerten belassen. Sie müssen nun nur noch geändert werden, weil C-1 sie veröffentlicht hat.

Maßnahme: Deaktivieren Sie die Abfrageprotokollierung auf der Live-Website und aktivieren Sie entweder die automatischen Sicherheitsupdates wieder oder vergewissern Sie sich, dass der verwaltete Zeitplan diese tatsächlich durchführt.
Mittel M-9 /wp-content/updraft/ und /wp-content/wpvividbackups/

Ein Backup-Plugin-Ordner ist im öffentlichen Web erreichbar, und wir können nicht sehen, was darin enthalten ist.

Beide Adressen reagieren auf die Anfrage, anstatt sie abzulehnen. Das ist wichtiger, als es auf den ersten Blick scheint: Backup-Plugins speichern vollständige Website-Archive in diesen Ordnern, und ein einzelnes Archiv enthält die gesamte Datenbank – also jeden Passwort-Hash, jeden Kundendatensatz und jeden Schlüssel der Website in einer einzigen Datei, die heruntergeladen werden kann.

Wir weisen ausdrücklich darauf hin, dass unsere Aussagen hier begrenzt sind. Der Inhalt dieser Ordner liegt außerhalb des Untersuchungsbereichs dieser Überprüfung, daher stufen wir sie weder als offengelegt noch als sicher ein. Wir wissen lediglich, dass die Pfade aktiv sind und dass uns der Zugriff auf nichts verweigert wurde.

Maßnahme: Listen Sie heute beide Ordner auf dem Server auf. Sollte einer der beiden Ordner ein Archiv enthalten, behandeln Sie dies als Offenlegung von Anmeldedaten in derselben Größenordnung wie C-1 und verschieben Sie die Archive aus dem Web-Stammverzeichnis. Sperren Sie anschließend den Webzugriff auf beide Pfade auf Serverebene, da es sich bei den Plugin-Regeln, die dies eigentlich gewährleisten sollten, um Apache-Regeln auf einem Nginx-Server handelt.
Niedrig L-1 Kommentartabelle, 28 Einträge

Kommentarspam in der Moderationswarteschlange

In der Spam-Warteschlange befinden sich 28 Kommentare, die auf Glücksspiel- und Erotik-Websites verweisen. Der Filter hat sie alle abgefangen, keiner wurde jemals veröffentlicht, und keine Ihrer Seiten enthält solche Inhalte. Es handelt sich um gewöhnlichen eingehenden Spam, der nur aufgeführt wird, damit Sie wissen, dass er geprüft wurde.

Maßnahme: Die Spam-Warteschlange leeren. Es sind keine weiteren Maßnahmen erforderlich.
Niedrig L-2 Zehn eingebettete Frames, die auf test1.northgate-advisors.com verweisen

Der Inhalt verweist weiterhin auf eine Staging-Adresse

Zehn in den Inhalt des Page Builders eingebettete Frames verweisen weiterhin auf eine Staging-Subdomain. Das ist an sich zwar keine Sicherheitslücke, aber es lohnt sich zu überprüfen, ob die Staging-Site nicht öffentlich erreichbar ist, da eine Kopie einer Website in der Regel dieselben Daten enthält, ohne dass dort Wartungsarbeiten durchgeführt werden.

Maßnahme: Die Inhalte auf der Live-Seite neu verlinken und die Staging-Seite mit einem Passwort schützen.
Niedrig L-3 Geplante Aufgaben, Cache-Ordner, vereinzelte Root-Dateien

Reste aus zwei Hosting-Migrationen und entfernten Plugins

Die Website trägt die Spuren ihrer Vergangenheit: geplante Aufgaben, die zu einem Sicherheits-Plugin, einem Übersetzungs-Plugin, einem Aktivitätsprotokoll und einem Verwaltungstool gehörten, die alle längst nicht mehr vorhanden sind, ein Optionsname, der noch immer ein früheres Tabellenpräfix enthält, mehrere veraltete Cache-Ordner, eine übrig gebliebene Wartungsseite, die auf den ältesten Serverpfad verweist, sowie eine Kopie einer Indexdatei. Vierzehn Ordner mit zufällig gewählten Namen in wp-content Sie sehen beunruhigend aus, sind aber tatsächlich der Asset-Cache des Cookie-Banner-Plugins, der ausschließlich JavaScript enthält – zwölf davon sind leer.

Das alles ist nicht böswillig. Es ist jedoch von Bedeutung, weil sich bösartige Dateien gerade in diesem Durcheinander verstecken und weil jemand, der diese Seite in Eile überfliegt, den Unterschied nicht erkennen kann.

Maßnahme: Löschen Sie die verwaisten geplanten Aufgaben sowie die veralteten Ordner und überflüssigen Dateien. Es lohnt sich, dies einmal gründlich zu erledigen.
Niedrig L-4 Trigger, Prozeduren und geplante Ereignisse auf Datenbankebene

Eine Datenbankabfrage kann von außen nicht abgeschlossen werden

Malware kann sich gelegentlich in der Datenbank-Engine selbst verstecken, beispielsweise als Trigger oder als gespeicherte Prozedur, die bei jedem Laden einer Seite eine Payload neu installiert. Dies ist die einzige Kategorie von Verstecken, die anhand des verfügbaren Materials nicht ausgeschlossen werden kann; daher wird sie als „ungeklärt“ und nicht als „bereinigt“ gemeldet.

Drei Abfragen reichen aus, um das Problem in Sekundenschnelle zu lösen – führen Sie sie in der Live-Datenbank aus:

SELECT TRIGGER_NAME, EVENT_OBJECT_TABLE, ACTION_TIMING, ACTION_STATEMENT
  FROM information_schema.TRIGGERS;
SELECT ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_DEFINITION
  FROM information_schema.ROUTINES;
SELECT EVENT_NAME, STATUS, EVENT_DEFINITION
  FROM information_schema.EVENTS;

Auf einer normalen WordPress-Website liefern alle drei keine Ergebnisse. Alle aufgeführten Einträge sollten sorgfältig gelesen werden.

Maßnahme: Bitten Sie Ihren Host oder Ihre Agentur, diese drei Abfragen auszuführen und Ihnen die Ergebnisse zuzusenden.

Die von uns bestätigten Adressen sind öffentlich zugänglich

Jede dieser Anfragen wurde am 30. Juli 2026 über das öffentliche Internet gestellt und beantwortet. Es wurden keine Dateiinhalte gespeichert.

Verifizierte, offengelegte Adressen 11 Adressen
  • /wp-config.php.wpdebugtoolkit-backupDatenbank-Passwort, alle Schlüssel, E-Mail-Schlüssel
  • /wp-content/uploads/client-statements/statement_5393.pdf1 von 5.606 Steuerunterlagen
  • /wp-content/billing_invoices_temp/invoice-4395.pdf1 von 27 Rechnungen
  • /wp-content/uploads/fluentform/1.113 Formularübermittlungen, davon eine verifiziert
  • /wp-content/uploads/fluent-support/ticket_140/1 von 1.248 Ticket-Anhängen
  • /wpdebugtoolkit/Abfrageprotokoll-Konsole
  • /wp-content/share-one-drive-cache/1.shortcodesToken-Ordner lesbar
  • /.user.iniServerpfade offengelegt
  • /.htaccess1.901 Bytes, vollständiger Regelsatz offengelegt
  • /wp-content/debug.logPHP-Fehlerprotokoll lesbar
  • /wp-content/updraft/Antworten zum Backup-Ordner, Inhalt unbekannt
Ein weiteres Ergebnis ist als positive Nachricht erwähnenswert. Die PHP-Ausführung im Ordner „media“ wurde mit einer dort bereits vorhandenen Datei getestet, und sie lief – das entspricht Befund C-3. Während dieser Überprüfung wurde nichts auf Ihre Website hochgeladen, und es wurden keine Änderungen vorgenommen.

Erfolgreich durchgeführte Prüfungen

Was als unauffällig befunden wurde, wurde ausdrücklich angegeben, denn zu wissen, was ausgeschlossen wurde, ist genauso wichtig wie die Befunde selbst.

Bestanden 47.005 PHP-Dateien geprüft

In den Dateien der Website ist keinerlei Schadcode zu finden

Jede PHP-Datei wurde auf versteckten und verschlüsselten Code, auf Code, der unabhängig davon ausgeführt wird, was ein Besucher übermittelt, sowie auf kleine Loader überprüft, die gelöschte Malware erneut installieren. Es wurde nichts gefunden. Der WordPress-Kern, das aktive Theme, die drei automatisch geladenen Plugins und die Einstiegsdateien der Website entsprechen alle dem Originalzustand der Hersteller und enthalten keinen eingefügten Code.

Die beiden Bereiche auf dieser Website, in denen beliebiger Code ausgeführt werden kann, sind legitime Tools, die Zeile für Zeile geprüft wurden: der Code-Snippet-Manager und die Diagnosekonsole in H-1. Bei beiden ist diese Funktion durch eine Administratorprüfung geschützt.

Bestanden Beiträge, Seitendaten, Kommentare, Links

Ihre Seiten und Inhalte sind sauber, keine eingebetteten Links, kein Spam

Keine eingebetteten Skripte, keine versteckten Links, kein Suchmaschinen-Spam und kein Weiterleitungscode auf irgendeiner Seite oder in irgendeiner Seiteneinstellung. Jeder eingebettete Frame und jedes Skript führt zu dem, was erwartet wird: Ihre eigene Website, Ihre Analysetools, Ihr Einwilligungsbanner, Google Maps, YouTube und ein Finanzmodellierungstool. Ausgehende Links verweisen auf kantonale und eidgenössische Steuerbehörden in der Schweiz, Wikipedia und ähnliche Seiten. An Ihren veröffentlichten Inhalten wurde nichts verändert.

Bestanden Einstellungen, geplante Aufgaben, Code-Schnipsel, Liste der aktiven Plugins

Keine versteckten persistenten Daten in der Datenbank

Dies ist die wichtigste Überprüfung nach einem Sicherheitsvorfall, da sie auch nach einer Dateibereinigung noch Bestand hat. Alle zehn gespeicherten Code-Schnipsel wurden vollständig gelesen und sind entweder Ihre eigenen oder legitime Arbeiten Ihrer Agentur. Keine geplante Aufgabe enthält Code. Keine Einstellung enthält eine verschlüsselte Nutzlast. Jedes aktive Plugin verfügt über einen entsprechenden Ordner auf der Festplatte, sodass kein verstecktes Plugin ausschließlich über die Datenbank ausgeführt wird. Die Einstellungen für Ihre Website-Adresse sind korrekt und es steht keine Änderung der E-Mail-Adresse des Administrators an.

Jede Quelle für Plugin-Updates verweist auf den tatsächlichen Anbieter, und es gibt keine Anzeichen für raubkopierte Plugin-Versionen, die eine häufige Methode darstellen, mit der Malware mit Zustimmung des Website-Betreibers auf die Website gelangt.

Bestanden E-Mail-Verlauf und Kampagnenvolumen

Ihre Website wird nicht zum Versenden von Spam genutzt

Das E-Mail-Aufkommen liegt seit mehr als drei Jahren konstant bei 11.000 bis 14.000 Nachrichten pro Monat und entspricht damit Ihrem Newsletter-Zeitplan, mit den üblichen Spitzenwerten im Januar und Juli. Es gibt weder plötzliche Spitzen noch unerklärliche Versendungen, sodass der Zugriff des Angreifers im Juli nicht dazu genutzt wurde, die Website in einen Spam-Relay zu verwandeln. Das bedeutet auch, dass die Reputation Ihrer Domain als Absender unbeeinträchtigt ist.

Bestanden 317 geprüfte Konten

Es gibt keine unerwarteten Administratoren mehr und keine versteckten Berechtigungszuweisungen.

Alle 317 Konten wurden anhand der gespeicherten Berechtigungen überprüft. Die acht Administratoren sind alle Ihrem Team, Ihrer Behörde oder einem Plugin-Anbieter zuzuordnen, und kein Konto verfügt über Berechtigungen, die außerhalb des üblichen Mechanismus gewährt wurden. Das Muster der Kundenregistrierungen stimmt mit Ihrem Geschäftsbetrieb überein, einschließlich des Spitzenaufkommens während der Steuerperiode. Die drei in C-4 beschriebenen Angreiferkonten sind nachweislich nicht mehr vorhanden.

Was ist zu tun, um

Geordnet nach dem, was das Risiko am schnellsten am stärksten verringert. Die ersten vier sind für heute vorgesehen.

  1. Löschen Sie die durchgesickerte Konfigurationskopie und tauschen Sie die darin offengelegten Daten aus. Entfernen wp-config.php.wpdebugtoolkit-backup, ändern Sie anschließend das Datenbankpasswort, generieren Sie alle neun Authentifizierungsschlüssel und Salts neu und erstellen Sie einen neuen Mailgun-API-Schlüssel. Der Rotation Das ist der entscheidende Punkt: Die Datei konnte gelesen werden, daher müssen diese Werte als bekannt behandelt werden.
  2. Den öffentlichen Zugriff auf die Kundendokumente sperren. Block uploads/client-statements/, billing_invoices_temp/, uploads/fluentform/ und uploads/fluent-support/ auf dem Webserver und stellen Sie diese Dateien dann ausschließlich über ein Skript bereit, das überprüft, wer sie anfordert. Bitten Sie Ihren Hosting-Anbieter um die Zugriffsprotokolle dieser Ordner, damit Sie feststellen können, ob jemand tatsächlich darauf zugegriffen hat.
  3. Verhindern Sie, dass PHP im Medienordner ausgeführt wird. Eine einzige Nginx-Regel. Dies ist die Bedingung, die eine hochgeladene Datei in eine funktionierende Hintertür verwandelt hat, und sie ist nach wie vor aktiv.
  4. Identifizieren Sie die Adresse 192.0.2.117 und beenden Sie alle Administratorsitzungen. Falls niemand diese Adresse beansprucht, gehen Sie davon aus, dass ein Unbefugter weiterhin Administratorzugriff hat, und handeln Sie entsprechend. Das Beenden aller Sitzungen erfolgt automatisch, wenn Sie in Schritt 1 die Schlüssel wechseln.
  5. Aktualisieren Sie die vier Plugins, für die Sicherheitslücken bekannt sind (Fluent Forms, Google Tag Manager, Loco Translate, Widget for Google Reviews), und führen Sie anschließend die restlichen 31 ausstehenden Aktualisierungen durch.
  6. Richten Sie für alle acht Administratorkonten eine Zwei-Faktor-Authentifizierung ein und setzen Sie deren Passwörter zurück. Derzeit verfügt nur ein Konto über einen zweiten Authentifizierungsfaktor, während derzeit ein Passwortangriff unter Verwendung der Namen Ihrer Mitarbeiter im Gange ist.
  7. Den Datei-Editor deaktivieren. Hinzufügen DISALLOW_FILE_EDIT und FORCE_SSL_ADMIN in die Konfigurationsdatei.
  8. Entfernen Sie die Diagnosekonsole von der Live-Website, einschließlich der Datenbank-Interception-Datei und der Einstellung zur Abfrageprotokollierung. Falls sie verbleiben muss, beschränken Sie den Zugriff auf bestimmte IP-Adressen und schließen Sie sie nicht mehr von Malware-Scans aus.
  9. Übertragen Sie die Schutzregeln in Nginx. Alle 24 Zugriffsregel-Dateien auf dieser Website sind für Apache geschrieben und haben keine Funktion. Solange sie nicht übertragen wurden, sind einige Schutzmaßnahmen, von denen Sie glauben, dass sie aktiv sind, tatsächlich nicht aktiv.
  10. Reduzieren Sie die Anzahl der Administratoren und schließen Sie den Fernverwaltungskanal oder stellen Sie sicher, dass dieser aktiv genutzt wird. Löschen Sie die inaktiven Konten von Behörden und Anbietern.
  11. Beseitigen Sie die Überbleibsel: die kompilierten Vorlagendateien im Medienordner, die doppelte alte Plugin-Kopie, den OneDrive-Token-Ordner, die von entfernten Plugins hinterlassenen Anmeldedaten sowie die verwaisten geplanten Aufgaben.
  12. Bitten Sie Ihren Hosting-Anbieter um die Zugriffsprotokolle des Webservers für den Zeitraum vom 15. bis zum 28. Juli. Dies ist die einzige Quelle, aus der hervorgeht, welche Anfrage die Hintertür installiert hat – und nur so können Sie sicher sein, dass der Einfallspunkt tatsächlich geschlossen ist und nicht nur vorübergehend inaktiv. Fordern Sie die Protokolle bald an, da die Aufbewahrungsfristen in der Regel kurz sind.

Was verhindert, dass so etwas noch einmal passiert?

Zehn der oben genannten Punkte lassen sich mit Funktionen lösen, die bereits in Ihrem „ WP Umbrella “-Dashboard vorhanden sind. Drei davon werden derzeit überwacht. Die übrigen sieben lassen sich mit nur einer Einstellung aktivieren, und jede der folgenden Zeilen enthält einen direkten Link zur entsprechenden Seite.

3
Bereits für dich angesehen
7
Nur noch eine Einstellung
Schalten Sie noch heute ein
Gilt hier nicht Live, Benachrichtigungen innerhalb weniger Tage Aktivitätsprotokoll öffnen

Aktivieren Sie das Aktivitätsprotokoll

Es protokolliert Anmeldungen, neue Konten, die Ernennung von Administratoren, Einstellungsänderungen und Dateibearbeitungen – jeweils mit Angabe der Adresse und der Uhrzeit. Diese Daten werden außerhalb Ihrer Website gespeichert, sodass sie von der Website aus nicht gelöscht werden können.

Zwei automatische Überprüfungen liefern Daten an dieses System. Die eine weist auf ein Administratorkonto hin, das nicht von WordPress erstellt wurde – genau wie die drei Konten vom Juli (C-4). Die andere prüft, ob Ihr Server Ihre Zugriffsregeln tatsächlich einhält (M-5), was erklärt, warum im Medienordner weiterhin PHP ausgeführt wird (C-3). Außerdem hätte sie aufgezeigt, wer hinter den acht Sitzungen von der IP-Adresse 192.0.2.117 steckt (H-2).

AntwortenC-4H-2M-5C-3
Gilt hier nicht Ab dem nächsten Seitenaufruf Offene Härtung

„Anmeldeversuche begrenzen“ und „Benutzeraufzählung blockieren“ aktivieren

Die Kampagne in H-5 funktioniert nur, weil sie die echten Namen Ihrer Mitarbeiter enthält. Durch das Blockieren der Enumeration wird verhindert, dass Ihre Autorenseiten und die REST-API diese Namen weitergeben, und die Ratenbegrenzung sperrt eine Adresse nach einer Handvoll Fehlversuchen. Aktivieren Sie auf derselben Seite gleich auch die Option „Anmeldefehlermeldungen maskieren“, wenn Sie schon dabei sind.

Keine der drei Optionen ersetzt die von H-5 geforderte Zwei-Faktor-Authentifizierung, die wir nicht anbieten.

Antworten H-5
Gilt hier nicht Ab dem nächsten Seitenaufruf Offene Härtung

Aktivieren Deaktivieren Sie den Editor für Theme- und Plugin-Dateien

Das ist genau die Korrektur, die H-4 beschreibt: ein Schalter anstelle einer Änderung an wp-config.php. Eine Administratorsitzung, in der dieser Editor verfügbar ist, kann jede Theme- oder Plugin-Datei direkt über den Browser überschreiben – was die „July“-Konten hätten tun können.

Antworten H-4
Gilt hier nicht Nach dem von Ihnen festgelegten Zeitplan Plugins öffnen

Automatische Updates aktivieren

Sie führen Updates nach einem festgelegten Zeitplan durch, fotografieren Ihre wichtigsten Seiten vor und nach dem Update und machen das Update rückgängig, wenn sich die Seiten ändern. Gerade dieser letzte Schritt beseitigt den Grund, warum sich 35 Updates ansammeln konnten (M-8).

Antworten M-8
Wir sind bereits für Sie im Einsatz
Aktiv Live, sobald die Warnmeldungen veröffentlicht werden Bekannte Sicherheitslücken

Deine Liste der Sicherheitslücken ist bereits vorhanden

Die vier in H-3 genannten Plugins sind auf dieser Seite zusammen mit ihren Sicherheitshinweisen aufgeführt und waren bereits vor Beginn dieser Überprüfung dort zu finden.

Das galt auch für die „Severity 100“-Backdoor-Warnung vom 28. Juli. Keine der beiden wurde gelesen. Klären Sie mit Ihrer Behörde ab, wer diese Seite überprüft und wie oft, denn das ist der einzige Aspekt, den keine Einstellung für Sie übernehmen kann.

Antworten H-3
Aktiv Bei jeder Überprüfung Zustand der Open-Site-Anlage

Deaktivierte Plugins und Themes werden bereits mitgezählt

Sowohl das Fernverwaltungs-Plugin in M-2 als auch die ältere, doppelte OneDrive-Kopie in M-3 werden in dieser Zählung berücksichtigt.

Das zeigt Ihnen, dass sie existieren. Es sagt Ihnen jedoch nicht, dass M-2 nach wie vor über einen Verbindungsschlüssel verfügt, der mit zwei Administratorkonten verknüpft ist – und genau deshalb handelt es sich hier um einen Befund und nicht nur um eine bloße Zahl.

LösungenM-2M-3
Was damit nicht behauptet wird: Keine dieser Maßnahmen hätte den Einbruch im Juli für sich allein verhindern können. Was sie verändern, ist die Zeitspanne, in der etwas läuft, bevor jemand davon erfährt. In diesem Fall waren es sechs Tage zwischen der Warnmeldung bezüglich der Hintertür und dem Zeitpunkt, an dem jemand diese gelesen hat, sowie etwa ein Jahr zwischen dem Zeitpunkt, an dem Ihre Schutzmaßnahmen nicht mehr funktionierten, und dem Zeitpunkt, an dem dieser Bericht darauf hinwies.

Sollen wir das für Sie reinigen?

Falls Sie diese Liste lieber nicht selbst abarbeiten möchten, können wir die Behebung für Sie übernehmen.

Gesteuerte Bereinigung
Wir beenden die Belichtung und härten die Stelle aus
180 €einmalige Maßnahme

Was wir tun

  • Zunächst die Situation unter Kontrolle bringen: Die durchgesickerte Konfigurationskopie entfernen und alle aktiven Sitzungen beenden.
  • Ändern Sie das Datenbankpasswort, alle Authentifizierungsschlüssel und den E-Mail-API-Schlüssel.
  • Sperren Sie den öffentlichen Zugriff auf die Steuerunterlagen, die Rechnungen, die Anhänge zu Formularen und Belegen sowie den Token-Ordner auf Serverebene.
  • Blockieren Sie die Ausführung von PHP im Medienordner mithilfe einer Serverregel, die nicht von Plugin-Einstellungen abhängt.
  • Installieren Sie den WordPress-Kern und alle Plugins erneut aus den Originalquellen der Anbieter und führen Sie die ausstehenden Updates durch.
  • Entfernen Sie die Diagnosekonsole, die doppelte Plugin-Kopie und die verbleibenden ausführbaren Dateien.
  • Wir scannen die gesamte Website erneut und erstellen für Sie einen Vorher-Nachher-Bericht.
  • Harden: Datei-Editor deaktiviert, HTTPS im Administrationsbereich erzwungen, Zwei-Faktor-Authentifizierung für die Administratoren eingerichtet.

Was wir von Ihnen benötigen

  • SFTP- oder FTP-Zugriff auf die Website.

Das ist alles, was wir brauchen, um loszulegen. Alles Weitere (Rotation der Anmeldedaten, Schließen des Einstiegspunkts, Absicherung) wird im Rahmen der Nachbereinigung erledigt.

Mittelverpflichtung. Wir ergreifen alle erforderlichen Maßnahmen, können jedoch keine 100-prozentige Garantie gegen eine erneute Infektion geben, solange der Einfallstor nicht geschlossen ist. Auf dieser Website ist der wahrscheinliche Einfallstor ein veraltetes Plugin; daher ist die regelmäßige Installation von Updates nach der Bereinigung ein wichtiger Bestandteil, um diesen Einfallstor geschlossen zu halten.
Bei diesem Schweregrad liegen keine Befunde vor.