Fallstudie · Sicherheit · WordPress

Trzy rodziny backdoorów w jednej instalacji WordPress

ein paar Tageoffline vor unserem Kontakt
3 Familienhintertüren entfernt
3 Jahreunentdeckte Persistenz
1 Tagvollständige Bereinigung

Die Kundenseite war einige Tage lang nicht verfügbar. Darunter: drei unabhängige Backdoor-Familien, ein chinesischer C&C-Server, ein ukrainischer Telegram-Bot und ein Phishing-Kit, das sich als japanischer Laden tarnt. Alles in einer WordPress-Installation, die von außen gesund aussah.

Als der Kunde uns kontaktierte, gab es kein einziges „etwas funktioniert nicht” -Symptom. Es gab ein spezifisches, messbares Problem: Die Unternehmenswebsite reagierte nicht. Unter diesem Misserfolg gab es ein Dutzend oder so kleine Signale, die einzeln nichts bedeuteten, aber zusammen ein Bild von systematischen, langfristigen Zugriffen Dritter auf den Server bildeten. Wir haben die Geschichte an einem Tag beendet. Wir haben den Mechanismus verlassen, der uns die Gewissheit gab, dass das Problem wirklich für den Kunden dauerhaft verschwunden ist. Wenn Sie genau diese Art von Pflege suchen, unterhalts- und Entwicklungsangebote der Parteien.

Im Falle einer Unternehmenswebsite, die als Website und Leads-Quelle fungiert, ist es ein einfacher Weg zu einem messbaren Verlust:

  • null RFQs für den gesamten Zeitraum der Nichtverfügbarkeit
  • suchmaschineneinträge, die für Wochen nach der Rückkehr wieder aufgebaut werden sollen (Google stürzt in wenigen Stunden aus dem Index ab, stellt in wenigen Wochen wieder her)
  • vertrauensverlust von Kunden, die in der Zwischenzeit auf eine Fehlermeldung gestoßen sind
  • das Risiko, die Domain von Google Safe Browsing und Microsoft SmartScreen dauerhaft als „betrügerische Website” zu markieren, was die Website in Chrome, Edge, Firefox und in Antivirus-Warnungen auch nach dem Entfernen des Codes blockiert

Unsere Arbeit begann mit fehlerwiederherstellung: Die Wiederherstellung der Verfügbarkeit der Website für den normalen Datenverkehr war der erste Schritt, und die Diagnose und Bereinigung fanden erst nach dem Start der Seite parallel statt.

Branche und Kontext

Der Kunde betreibt mit Elementor Pro und der Jet-Plug-in-Familie einen Corporate Landing + Offer Service auf Basis von WordPress. Shared Hosting. Ein Standard-Stack, der Hunderttausende von Unternehmen in Polen bedient. Deshalb ist dieser Fall interessant: Er zeichnet sich durch nichts Besonderes aus. Es hätte die Website eines beliebigen Unternehmens sein können. Zum Vergleich:, ähnlicher WordPress-Fall, den wir für die Numerologie-Schule gemacht haben: andere Branche, gleiche Komplexität unter der Haube.

Ausgangspunkt

Kleine, schwer zu verbindende Dinge begannen auf der Website zu passieren:

  • in regelmäßigen Abständen erschienen neue Dateien index.php in zufälligen Plugin-Unterordnern
  • Datei license.txt im Hauptkatalog war Null-Größe und wurde regelmäßig alle paar Tage „bemuskelt” (Änderung des Zeitstempels ohne Änderung des Inhalts)
  • in der Google Search Console wurden auf Japanisch indizierte Seiten vorgestellt, die nicht veröffentlicht wurden
  • neben WordPress, unter Quiz, das Quiz „Berechnung der Kosten für die Photovoltaikanlage” lief in polnischer Sprache, obwohl sich der Auftraggeber nicht mit Photovoltaik beschäftigt

