WPScan ist ein Werkzeug, um Sicherheitslücken in WordPress-Installationen zu finden. Dafür werden die Version vom WordPress Core, von Themes und Plugins gegen die WPScan Vulnerability Database geprüft, die Sicherheitslücken in eben diesen drei Teilen von WordPress listet.

Einsetzen lässt sich WPScan mit einem WordPress-Plugin, als Kommandozeilen-Tool oder als Software as a Service (SaaS).

Sicherheits-Scan von außen mit WPScan-CLI und SaaS

Bei dem Kommandozeilen-Tool und SaaS wird der Scan ohne direkten Zugriff auf die Website nur über die URL getätigt. Dabei werden beispielsweise durch in der Website eingebundene Dateien Rückschlüsse auf installierte Plugins gezogen. Über die readme.txt kann WPScan die Version herausfinden und mit der Datenbank abgleichen.

WPScan-CLI installieren und nutzen

Auf wpscan.org sind die notwendigen Schritte beschrieben, um WPScan zu installieren. Im Optimalfall ist nur ein gem install wpscan notwendig.

Nach erfolgreicher Installation kann das Tool wie folgt genutzt werden:

wpscan --url example.comCode-Sprache: Bash (bash)

Nach Ausführen des Befehls wird WPScan die übergebene Domain scannen und euch die Ergebnisse zurückgegeben (neben Tests auf Plugins, Themes und die WordPress-Version wird hierbei zum Beispiel auch geprüft, ob die XML-RPC-Schnittstelle aktiv ist und welche Header vom Server mitgesendet werden). Da aber kein API-Token angegeben ist, werden keine Anfragen an die Datenbank mit den Sicherheitslücken geschickt.

Um einen API-Token zu erstellen, müsst ihr euch bei wpvulndb.com registrieren und danach auf die Profilseite wechseln. Dort gibt es etwas weiter unten ein Feld mit einem API-Token. Diesen Token könnt ihr entweder mit der --api-token-Option direkt dem wpscan-Befehl mitgeben, oder ihr erstellt eine Konfigurationsdatei mit dem Token. 50 Requests pro Tag sind kostenlos, wobei WPScan pro Plugin und Theme sowie für WordPress einen Request macht.

Wenn ihr den Befehl jetzt erneut ausführt, solltet ihr mehr Informationen erhalten, wie etwa die installierte Version von den Plugins und ob es sich dabei um die aktuelle Version handelt. Auf der CLI-Seite sind noch ein paar weitere Optionen beschrieben, beispielsweise eine agressivere Methode zur Erkennung von Plugins (die in meinem Versuch allerdings weniger Plugins gefunden hat, nämlich keins – vielleicht sucht es da aber auch nur nach problematischen Plugins) oder eine Brute-Force-Option zum Herausfinden unsicherer Passwörter der WordPress-User.

Bei wpscan.io läuft grundlegend vermutlich dasselbe ab, ihr bekommt aber beispielsweise eine Mail, wenn etwas gefunden wurde, das Aufmerksamkeit verlangt.

Alle Plugins und Themes einer Site mit dem WPScan-Plugin prüfen

Über das WPScan-WordPress-Plugin können alle Plugins und Themes einer Installation gegen die Datenbank auf Sicherheitslücken geprüft werden.

Nach Aktivierung des Plugins muss auch hier ein API-Key eingegeben werden. Anschließend kann unter WPScanReport der Bericht der Prüfung angeschaut werden, die einmal täglich läuft.

Fazit

WPScan ist eine recht einfache Möglichkeit, um auf bekannte Sicherheitslücken in Plugins, Themes und WordPress Core aufmerksam gemacht zu werden, die auf eigenen Sites im Einsatz sind.

Die CLI- und SaaS-Version bringen dabei noch zusätzliche Funktionen mit, wie Brute-Force-Attacken zu simulieren um zu schauen, ob Passwörter von den WordPress-Usern leicht zu erraten sind.

Dafür müssen diese Varianten für das genaueste Ergebnis mit einer optionalen aufwendigen Methode alle Plugins und Themes durchtesten, für die es bekannte Schwachstellen in der Datenbank gibt, um zu prüfen ob eins oder mehrere davon auf der Website laufen. Bei dem WordPress-Plugin weiß WPScan, welche Plugins und Themes auf der Site aktiv sind. Außerdem ist bei dem Plugin die Einstiegshürde niedriger.