Um zu prüfen, ob ein WordPress gehackt wurde, lässt sich relativ komfortabel das wp-cli
-Tool nutzen. Mit zwei Kommandos können einmal WordPress Core, also das WordPress an sich, und zum Zweiten die Plugins auf Änderungen geprüft werden. Dies lässt relativ zuverlässig darauf schließen, ob das WordPress manipuliert wurde.
Um die Prüfung mit wp-cli
durchzuführen benötigst Du einen SSH-Zugang. Nach dem Login per SSH wechsle in das WordPress-Verzeichnis (in diesem Fall wordpress_de-2016-10-28-0c64ba
) und führe dort das Kommando "wp core verify-checksums" aus:
[ demouser@lima-ssh ] ~
$> cd wordpress_de-2016-10-28-0c64ba
[ demouser@lima-ssh ] ~/wordpress_de-2016-10-28-0c64ba
$> wp core verify-checksums
Warning: File doesn't verify against checksum: wp-config-sample.php
Warning: File should not exist: wp-itapi.php
Error: WordPress installation doesn't verify against checksums.
WordPress zeigt dabei Dateien an, für welche die Prüfsummen nicht stimmen ("File doesn't verify against checksum") und welche nicht existieren sollten ("File should not exist"). Beides ist ein starker Indikator, dass etwas nicht stimmt.
Im zweiten Schritt sollten auch die Plugins überpüft werden:
$> wp plugin --skip-themes --skip-plugins verify-checksums --all
Warning: Could not retrieve the checksums for version 1.2 of plugin wp-cli-login-server, skipping.
Success: Verified 1 of 2 plugins (1 skipped).
Hinweis: das Plugin wp-cli-login-server
wird vom lima-city Single-Sign-In in den WordPress-Tools verwendet und wird automatisch wieder installiert und aktiviert, sobald ein Single-Sign-In-Link erzeugt wird.
Die Parameter --skip-themes
und --skip-plugins
sorgen dafür, dass kein Plugin- oder Theme-Code ausgeführt wird, bevor die Prüfung startet. Das verhindert, dass eventueller Schadcode aus Themes oder Plugins ausgeführt wird.
Eine weitere, manuelle Prüfung ist an der Stelle ebenfalls sinnvoll: in der wp-config.php wird regelmäßig von Schadcode ein "include" hinterlegt, das dort nicht sein darf und eine Schadcode-Datei ausführt, welche wp core verify-checksums
in der Regel auch als "File should not exist" anzeigt. Suche dazu in der Datei wp-config.php "include"-Statements - diese sollten in aller Regel nicht vorhanden sein:
$> grep include wp-config.php
/** Sets up WordPress vars and included files. */