Jedes dieser Signale kann separat ignoriert werden. Zusammen ist es ein Lehrbuchmuster der langfristigen Verlegenheit.

Diagnose: drei Hintertürfamilien + Phishing-Kit

Die Untersuchung ergab, dass der Server im Raum der mehr als drei Jahre, von verschiedenen Gruppen, mit unterschiedlichen Zielen. Nachfolgend finden Sie eine kurze Beschreibung jeder der Familien, und unter jeder Beschreibung gibt es einen Abschnitt mit technischen Details für Interessierte.

Familie 1: Japanischer SEO-Umhang + chinesischer RCE

Allgemein index.php die Website, auf der normalerweise WordPress ausgeführt wird, wurde überarbeitet, um drei überlappende Schichten bösartigen Codes. Ein normaler Benutzer aus Polen sah eine normale Seite. Der Googlebot aus Japan hat einen gefälschten Shop gesehen. Der Angreifer mit dem richtigen Parameter in der URL erhielt Remotecodeausführung.

▸Technisches Deep-Dive: drei Schichten in einer Datei
  • Cloak SEO auf Japanisch: wenn die Anfrage von Google.co.jp, Yahoo.co.jp, Bing oder Baidu kam (geprüft nach User-Agent + Referrer), antwortete der Server auf andere Location:als normal und zu einem gefälschten Geschäft umgeleitet, das sich als Askul verkleidet.
  • „2DUAN” (Chinesische Familie): separater Block mit Markierungen 2DUAN_START i 2DUAN_END, mit zusammengesetzter URL zum C&C-Server, codiert in ROT13, symmetrischer Schlüssel in konstanter KK und Instanzkennung in der Variablen der. Darüber hinaus kann die Remotecodeausführung durch Parameter ?pwd=X&gv=Y (Passwort nach MD5).
  • Am Ende: ein normaler WordPress-Bootstrap, damit die Website bei normalem Traffic nicht abstürzt.

Drei Schichten in einer Datei deuten stark darauf hin, dass der Server aufeinanderfolgende Gruppen von Angreifern durchlaufen hat, und jeder hat sein eigenes Stück hinzugefügt.

Familie 2: Pipette mit zufälligen Hashes

Die zweite Familie ist fernlader, die von Zeit zu Zeit einen neuen Ordner mit einem zufälligen Hash erstellt und PHP hineingeworfen hat, der durch kräuselung eine Textantwort vom C&C-Server abgerufen und über abwägen. Drei Generationen von Dropper lebten parallel im Server, in verschiedenen Altersstufen. Die älteste von Dezember 2022.

▸Technisches Deep-Dive: drei Generationen, ein Launcher
  • /f1dec/ dezember 2022 (der älteste, wahrscheinlich der Zeitpunkt des ersten Einbruchs)
  • /wp-content/ad1b029e/ august 2026
  • /wp-content/x9f8ea6/ september 2026 (Regeneration während unserer Diagnosesitzung, live aufgenommen)

In jedem Fall ein identischer Launcher mit dem gleichen Sha-Hash. Null license.txt in der Wurzel war ihr „Kanarienvogel”: ein einfacher Marker, nach dem der Angreifer wusste, dass Beharrlichkeit noch am Leben war.

Familie 3: Magic-URL-Admin-Ersteller mit automatischer Heilung

Es war die gefährlichste Familie, weil sie bauen sich selbst wieder auf. Eine HTTP-ANFRAGE mit dem entsprechenden Parameter in der URL veranlasste den Server, selbst ein WordPress-Administratorkonto zu erstellen und den Angreifer sofort zu protokollieren. Die zweite Datei, an einem versteckten Ort, baute das Ganze wieder auf, wenn jemand die erste löschte.

