Prüfsummen einer WordPress-Installation prüfen
WP-CLI kann WordPress-Core und Plugins mit veröffentlichten Prüfsummen vergleichen. Abweichungen sind Hinweise auf Änderungen, aber ein erfolgreicher Vergleich ist kein vollständiger Malware-Ausschluss: Themes, Uploads, Konfiguration, zusätzliche Dateien und Datenbankinhalte benötigen weitere Prüfung.
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.
Die Plugin-Prüfung hat andere Sicherheitsgrenzen als die Core-Prüfung: wp core verify-checksums läuft vor dem WordPress-Bootstrap. Die Plugin-Prüfung lädt dagegen Teile der Installation. Führe sie bei Verdacht auf aktiven Schadcode nur in einer kontrollierten, isolierten Kopie aus, die keine produktiven Zugänge oder externen Dienste erreichen kann:
$> 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.
--skip-themes und --skip-plugins überspringen reguläre Themes und Plugins, verhindern aber nicht jeden Codeaufruf: Must-use-Plugins (mu-plugins) werden weiterhin geladen, und Konfiguration beziehungsweise Bootstrap können Code ausführen. Übersprungene Plugins ohne verfügbare Prüfsummen sind nicht geprüft. Details stehen in der WP-CLI-Dokumentation.
Prüfe auch die wp-config.php als Text, ohne sie auszuführen. Unerwartete Includes sind ein möglicher Hinweis, aber ein einzelnes Suchmuster findet nicht jede Manipulation und legitime Includes können vorkommen. Vergleiche mit einer vertrauenswürdigen eigenen Konfiguration und prüfe insbesondere unbekannte Pfade oder verschleierten Code. Folgende Suche ist nur ein erster Anhaltspunkt:
$> grep include wp-config.php
/** Sets up WordPress vars and included files. */