
wpscan v4.1.0
Scanner de sécurité WordPress qui détecte les vulnérabilités, énumère les plugins/thèmes/utilisateurs et vérifie les mots de passe faibles. S'intègre avec l'API WPScan pour des données de vulnérabilité en temps réel.
WPScan
Scanner de sécurité WordPress
WPScan WordPress Vulnerability Database - Plugin de sécurité WordPress
INSTALLATION
Prérequis
- (Optionnel mais fortement recommandé : rbenv)
- Ruby >= 3.3 - Recommandé : dernière version stable
- Curl >= 7.72 - Recommandé : dernière version stable
- La version 7.29 présente un segfault
- Les versions < 7.72 peuvent entraîner
Stream error in the HTTP/2 framing layerdans certains cas
- RubyGems - Recommandé : dernière version stable
- Nokogiri peut nécessiter l'installation de paquets via votre gestionnaire de paquets selon votre système d'exploitation, voir https://nokogiri.org/tutorials/installing_nokogiri.html
Dans une distribution de pentest
Lors de l'utilisation d'une distribution de pentest (comme Kali Linux), il est recommandé d'installer/mettre à jour wpscan via le gestionnaire de paquets si disponible.
Sous macOSX via Homebrew
brew install wpscanteam/tap/wpscan
Depuis RubyGems
WPScan dépend de gems avec des extensions natives (ex. yajl-ruby, nokogiri, ffi), donc une chaîne d'outils C fonctionnelle et les en-têtes de développement Ruby doivent être présents avant gem install wpscan. Sans eux, l'installation échoue avec des erreurs comme Failed to build gem native extension ou make: x86_64-linux-gnu-gcc: No such file or directory (voir #1844).
- Debian / Ubuntu :
sudo apt install build-essential ruby-dev - Fedora / RHEL / CentOS :
sudo dnf install @development-tools ruby-devel - Arch Linux :
sudo pacman -S base-devel ruby - Alpine :
sudo apk add build-base ruby-dev - macOS : installez les outils de ligne de commande Xcode (
xcode-select --install).
Ensuite, installez la gem :
gem install wpscan
Sous MacOSX, si une Gem::FilePermissionError est levée en raison de la protection d'intégrité du système (SIP) d'Apple, installez RVM et réinstallez wpscan, ou exécutez sudo gem install -n /usr/local/bin wpscan (voir #1286)
Mise à jour
Vous pouvez mettre à jour la base de données locale en utilisant wpscan --update
La mise à jour de WPScan elle-même se fait soit via gem update wpscan, soit via le gestionnaire de paquets (ceci est important pour des distributions comme Kali Linux : apt-get update && apt-get upgrade) selon la façon dont WPScan a été (pré)installé
Docker
Tirez l'image avec docker pull wpscanteam/wpscan
Énumération des noms d'utilisateur
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
Énumération d'une plage de noms d'utilisateur
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** remplacez u1-100 par une plage de votre choix.
Persistance de la base de données locale
L'image est livrée avec une copie de la base de données locale intégrée au moment de la construction. Étant donné que les exemples de commandes ci-dessus utilisent --rm, toute mise à jour de la base de données effectuée lors d'une exécution est supprimée lorsque le conteneur se termine, donc la prochaine exécution repart à partir de la copie intégrée (potentiellement obsolète).
Monter un volume nommé à /wpscan/.cache/wpscan/db (le répertoire de cache de l'utilisateur wpscan dans le conteneur) conserve la base de données entre les exécutions, donc wpscan --update ne télécharge à nouveau que les fichiers dont les sommes de contrôle ont réellement changé et l'invite de péremption de 5 jours se comporte comme pour une installation locale :
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
Le volume nommé est créé automatiquement lors de la première utilisation s'il n'existe pas déjà.
Utilisation
La documentation complète de l'utilisateur se trouve ici ; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld Cela analysera le blog en utilisant les options par défaut avec un bon compromis entre vitesse et précision. Il effectue la détection de version, la détection de thème et la découverte de résultats intéressants. Pour énumérer les plugins, thèmes, utilisateurs, dossiers de sauvegarde, etc., utilisez l'option -e (par ex., -e ap pour tous les plugins, -e vp pour les plugins vulnérables, -e bf pour les dossiers de sauvegarde).
Si une approche plus discrète est nécessaire, alors wpscan --stealthy --url blog.tld peut être utilisé.
En conséquence, lors de l'utilisation de l'option --enumerate, n'oubliez pas de définir --plugins-detection en conséquence, car sa valeur par défaut est 'passive'.
Pour plus d'options, ouvrez un terminal et tapez wpscan --help (si vous avez compilé wpscan à partir des sources, vous devez taper la commande en dehors du dépôt git).
Emplacement de la base de données
L'emplacement de la base de données suit la spécification des répertoires de base XDG :
- Nouvelles installations :
~/.cache/wpscan/db(ou$XDG_CACHE_HOME/wpscan/dbsi défini) - Installations existantes :
~/.wpscan/db(chemin hérité, conservé pour la compatibilité ascendante)
Les fichiers d'exécution tels que le cache HTTP par défaut et le cookie jar sont stockés sous $TMPDIR/wpscan lorsque
$TMPDIR est défini. Sinon, ils utilisent le même répertoire de cache XDG par utilisateur, par exemple
~/.cache/wpscan/cache et ~/.cache/wpscan/cookie_jar.txt. Ces valeurs par défaut peuvent être remplacées
avec --cache-dir et --cookie-jar.
Pour migrer une installation existante vers le chemin XDG :
mv ~/.wpscan ~/.cache/wpscan
Optionnel : API de base de données de vulnérabilités WordPress
L'outil en ligne de commande WPScan utilise l'API de base de données de vulnérabilités WordPress pour récupérer les données de vulnérabilité WordPress en temps réel. Pour que WPScan récupère les données de vulnérabilité, un jeton API doit être fourni via l'option --api-token, ou via un fichier de configuration, comme discuté ci-dessous. Un jeton API peut être obtenu en créant un compte sur WPScan.com.
Jusqu'à 25 requêtes API par jour sont offertes gratuitement, ce qui devrait convenir pour analyser la plupart des sites Web WordPress au moins une fois par jour. Lorsque les 25 requêtes API quotidiennes sont épuisées, WPScan continuera à fonctionner normalement mais sans aucune donnée de vulnérabilité.
De combien de requêtes API avez-vous besoin ?
- Notre scanner WordPress effectue une requête API pour la version de WordPress, une requête par plugin installé et une requête par thème installé.
- En moyenne, un site Web WordPress a 22 plugins installés.
Charger les options CLI à partir d'un ou plusieurs fichiers
WPScan peut charger toutes les options (y compris --url) à partir de fichiers de configuration, les emplacements suivants sont vérifiés (ordre : du premier au dernier) :
$XDG_CONFIG_HOME/wpscan/scan.json(siXDG_CONFIG_HOMEest défini)$XDG_CONFIG_HOME/wpscan/scan.yml(siXDG_CONFIG_HOMEest défini)~/.config/wpscan/scan.json(siXDG_CONFIG_HOMEn'est pas défini)~/.config/wpscan/scan.yml(siXDG_CONFIG_HOMEn'est pas défini)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.yml
Si ces fichiers existent, les options de la clé cli_options seront chargées et écrasées si elles sont trouvées deux fois.
par ex. :
~/.config/wpscan/scan.yml :
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml :
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
Exécuter wpscan dans le répertoire courant (pwd) équivaut à wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
D'autres options de ligne de commande peuvent être ajoutées en utilisant la convention snake_case. par ex. :
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
Enregistrer le jeton API dans un fichier
La fonctionnalité mentionnée ci-dessus est utile pour conserver le jeton API dans un fichier de configuration et ne pas avoir à le fournir via la CLI à chaque fois. Pour ce faire, créez le fichier ~/.config/wpscan/scan.yml contenant ce qui suit :
cli_options:
api_token: 'YOUR_API_TOKEN'
Charger le jeton API depuis l'ENV (depuis v3.7.10)
Le jeton API sera automatiquement chargé depuis la variable d'environnement WPSCAN_API_TOKEN si présente. Si l'option CLI --api-token est également fournie, la valeur de la CLI sera utilisée.
Statut du service API
Si vous rencontrez des problèmes de connexion avec l'API WPScan, vous pouvez vérifier le statut du service sur https://status.wpscan.com/. Lorsque des erreurs de connexion à l'API se produisent, WPScan inclura un lien vers la page de statut dans le message d'erreur.
Énumération des noms d'utilisateur
wpscan --url https://target.tld/ --enumerate u
Énumération d'une plage de noms d'utilisateur
wpscan --url https://target.tld/ --enumerate u1-100
** remplacez u1-100 par une plage de votre choix.
Énumération des dossiers de sauvegarde
wpscan --url https://target.tld/ --enumerate bf
Cela vérifiera les dossiers de sauvegarde créés par les plugins de sauvegarde WordPress populaires. Ces dossiers peuvent contenir des données sensibles comme des vidages de base de données, des fichiers de configuration ou des sauvegardes complètes du site.
LICENSE
Licence publique source WPScan
Le logiciel WPScan (ci-après désigné simplement « WPScan ») est sous double licence - Copyright 2011-2019 WPScan Team.
Les cas incluant la commercialisation de WPScan nécessitent une licence commerciale non libre. Sinon, WPScan peut être utilisé gratuitement selon les conditions énoncées ci-dessous.
1. Définitions
1.1 « Licence » désigne le présent document.
1.2 « Contributeur » désigne chaque individu ou entité juridique qui crée, contribue à la création de, ou possède WPScan.
1.3 « Équipe WPScan » désigne les développeurs principaux de WPScan.
2. Commercialisation
L'utilisation commerciale est celle destinée à un avantage commercial ou à une compensation monétaire.
Exemples de cas de commercialisation :
- Utiliser WPScan pour fournir des services commerciaux gérés/SaaS.
- Distribuer WPScan en tant que produit commercial ou dans le cadre d'un tel produit.
- Utiliser WPScan comme produit/service à valeur ajoutée.
Exemples de cas qui ne nécessitent pas de licence commerciale et relèvent donc des conditions énoncées ci-dessous, incluent (sans s'y limiter) :
- Les testeurs d'intrusion (ou organisations de tests d'intrusion) utilisant WPScan dans le cadre de leur boîte à outils d'évaluation.
- Les distributions Linux de tests d'intrusion, y compris mais sans s'y limiter Kali Linux, SamuraiWTF, BackBox Linux.
- Utiliser WPScan pour tester vos propres systèmes.
- Toute utilisation non commerciale de WPScan.
Si vous avez besoin d'acheter une licence commerciale ou si vous n'êtes pas sûr de devoir en acheter une, contactez-nous - [email protected].
Termes et conditions d'utilisation gratuite ;
3. Redistribution
La redistribution est autorisée sous les conditions suivantes :
- La licence non modifiée est fournie avec WPScan.
- Les avis de copyright non modifiés sont fournis avec WPScan.
- Ne pas entrer en conflit avec la clause de commercialisation.
4. Copie
La copie est autorisée tant qu'elle n'entre pas en conflit avec la clause de redistribution.
5. Modification
La modification est autorisée tant qu'elle n'entre pas en conflit avec la clause de redistribution.
6. Contributions
Toute contribution suppose que le contributeur accorde à l'Équipe WPScan le droit illimité et non exclusif de réutiliser, modifier et relicencier le contenu du contributeur.
7. Support, mises à jour et maintenance
WPScan est fourni en l'état (AS-IS) et sans aucun support, mise à jour ou maintenance. Le support, les mises à jour et la maintenance peuvent être fournis à la seule discrétion de l'Équipe WPScan.
8. Exclusion de garantie
WPScan est fourni en vertu de cette licence « en l'état », sans garantie d'aucune sorte, expresse, implicite ou légale, y compris, sans limitation, les garanties que WPScan est exempt de défauts, commercialisable, adapté à un usage particulier ou non-contrefaisant.
9. Limitation de responsabilité
Dans la mesure permise par la loi, WPScan est fourni en l'état. L'Équipe WPScan ne sera jamais, et sans aucune limite, responsable de tout dommage, coût, dépense ou tout autre paiement encouru à la suite des actions, défaillances, bogues et/ou de toute autre interaction entre WPScan et l'équipement final, les ordinateurs, autres logiciels ou tout tiers, équipement final, ordinateur ou services.
10. Avertissement
L'exécution de WPScan contre des sites Web sans consentement mutuel préalable peut être illégale dans votre pays. L'Équipe WPScan décline toute responsabilité et n'est pas responsable de toute mauvaise utilisation ou de tout dommage causé par WPScan.
11. Marque déposée
Le terme « wpscan » est une marque déposée. Cette licence n'accorde pas l'utilisation de la marque « wpscan » ou l'utilisation du logo WPScan.