▸Technisches Deep-Dive: zwei Dateien, drei Speicherorte, keine Chance auf manuelle Bereinigung
  • firewall.php: hat auf EINEN BESTIMMTEN GET-PARAMETER in der URL geantwortet. Ein Treffer veranlasste den Server, ein Administratorkonto zu erstellen (Login und E-Mail im Code eingenäht) und loggte den Angreifer sofort ohne Formular ein.
  • fixer.php: HTTP-open Regenerator. Wenn jemand entfernt firewall.php, eine HTTP-ANFRAGE reichte aus, um fixer.php, so dass er die Sicherungskopien von base64 dekodiert und wieder auf die Festplatte legt, in drei Standorte gleichzeitig: in der Wurzel, in Mu-Plugins, im Theme-Ordner.

Dies bedeutete, dass das manuelle Löschen von Dateien auf der Clientseite nichts bewirkte. Solange er auf dem Server lebte fixer.php, die restlichen Dateien kamen zurück.

Add-on: Phishing-Kit Quiz

Unabhängig von Hintertüren, in einem Unterordner Quiz Es gab ein Quiz basierend auf SaaS Marquiz. Quizaufbau: Polnischer Lead-Gen-Betrug für Photovoltaik. Leads aus dem Formular wurden über zwei Kanäle gesendet: an das Firmenpostfach des Kunden (Der Angreifer gab seine Adresse als Absender aus) i auf dem ukrainischen Telegram-Bot (Chat-ID + Bot-Token im Code eingebettet).

Zeitleiste des Angriffs (rekonstruiert)

Datum Ereignis
2022-12-10 Erster Lader (/f1dec/index.php). Wahrscheinlich der Moment der ursprünglichen Diskreditierung durch den alten CVE.
2025-08-12 Stellen Sie ein Phishing-Kit bereit Quiz + Telegram-Bot.
2026-08-22 Die zweite Generation von Dropper (/wp-content/ad1b029e/).
2026-08-30 14:16 Batch-Drop: Versteckter Ordner mit Namen, der Anführungszeichen enthält (Anti-lstat Trick) + wp2shell-batch-guard.
2026-08-31 01:31 Massiver Einsatz: firewall.php + fixer.php + wp2shell-batch-guard.php an drei Standorten. Noch am selben Tag Angreifer ersetzt den WordPress-Kern und überschrieben wp-config.php, wahrscheinlich um nach einer automatischen Bereinigung die Kontrolle wiederzugewinnen.
2026-09-03 11:33 Während unserer Sitzung: die dritte Generation von Dropper (/wp-content/x9f8ea6/) erscheint live. Wir fangen es im Flug.
2026-09-03 11:52 Vollständige Bereinigung aller drei Familien + Phishing-Kit.

Drei Jahre Persistenz, einschließlich einer Reihe aktiver Operationen im letzten Monat. Der Kunde wusste nichts davon.

Was wir getan haben

Schritt 1: Verfügbarkeit wiederherstellen

Die ersten Stunden wurden damit verbracht, die Website überhaupt zum Laufen zu bringen, egal, was wir darunter finden. Außenverkehr ausschließen, einen sauberen Einstiegspunkt wiederherstellen (index.php), wobei offensichtliche 500er entfernt werden. Erst dann begann die eigentliche Diagnose.

Schritt 2: Aufzählung aller Dropper

Vollständiger Webroot-Scan mit charakteristischen Markern (gehe zu +base64, 2DUAN, eval(curl(...)), ungewöhnliche Anführungszeichen in Ordnernamen als Anti-Lstat-Trick). Jede gefundene Datei: Offsite-Sicherung + Löschung.

Schritt 3: Schneiden der Regenerationskette

Familie 3 regeneriert für fixer.php. Soweit unserem fixer.php er am Leben war, kamen die anderen Akten zurück. Wir mussten feststellen, dass fixer.php existiert in drei Standorte gleichzeitig und entfernen Sie alle drei in einem Durchgang. Nach dem ersten Versuch, bei dem wir nur eine Kopie im Theme gelöscht haben, kamen die Dateien innerhalb weniger Minuten zurück.

Schritt 4: Phishing-Kit + Telegramm

