WPScan ist das ultimative Tool um WordPress Sites automatisch nach Sicherheitslücken zu scannen. Leider erzeugt so manches WPScan-Update oft einen Overhead an Installationsaufwand, weil viele System Dependencies wegen Betriebssystem-Updates nicht mehr stimmen. Das mach WPScan zum Vorzeige-Kandidaten um es in einem Docker Container zu betreiben. So bleiben alle Systemabhängigkeiten konstant und WPScan läuft zuverlässig und stabil.

Thema Sicherheit: WordPress Sites automatisiert per Docker scannen

Die Lösung ist einfach. Man benötigt dazu nur das folgende Script:

#!/bin/bash
#
# wpscan 1.0.9
#
# Calls WPScan via Docker
#
# CALL:
# wpscan URL [Option1 .. Option n]
#
# (c)2017-2020 Harald Schneider
#

# Token-Request here:
# https://wpvulndb.com
#

APITOKEN=YOUR_TOKEN_HERE

if [ "$#" -eq 0 ]; then
  echo
  echo "USAGE:"
  echo "wpscan URL [Option1 .. Option n]"
  echo
  echo "ACTIVE DEFAULT OPTIONS:"
  echo "--update --enumerate vp,vt,dbe,u1-20"
  exit
fi

docker pull wpscanteam/wpscan:latest

for i in "$@"; do
    args="$args $i"
done

docker run -i --rm wpscanteam/wpscan --api-token $APITOKEN --update --enumerate vp,vt,dbe,u1-20 --url $args

Das Skript wird dann mit der URL der zu scannenden WordPress Site aufgerufen und akzeptiert eine beliebige Anzahl weiterer Parameter:

./wpscan https://domain.com

Folgende WPScan Parameter sind standardmässig aktiviert:

  • –api-token: Um auf die WPScan API zuzugreifen, muß hier ein API Token angefordert werden: https://wpvulndb.com. Erst dann liefert WPScan detaillierte Infos über die Schwachstellen diverser WordPress Plugins. Das Token selbst muss der Variable APITOKEN in der 1. ausführbaren Zeile des Skripts zugewiesen werden.
  • –update: Aktualisiert die WPScan-interne Datenbank, bevor der Scan startet. Die Daten können übrigens hier eingesehen werden.
  • –enumerate vp: Meldet nur Plugins mit Sicherheitslücken.
  • –enumerate vt: Meldet nur Themes mit Sicherheitslücken.
  • –enumerate dbe: Meldet vergessene Datenbank-Export-Dateien.
  • –enumerate u1-20: Versucht die Benutzernamen mit den IDs 1 bis 20 ausfindig zu machen.

Eine vollständige Liste der möglichen Parameter findet Ihr hier.

Sollte ein neues Docker Image verfügbar sein, so wird dieses vor einem Scan automatisch aktualisiert.

Viel Spaß beim Security Audit :-)