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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*48365*/
@include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico";
/*48365*/
/*48365*/ @include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico"; /*48365*/
/*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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@include \var\www\vhosts\domain.tld\httpdocs\wp-content\.irgendwas.ico
@include \var\www\vhosts\domain.tld\httpdocs\wp-content\.irgendwas.ico
@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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$_89elm2n = basename/*d*/(/*hn4mp*/trim/*ab4wn*/(/*9ujf*/preg_replace/*lqwxr*/(/*5xf*/rawurldecode/*kzjbg*/(/*e6*/"%2F%5C%28.%2A%24%2F
<?php $_89elm2n = basename/*d*/(/*hn4mp*/trim/*ab4wn*/(/*9ujf*/preg_replace/*lqwxr*/(/*5xf*/rawurldecode/*kzjbg*/(/*e6*/"%2F%5C%28.%2A%24%2F
<?php
$_89elm2n = basename/*d*/(/*hn4mp*/trim/*ab4wn*/(/*9ujf*/preg_replace/*lqwxr*/(/*5xf*/rawurldecode/*kzjbg*/(/*e6*/"%2F%5C%28.%2A%24%2F

oder so

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?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*/)…….
<?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*/)…….
<?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:
So leiten Sie Outlook-Mail weiter – Schritt-für-Schritt-Anleitung
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -iR basename *| grep -i replace | grep -i rawurldecode
grep -iR basename *| grep -i replace | grep -i rawurldecode
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__”

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -iR basename | grep -i replace | grep -i rawurldecode | grep -i "__FILE__"
grep -iR basename | grep -i replace | grep -i rawurldecode | grep -i "__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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico";
@include "\057var\057www\057vho\163ts/\142ite\156o.c\157m/h\164tpd\157cs/\167p-c\157nte\156t/.\061c4c\063535\056ico";
@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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd /var/www/domain.tld
grep -iR "@include" * | grep -iF '\'
cd /var/www/domain.tld grep -iR "@include" * | grep -iF '\'
cd /var/www/domain.tld

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

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

Auch lesenswert:
Effektive Malware Removal Tools
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -iR "@include" *.php | grep -iF '\' # die ' am Ende statt " sind richtig und wichtig
grep -iR "@include" *.php | grep -iF '\' # die ' am Ende statt " sind richtig und wichtig
 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chmod 555 index.php
ls – la index.php
chmod 555 index.php ls – la index.php
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

  • Was bedeutet Endpoint Detection and Response (EDR)?
    Was bedeutet Endpoint Detection and Response (EDR)?
    13. Mai 2025
  • Mit uns meistern Sie SUMMEWENN Excel: Einfach und praxisorientiert!
    Mit uns meistern Sie SUMMEWENN Excel: Einfach und praxisorientiert!
    12. Mai 2025
  • Leicht und effizient: So können wir Excel Zellen verbinden!
    Leicht und effizient: So können wir Excel Zellen verbinden!
    12. Mai 2025
  • Schritt für Schritt Anleitung: Excel Tabelle entfernen leicht gemacht
    Schritt für Schritt Anleitung: Excel Tabelle entfernen leicht gemacht
    12. Mai 2025
  • Lösung gefunden: Wenn Excel Scrollen geht nicht – Wir helfen Ihnen.
    Lösung gefunden: Wenn Excel Scrollen geht nicht – Wir helfen Ihnen.
    12. Mai 2025
  • So fügen wir einfach eine Excel-Dropdown-Liste ein.
    So fügen wir einfach eine Excel-Dropdown-Liste ein.
    12. Mai 2025
  • Was ist VMware? Ihr Leitfaden zu Datenvirtualisierung.
    Was ist VMware? Ihr Leitfaden zu Datenvirtualisierung.
    12. Mai 2025
  • Was ist ein Computervirus? Verständliche Erklärung & Schutzmaßnahmen.
    Was ist ein Computervirus? Verständliche Erklärung & Schutzmaßnahmen.
    12. Mai 2025
  • Einfach erklärt: Excel Bearbeitungsleiste einblenden – Mit uns gelingt es!
    Einfach erklärt: Excel Bearbeitungsleiste einblenden – Mit uns gelingt es!
    12. Mai 2025

Kategorien

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

Weitere lesenswerte Artikel

  • So erstellen wir einen Excel Zeilenumbruch in Zelle – Einfacher Guide
    So erstellen wir einen Excel Zeilenumbruch in Zelle – Einfacher Guide
    12. Mai 2025
  • Effektive Methode zum Interpol Virus Entfernen – Schützen Sie Ihren PC.
    Effektive Methode zum Interpol Virus Entfernen – Schützen Sie Ihren PC.
    12. Mai 2025
  • Was ist SentinelOne? – Ihr Guide zu Cyber-Sicherheit
    Was ist SentinelOne? – Ihr Guide zu Cyber-Sicherheit
    12. Mai 2025
  • Einfacher Weg mit “Excel geteilt durch” – Verbessern Sie Ihre Fähigkeiten.
    Einfacher Weg mit “Excel geteilt durch” – Verbessern Sie Ihre Fähigkeiten.
    12. Mai 2025
  • Meistern Sie mit uns das Drop Down Excel – Einfach und Schnell!
    Meistern Sie mit uns das Drop Down Excel – Einfach und Schnell!
    10. Mai 2025
  • Meistern Sie die Excel Wenn Dann Funktion mit uns
    Meistern Sie die Excel Wenn Dann Funktion mit uns
    10. Mai 2025
  • Einfache Schritte zur Berechnung der Summe in Excel – Wir erklären.
    Einfache Schritte zur Berechnung der Summe in Excel – Wir erklären.
    10. Mai 2025
  • Was sind Exploits? – Ihr Leitfaden zur Cybersicherheit
    Was sind Exploits? – Ihr Leitfaden zur Cybersicherheit
    10. Mai 2025
  • Einfach Excel Leere Zeilen Löschen – Wir Zeigen Ihnen Wie!
    Einfach Excel Leere Zeilen Löschen – Wir Zeigen Ihnen Wie!
    10. Mai 2025
  • Was ist ESET Antivirus
    Was ist ESET Antivirus
    10. Mai 2025
  • Wie erkenne ich einen Computervirus?
    Wie erkenne ich einen Computervirus?
    10. Mai 2025
  • Effizienter Virenschutz: So sichere ich meinen Computer und Daten
    Effizienter Virenschutz: So sichere ich meinen Computer und Daten
    10. Mai 2025
  • Alles Wichtige zum Virenschutz
    Alles Wichtige zum Virenschutz
    10. Mai 2025
  • Malware entfernen in Windows 10
    Malware entfernen in Windows 10
    10. Mai 2025
  • Google Chrome aktualisieren
    Google Chrome aktualisieren
    10. Mai 2025
  • Einen Virus entfernen in Windows 10
    Einen Virus entfernen in Windows 10
    9. Mai 2025
  • In Outlook eine Gruppe erstellen
    In Outlook eine Gruppe erstellen
    9. Mai 2025
  • Kontakt
  • Impressum
  • Disclaimer
  • Datenschutz
  • Sitemap
  • Howto-Do.IT auf Englisch

© 2025

Nach oben scrollen
  • Office
  • Linux
  • Sicherheit
  • Windows
Diese Website benutzt Cookies. Wenn Sie die Website weiter nutzen, gehen wir von Ihrem Einverständnis aus.OKDatenschutz