Löschen eines gesamten Verzeichnisses Quiz und das zugehörige Marquiz-Konto (wir haben dem Kunden eine Liste der Schritte gegeben, die er bei sich zu Hause durchführen muss). Sperren von Sendungen aus eigener Domäne als Absender (SPF + DMARC ablehnen).

Schritt 5: Watcher Mu-Plugin (bleibt dauerhaft)

Wir haben ein spezielles Mu-Plugin entwickelt, nennen wir es einen „forensischen Beobachter”, der in wp-content/mu-plugins/ und startet mit jeder PHP-Anfrage. Es ist Teil des Pakets, das wir jedem Vertrag als Teil wartung und Entwicklung der Parteien.

▸Was genau macht der Beobachter (Funktionsliste)
  • Protokolliert alle, die sich im .PHP auf dem Server: neue Datei, Änderung, Löschung. Separates Protokoll mit vollständigem Pfad + Zeitstempel.
  • Protokolliert jeden Angriffsversuch: Anfrage mit bekannten Unterschriften der drei Hintertürfamilien. Separates Protokoll, separate Datei.
  • Blöcke 403: bevor der Angreifer eine Antwort erhält, gibt der Server 403 Forbidden an bekannte Signaturen zurück. Also auch wenn in Zukunft ein Wunder auf dem Server auftaucht firewall.php, funktioniert die magische URL sowieso nicht.
  • Diagnostische Endpunkte token-geschützt: Status, Baseline, Änderungsliste, Benutzerliste, Cron-Liste, Grep nach Dateiinhalt, Autoremediation. Eine HTTP-Anfrage und wir wissen, ob sich in den letzten 24 Stunden etwas auf dem Server geändert hat.
  • Protokolle außerhalb von Webroot: Logfiles gehen in das Verzeichnis höher als das öffentlich verfügbare Webroot, zusätzlich von .htaccess deny. Selbst wenn der Angreifer wieder FTP-Zugriff erhält, wird er nicht sehen, was genau wir wissen.

Schritt 6: Datenbank-Audit

Darüber hinaus haben wir durch den Beobachter überprüft, dass es gibt keinen Müll von Angreifern in der Basis: wp_users (der einzige Administrator ist ein Kundenkonto, keine von Angreifern erstellten Konten), wp_options.autoload (sauber), WP-Cron (sauber, keine registrierten Haken, die nicht Standard-Plugins zugeordnet werden können).

Warum es überhaupt passiert ist

Drei unabhängige Vektoren sind selten, aber die spezifischen Gründe, die Angreifer eingeben, sind eines von drei Dingen in 95%-Fällen:

  1. Veraltete Plugins mit öffentlichem CVE. Der Server verfügte vor etwa einem Dutzend Monaten über mehrere Plugins aus der Jet-Familie. Einer von ihnen hatte im Zeitraum 2022-2023 eine öffentlich beschriebene Lücke, die den Upload authentifizierter Dateien ermöglichte.
  2. Schwaches Admin-Passwort oder Leck aus externem Dienst (Datenschutzverletzung). Der ursprüngliche Kompromiss war möglicherweise nicht „technisch”: Es reicht aus, dass jemand an mehreren Stellen dasselbe Passwort verwendet hat und einer von ihnen durchgesickert ist.
  3. Gemeinsames Gastgeben. Einige dokumentierte Angriffe auf Shared Hosting beinhalteten den Übergang von einer kompromittierten Seite eines Nachbarn zur anderen durch eine gemeinsame TMP oder die Standard-Verzeichnisrechte.

Ergebnisse in Zahlen

Interaktives Diagramm · bewegen Sie den Mauszeiger über einen Punkt

Drei Jahre Stille, zehn Tage Eruption, eine Minute Aufräumarbeiten

Die kumulative Anzahl bösartiger Artefakte auf dem Server im Laufe der Zeit. Jeder Punkt ist ein separater Einsatz des Angreifers. Der grüne Punkt am Ende ist unsere Intervention.

