Outils de détection et de validation pour l'exposition du cœur de WordPress à wp2shell
(CVE-2026-63030 / CVE-2026-60137). Les modes sont sélectionnés avec un indicateur, et la
cible est positionnelle. --scan identifie la version du cœur et confirme que la route REST
/batch/v1 est accessible sans envoyer de charge utile d'exploitation ; les modes
--check/--read/--shell/--rce/--root-prereq sont la preuve de concept (PoC) de validation
à utiliser uniquement en laboratoire autorisé.
wp2shell.py est un script unique ne dépendant que de la bibliothèque standard — aucune
dépendance externe. Chaque invocation imprime une bannière ZephrSec sur stderr avant de
s'exécuter (elle reste hors de stdout, donc la sortie JSON --scan -j n'est pas affectée).
Vérification d'exposition non destructive : identification de version + confirmation que la route REST /batch/v1 est accessible. Aucune charge utile d'exploitation envoyée.
--check
Confirme une injection SQL temporelle aveugle avec une sonde différentielle inoffensive.
--read
Extrait des données via une injection SQL aveugle (un préréglage ou une expression SQL scalaire brute).
--shell
Chaîne d'exécution de code à distance (RCE) authentifiée utilisant un mot de passe administrateur récupéré/cassé.
--rce
RCE pré-authentification sans justificatif : crée son propre administrateur via l'injection SQL, puis déploie une webshell auto-nettoyante.
--root-prereq
Vérification bénigne des prérequis pour l'élévation vers root ; exécute uniquement des diagnostics, jamais une élévation de privilèges locale.
Indicateurs d'option
Indicateur
S'applique à
Ce qu'il fait
-f, --file
--scan
Lire les hôtes depuis un fichier (un par ligne ; les commentaires # sont ignorés).
-j, --json
--scan
Émettre les résultats au format JSON sur stdout.
-t, --threads
--scan
Concurrence d'analyse (par défaut 10).
--prefix
--check/--read
Préfixe de table de base de données (par défaut wp_).
--delay
--check/--read
Secondes de SLEEP injectées pour l'oracle temporel (par défaut 0.15).
--repeats
--check/--read
Médiane sur N sondes par bit ; augmenter sur les liaisons bruyantes (par défaut 1).
Options : -f/--file fichier d'hôtes (un par ligne), -j/--json sortie JSON,
-t/--threads concurrence (par défaut 10).
PoC de validation
Les modes --check/--read/--shell/--rce/--root-prereq envoient des charges utiles
d'exploitation réelles. Exécutez-les uniquement contre le laboratoire local fourni, ou contre
d'autres systèmes dont vous êtes propriétaire et que vous êtes explicitement autorisé à tester.
--shell et --rce effectuent une exécution de code à distance et sont destinés au laboratoire/aux
cibles autorisées ; --rce sur un hôte non en boucle locale nécessite --authorized.
--root-prereq utilise le même plugin de diagnostic à jeton pour vérifier les prérequis
d'élévation vers root, mais n'exécute pas d'élévation de privilèges locale.
--shell nécessite un mot de passe administrateur récupéré/cassé. --rce est la chaîne
pré-authentification sans justificatif : il crée son propre administrateur via l'injection SQL
(oEmbed → changeset → parse_request ré-entrant), puis déploie la webshell — aucun mot de passe
requis.
--shell, --rce et --root-prereq demandent une autorisation interactive y/N avant que toute
charge utile d'exécution de code ne soit envoyée (ils abandonnent sur une entrée standard non
interactive/EOF). Passez -y/--yes pour ignorer l'invite lors de l'automatisation contre le
laboratoire ou une cible autorisée.
Les diffs de correctifs utilisés pour fonder la preuve de concept sont sauvegardés dans
poc/diffs/, avec des notes de recherche dans poc/RESEARCH.md. L'injection SQL est entièrement
reconstructible à partir du correctif author__not_in. La chaîne --rce sans justificatif
(oEmbed → changeset → ré-entrée → création d'administrateur) reproduit la RCE par défaut sur le
laboratoire fourni ; --shell est le chemin alternatif via un justificatif administrateur
récupéré/cassé pour le téléchargement de plugin authentifié et l'exécution de commandes.
--read
--cmd
--shell/--rce
Commande à exécuter sur la cible (par défaut id).
-i, --interactive
--shell/--rce
Boucle de commandes web interactive au lieu d'une commande unique.
--no-cleanup
--shell/--rce
Laisser le plugin/webshell déposé en place (laboratoire uniquement).