0251012Kumulative Artefakte10 Tage intensive Eskalation2022-12-10 · Pierwszy loader /f1dec/index.php — moment pierwotnej kompromitacji | Kumulative Artefakte: 12025-08-12 · Stellen Sie ein Phishing-Kit bereit /quiz/ + ukraiński Telegram bot | Kumulative Artefakte: 22026-08-22 · Die zweite Generation von Dropper (/wp-content/ad1b029e/) | Kumulative Artefakte: 32026-08-30 14:16 · Batch drop: ukryty folder z anti-lstat trick + wp2shell-batch-guard | Kumulative Artefakte: 52026-08-31 01:31 · MASYWNY DEPLOY: firewall + fixer + wp2shell w drei Standorte gleichzeitig, plus podmiana rdzenia WordPressa | Kumulative Artefakte: 102026-09-03 11:33 · Trzecia generacja droppera (/wp-content/x9f8ea6/) — pojawia się w trakcie naszej sesji, złapana na żywo | Kumulative Artefakte: 112026-09-03 11:52 · NASZA INTERWENCJA — pełny cleanup wszystkich trzech rodzin backdoorów + phishing kitu. Czas od pierwszej generacji droppera: 3 lata, 2 miesiące, 24 dni | Pozostało: 012.202208.202522.08.2630.0831.0803.09 11:33bereinigungangreifer einsetzenunser Eingreifen (Cleanup)

Was wir gefunden haben

Aufteilung schädlicher Artefakte

Rodzina 1: Japanese SEO cloak + chiński 2DUAN RCERodzina 2: Dropper z losowymi hashami (3 generacje)Familie 3: Magic-URL-Admin-Ersteller mit automatischer HeilungAdd-on: Phishing-Kit /quiz/ z Telegram botem4vektoren

  • Japanischer Umhang + 2DUAN
  • Pipette (3 Generationen)
  • magic-URL admin
  • Phishing-Kit /Quiz/

Zeit: Angriff vs. Reaktion

Waagenvergleich

Zeitpunkt, zu dem der Angriff unbemerkt blieb3 Jahre
Ausfallzeit, bevor der Kunde uns erreichtein paar Tage
Vollständige Reinigung nach der Restaurierung1 Tag
Erkennung eines zurückkehrenden Tropfers (Watcher)minuten

Proportionale Streifen. Watcher komprimiert die Erkennungszeit etwa tausendmal aus dem ursprünglichen Zustand.

Überwachungsstatus
0
rückfälle seit der Implementierung des Watchers

Gesammelte Artefakte
>12
bösartige Dateien an verschiedenen Orten
Nachweis in DB
0 / 0 / 0
auslandskonten · Optionen · Kronenhaken

Was uns dieser Fall gelehrt hat

1. Hintertüren können nebeneinander existieren

Die Gewohnheit „ein Angriff = eine Art von Schädling” ist irreführend. Wenn eine Seite seit Jahren exponiert und anfällig ist, könnte sie mehrmals von verschiedenen Gruppen mit unterschiedlichen Zielen kompromittiert worden sein. Jeder von ihnen hinterlässt seinen eigenen Mechanismus der Beharrlichkeit und jeder von ihnen muss separat gefunden werden. Das Anhalten nach dem Löschen der ersten Datei ist ein häufiger Fehler.

2. Auto-Heilung ist der wichtigste Überlebensmechanismus moderner Malware

Dateien an sichtbaren Stellen sind Köder. Der wahre Überlebensmechanismus ist regenerator an einem nicht offensichtlichen Ort, der sichtbare Dateien jedes Mal neu erstellt, wenn jemand sie löscht. Wenn nach dem „Löschen” der Seiten die Dateien innerhalb weniger Stunden zurückkehren, bedeutet dies, dass nur die Symptome beseitigt wurden.

3. Ihre Domain kann ein Werkzeug sein, auch wenn Ihre Website in Ordnung aussieht

Das Phishing-Kit mit dem Telegram-Bot hat aus Sicht des Besuchers nichts sichtbar gemacht. Er hat keine Anzeigen geschaltet, er hat nicht umgeleitet, er hat SEO nicht geändert. Er hat nur verwendet domain als Absender. Für Google, Microsoft, Barracuda und den Rest der Anti-Spam-Betreiber sieht es so aus, als ob du derjenige bist, der das Phishing sendet. Die Folgen (SPAMhaus Blacklist, Verlust der Zustellbarkeit) sind gravierender als Defacement.

4. Datei-Überwachung ist kein Luxus

Die meisten Kunden erkennen den Angriff erst, wenn etwas visuell kaputt geht: Die Seite wird nicht geladen, eine Chrome-Warnung „Täuschungsseite” erscheint, Google stürzt aus dem Index ab. An dieser Stelle dauern schädliche Aktivitäten auf dem Server oft monatelang an. Ein einfacher Beobachter, der Änderungen protokolliert .PHP, gibt die Reaktionszeit in Stunden an, nicht in Monaten. Dies ist ein Standardbestandteil jedes unserer Verträge wartung.

5. Backups vor dem X-Datum enthalten Hintertüren

Der Standardreflex nach Erkennung eines Kompromisses („Ich werde das Backup von vor einer Woche wiederherstellen”) würde in diesem Fall nicht funktionieren. Das Backup von vor einer Woche enthielt einen kompletten Satz von Hintertüren. Auch ein Backup von vor einem Jahr. Der einzige Weg ist eine vollständige forensische Bereinigung + frische Backups von Grund auf.

Backdoor w WordPressie: jak go rozpoznać i usunąć tak, żeby nie wrócił

Ten poradnik jest dla właścicieli firmowych stron na WordPressie, którzy podejrzewają włamanie albo już raz „czyścili” serwis, a dziwne pliki wróciły. Odpowiadamy na pytanie, jak usunąć backdoor z WordPressa w sposób, który zamyka sprawę, a nie tylko objawy.

Czym jest backdoor WordPress i dlaczego tak długo pozostaje niewidoczny

Backdoor WordPress to fragment kodu PHP, który daje atakującemu stały dostęp do serwera niezależnie od haseł w panelu. Może tworzyć konta administratorów, pobierać i wykonywać kod z zewnętrznego serwera albo podmieniać treść dla wybranych odwiedzających.

Kluczowa cecha: dobrze napisany backdoor nie psuje strony. Zwykły użytkownik widzi normalny serwis, bo złośliwy kod na końcu i tak uruchamia WordPressa. W opisanym wyżej wdrożeniu główny plik index.php zawierał trzy warstwy obcego kodu, a strona przez ponad trzy lata wyglądała z zewnątrz na zdrową.

Właściciel zwykle dowiaduje się o problemie dopiero wtedy, gdy przeglądarka pokazuje ostrzeżenie o niebezpiecznej witrynie, Google zaczyna usuwać podstrony z indeksu albo serwis przestaje odpowiadać.

Zhakowana strona WordPress: sygnały, których nie warto ignorować

Pojedynczy objaw łatwo zbagatelizować. Razem tworzą wzorzec długotrwałej kompromitacji. Warto zareagować, jeśli widzisz choćby kilka z poniższych:

  • nowe pliki index.php in zufälligen Plugin-Unterordnern lub katalogi o nazwach przypominających hash (np. ciąg liter i cyfr w wp-content),
  • pliki o zerowym rozmiarze, którym regularnie zmienia się data modyfikacji, bez zmiany treści,
  • w Google Search Console strony w obcym języku, których nikt nie publikował,
  • podkatalogi z treścią niezwiązaną z firmą, np. formularze, quizy, landing pages,
  • konta administratorów, których nikt nie zakładał, albo nieznane zadania w WP-Cron,
  • informacje od klientów o mailach wysłanych „z Waszej domeny”, których nie wysyłaliście.

W opisanym przypadku wszystkie te sygnały były widoczne na długo przed awarią. Pusty plik license.txt w katalogu głównym służył atakującym jako znacznik, że ich dostęp nadal działa.

Jak usunąć backdoor z WordPressa: kolejność działań

Najczęstszy błąd to usuwanie podejrzanych plików jeden po drugim, w miarę ich znajdowania. Skuteczny proces wygląda inaczej:

  • Przywrócenie dostępności. Czysty punkt wejścia (index.php), ograniczenie ruchu, usunięcie błędów 500. Diagnoza toczy się równolegle, ale strona ma najpierw działać.
  • Kopia materiału dowodowego. Każdy znaleziony plik trafia do kopii poza serwerem, zanim zostanie usunięty. Bez tego nie odtworzysz, co się stało i od kiedy.
  • Pełna enumeracja. Skanowanie całego webroota po charakterystycznych wzorcach, a nie przeglądanie folderów „na oko”.
  • Rozcięcie łańcucha regeneracji. Najpierw znajdujesz wszystkie kopie mechanizmu, który odtwarza pozostałe pliki, i usuwasz je w jednym przebiegu.
  • Sprzątanie poza plikami. Baza danych, poczta, DNS, konta zewnętrznych usług.
  • Stały monitoring. Mechanizm, który powie, jeśli cokolwiek wróci.

Skanowanie plików PHP: czego szukać w webroocie

Wtyczki bezpieczeństwa wyłapują znane sygnatury, ale backdoory są często zaciemniane. Warto przeszukać pliki .php pod kątem kilku wzorców: konstrukcji eval z treścią pobraną przez curl, długich ciągów base64 połączonych z goto, tekstu zakodowanego ROT13, nietypowych znaków (np. cudzysłowów) w nazwach katalogów, które utrudniają ich listowanie.

Drugi kierunek to porównanie rdzenia WordPressa z oficjalną wersją. W opisanym wdrożeniu atakujący podmienił pliki rdzenia i nadpisał wp-config.php. Takie zmiany widać tylko przy porównaniu z czystą kopią, nie przy przeglądaniu panelu.

Trzeci kierunek to katalog mu-plugins i folder motywu. Pliki w mu-plugins ładują się zawsze i nie pojawiają się na zwykłej liście wtyczek, więc są wygodnym miejscem dla atakującego.

Malware z funkcją auto-heal: dlaczego pliki wracają po usunięciu

Jeśli po „wyczyszczeniu” strony pliki wracają po kilku godzinach, usuwano objawy, a nie przyczynę. Współczesne backdoory mają regenerator: osobny plik w mało oczywistym miejscu, który na jedno żądanie HTTP odtwarza z zapasowej kopii (np. zakodowanej w base64) wszystko, co usunięto.

W opisanym przypadku regenerator leżał jednocześnie w trzech lokalizacjach: w katalogu głównym, w mu-plugins i w folderze motywu. Po pierwszym podejściu, w którym usunięto tylko kopię w motywie, pliki wróciły w ciągu kilku minut. Dopiero usunięcie wszystkich trzech naraz zamknęło pętlę.

Druga pułapka to współistnienie kilku rodzin szkodników. Strona podatna przez lata bywa przejmowana kilka razy, przez różne grupy. Tu były trzy niezależne rodziny backdoorów i osobny phishing kit. Zatrzymanie się po znalezieniu pierwszej rodziny oznaczałoby, że pozostałe dalej działają.

Baza danych, poczta i backupy po włamaniu

Pliki to nie wszystko. Po cleanupie trzeba sprawdzić tabelę wp_users (czy nie ma obcych administratorów), opcje ładowane automatycznie w wp_options i zarejestrowane zadania WP-Cron. W opisanym wdrożeniu baza okazała się czysta, ale bez tej weryfikacji nie dałoby się tego stwierdzić.

Osobny temat to poczta. Phishing kit ukryty w podkatalogu wysyłał maile z adresem domeny klienta jako nadawcą. Dla operatorów antyspamowych wygląda to tak, jakby phishing wysyłała sama firma, a skutkiem może być trafienie domeny na czarne listy. Ochroną jest poprawne SPF i polityka DMARC ustawiona na reject.

Ostatnia rzecz to backupy. Odruch „przywrócę kopię sprzed tygodnia” nie działa, jeśli włamanie ma kilka lat. Kopia sprzed tygodnia i sprzed roku zawierały tu komplet backdoorów. Po pełnym cleanupie trzeba zacząć serię backupów od zera.

Monitoring zmian plików WordPress zamiast kolejnego sprzątania

Przyczyną włamania najczęściej są nieaktualne wtyczki z opublikowaną luką, słabe lub powtarzane hasła administratora albo sąsiedztwo na hostingu współdzielonym. Aktualizacje i hasła to podstawa, ale nie dają informacji, że coś już się wydarzyło.

Dlatego po cleanupie klient dostał mu-plugin, który loguje każdą zmianę w plikach .php, blokuje kodem 403 żądania ze znanymi sygnaturami tych rodzin backdoorów i trzyma logi poza publicznym katalogiem. Wykrycie wracającego droppera zajmuje minuty, a nie lata. Od wdrożenia tego mechanizmu nie było nawrotu.

Jeśli masz firmową stronę na WordPressie i nikt nie pilnuje serwera od środka, dobrym pierwszym krokiem jest przegląd wszystkich plików .php w webroocie i listy kont administracyjnych. Taki przegląd pokazuje, czy na serwerze działa jakikolwiek backdoor WordPress, zanim strona przestanie odpowiadać.

Für wen dieser Fall wichtig ist

  • Inhaber von Unternehmenswebsites auf WordPress, die „von einer Agentur gehostet werden” und nicht wissen, wer für ihre Sicherheit verantwortlich ist
  • Unternehmen, die aufgehört haben, Plugins zu aktualisieren, weil „es funktioniert, nicht bewegen”
  • Jeder, der seltsame Dateien auf seiner Website gesehen hat index.php an unerwarteten Orten und entfernte sie manuell, vorausgesetzt, es war das Ende der Angelegenheit

Wenn Ihnen das bekannt vorkommt, ist ein guter erster Schritt prüfung aller Akten .PHP im Server-Webroot + Liste der Administratorkonten in WordPress. Ein solches Audit dauert in der Regel einige Stunden und zeigt, ob das Problem überhaupt besteht. Noch mehr Fälle finden Sie in den Ressourcen, das vollständige Angebot ist in Unser Angebot umfasst:.

Sie wollen nicht wissen, dass Sie eine Hintertür haben

...wenn die Seite bereits liegt

Dieser Fall beschreibt die Seite, die wir beim Absturz erhalten haben. Fast alles könnte vermieden werden, wenn jemand den Server von innen bewachte: überwachte Dateiänderungen, aktualisierte Plugins, aufbewahrte Backups, beobachtete Angriffsversuche. Das ist unser Service.

Siehe das Angebot: Wartung und Entwicklung der Parteien →

oder schreiben Sie uns direkt, führen wir die Prüfung unverbindlich durch.

Ressourcen · Kenntnisse und Nachweise

Überprüfen Sie, bevor wir sprechen

Dienste, die mit dieser Bereitstellung verbunden sind. Schauen Sie sich das Angebot an, sehen Sie, wie wir ähnliche Probleme bei anderen Kunden angehen.

Idziemy dalej

Podobał Ci się ten artykuł?

Jeśli po lekturze czujesz, że w Twojej firmie też są procesy warte przebudowy, umów bezpłatną rozmowę. Sprawdzimy razem, gdzie realnie wycieka sprzedaż i co ma sens wdrożyć w pierwszej kolejności.

Vereinbare ein Gespräch