Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
wp2shell-scanner — CVE-2026-63030 / CVE-2026-60137 - Scanneur de RCE pré-authentification WordPress | Kitploit
Outils/GitHubGitHub/bahartanir/wp2shell-scanner
Escalade de PrivilègesScanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges UtilesLabs et Pratique
GitHubbahartanir/wp2shell-scanner

wp2shell-scanner

CVE-2026-63030 / CVE-2026-60137 - Scanneur de RCE pré-authentification WordPress

Voir le dépôt
8213il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

wp2shell-scanner

par @bahartanir (katherinepierce) Fork de ZephrFish/wp2shell-scanner avec des améliorations supplémentaires. Recherche par Adam Kues (Assetnote) et Mustafa Can İPEKÇİ (nukedx).

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 drapeau, 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 payload d'exploitation ; les modes --check/--read/--shell/--rce/--root-prereq sont le PoC de validation pour un usage autorisé en laboratoire.

wp2shell.py est un script unique, ne reposant que sur la bibliothèque standard — aucune dépendance externe. Chaque invocation affiche la bannière sur stderr avant de s'exécuter (elle reste hors de stdout, donc la sortie JSON de --scan -j n'est pas affectée).

Drapeaux de commande

Exactement un drapeau de mode est requis ; la cible est positionnelle (une URL pour chaque mode, ou une liste d'hôtes pour --scan).

Synopsis

root@kitploit:~
wp2shell.py (--scan | --check | --read | --shell | --rce | --root-prereq)
            [targets ...] [-f FILE] [-j] [-t THREADS] [--prefix PREFIX]
            [--delay DELAY] [--repeats REPEATS] [--preset PRESET] [--expr EXPR]
            [--max-len MAX_LEN] [--user USER] [--password PASSWORD] [--cmd CMD]
            [-i] [--no-cleanup] [-y] [--sleep SLEEP] [--rounds ROUNDS]
            [--route {auto,rest-route,wp-json}] [--proxy PROXY] [--authorized]
            [--timeout TIMEOUT]

Drapeaux de mode (en choisir un)

Drapeaux d'option

Analyse approfondie d'origine : https://blog.zsec.uk/wp2shell-code-trace-deep-dive/

Modèle Nuclei

root@kitploit:~
nuclei -t wp2shell-exposure.yaml -u https://target

Analyse (non destructive)

Hôte unique, plusieurs hôtes ou un fichier.

root@kitploit:~
python3 wp2shell.py --scan https://target
python3 wp2shell.py --scan host1 host2 host3
python3 wp2shell.py --scan -f hosts.txt

Options : -f/--file fichier d'hôtes (un par ligne), -j/--json sortie JSON, -t/--threads concurrence (défaut 10).

PoC de validation

Les modes --check/--read/--shell/--rce/--root-prereq envoient de véritables payloads d'exploitation. Exécutez-les uniquement contre le lab local fourni, ou d'autres systèmes que vous possédez et que vous êtes expressément autorisé à tester. --shell et --rce effectuent une exécution de code à distance et sont destinés au lab/aux cibles autorisées ; --rce sur un hôte hors loopback nécessite --authorized. --root-prereq utilise le même plugin de diagnostic à jeton pour vérifier les prérequis shell→root, mais il n'exécute pas d'élévation de privilèges locale.

--shell nécessite un mot de passe admin récupéré/cassé. --rce est la chaîne pré-auth sans identifiants : il forge son propre administrateur via la SQLi (oEmbed → changeset → parse_request réentrant), puis déploie le webshell — aucun mot de passe requis.

--shell, --rce et --root-prereq demandent une autorisation interactive y/N avant l'envoi de tout payload d'exécution de code (ils s'interrompent sur un stdin non interactif/EOF). Passez -y/--yes pour ignorer l'invite pour l'automatisation contre le lab ou une cible autorisée.

root@kitploit:~
docker compose -f poc/lab/docker-compose.yml up -d
python3 wp2shell.py --check http://127.0.0.1:8080
python3 wp2shell.py --read  http://127.0.0.1:8080 --expr @@version
python3 wp2shell.py --shell http://127.0.0.1:8080 --user admin --password 'Summer2026!' --cmd id
python3 wp2shell.py --shell http://127.0.0.1:8080 --user admin --password 'Summer2026!' -i
python3 wp2shell.py --rce   http://127.0.0.1:8080 --cmd id
python3 wp2shell.py --rce   http://127.0.0.1:8080 -i
python3 wp2shell.py --root-prereq http://127.0.0.1:8080 --user admin --password 'Summer2026!'
python3 wp2shell.py --lpe   http://127.0.0.1:8080

Les diffs de patch utilisés pour étayer le PoC sont enregistrés sous poc/diffs/, avec les notes de recherche dans poc/RESEARCH.md. La SQLi est entièrement reconstructible à partir du correctif author__not_in. La chaîne --rce sans identifiants (oEmbed → changeset → réentrée → création d'admin) reproduit la RCE de l'installation stock par défaut contre le lab fourni ; --shell est la voie alternative via un identifiant admin récupéré/cassé pour le téléversement authentifié du plugin et l'exécution de commandes.

Élévation de Privilèges Locale (--lpe)

--lpe enchaîne la RCE pré-auth complète (SQLi → forge admin → webshell) avec une tentative automatisée d'élévation vers root. Il essaie ce qui suit dans l'ordre, en s'arrêtant au premier succès :

root@kitploit:~
python3 wp2shell.py --lpe http://127.0.0.1:8080
python3 wp2shell.py --lpe http://127.0.0.1:8080 -y          # skip auth prompt
python3 wp2shell.py --lpe https://target --authorized        # non-loopback

--lpe sur une cible hors loopback nécessite --authorized. Sur le lab fourni (image de base Ubuntu 22.04 avec un noyau GameOverlay vulnérable) CVE-2023-2640/32629 réussit sans compilateur.

Télécharger l’outil
DrapeauCe qu'il fait
--scanVérification d'exposition non destructive : empreinte de version + confirmation que la route REST /batch/v1 est accessible. Aucun payload d'exploitation envoyé.
--checkConfirme la SQLi aveugle basée sur le temps avec une sonde différentielle inoffensive.
--readExtrait des données via SQLi aveugle (un préréglage ou une expression SQL scalaire brute).
--shellChaîne RCE authentifiée utilisant un mot de passe administrateur cassé/récupéré.
--rceRCE pré-auth sans identifiants : forge son propre admin via la SQLi, puis déploie un webshell auto-nettoyant.
--root-prereqVérification bénigne des prérequis shell→root ; exécute uniquement des diagnostics, jamais d'élévation de privilèges locale.
--lpeChaîne complète : SQLi pré-auth → forge admin → webshell → root. Essaie CVE-2023-2640/32629 (GameOverlay overlayfs), CVE-2023-4911 (Looney Tunables glibc), CVE-2026-31431 (AF_ALG Copy Fail), CVE-2026-23111 (sonde UAF nf_tables), puis repli SUID/sudo/cap.
DrapeauS'applique àCe qu'il fait
-f, --file--scanLit les hôtes depuis un fichier (un par ligne ; les commentaires # sont ignorés).
-j, --json--scanÉmet les résultats en JSON sur stdout.
-t, --threads--scanConcurrence d'analyse (défaut 10).
--prefix--check/--readPréfixe des tables de la base (défaut wp_).
--delay--check/--readSecondes de SLEEP injectées pour l'oracle temporel (défaut 0.15).
--repeats--check/--readMédiane sur N sondes par bit ; à augmenter sur les liaisons bruyantes (défaut 1).
--preset--readCible intégrée : version, database, db_user, users, siteurl (défaut users).
--expr--readExpression SQL scalaire brute à extraire (remplace --preset).
--max-len--readLongueur maximale de la chaîne extraite (défaut 128).
--user--shell/--root-prereqNom d'utilisateur admin pour se connecter (défaut admin).
--password--shell/--root-prereqMot de passe admin en clair (cassez le hash de --read ; requis pour ces modes).
--cmd--shell/--rceCommande à exécuter sur la cible (défaut id).
-i, --interactive--shell/--rceBoucle de commande web interactive au lieu d'une commande unique.
--no-cleanup--shell/--rceLaisse le plugin/webshell déposé en place (lab uniquement).
-y, --yes--shell/--rce/--root-prereqIgnore l'invite d'autorisation interactive (pour l'automatisation).
--sleep--rceSecondes de SLEEP injectées pour la détection SQLi pré-auth (défaut 4).
--rounds--rceMédiane sur N sondes pour la détection --rce (défaut 3).
--route--rceForme de la route batch : auto, rest-route ou wp-json (défaut auto).
--proxy--rceAchemine les requêtes via un proxy HTTP, ex. Burp sur http://127.0.0.1:8080.
--authorized--rceAffirme l'autorisation pour une cible --rce hors loopback (requis pour les hôtes distants).
--timeouttousDélai d'attente par requête en secondes (défaut 15).
CVEAffectéTechniqueCompilateur
CVE-2023-2640 / CVE-2023-32629Ubuntu 22.04 / 23.04, noyau < 6.3.3 avec pilote GameOverlayMontage overlayfs non privilégié dans un espace de noms utilisateur préservant chmod +s sur le répertoire supérieurAucun (shell pur)
CVE-2023-4911glibc 2.34–2.38 (Ubuntu 22.04, Debian 12, Fedora 37–38)Débordement de pile GLIBC_TUNABLES dans _dl_parse_tunables() → injection LD_PRELOAD à l'exécution SUIDgcc requis
CVE-2026-31431Noyau Linux avec algif_aead + authencesn(hmac(sha256),cbc(aes))Optimisation en place AEAD AF_ALG + splice() écrit 4 octets dans le cache de pages du binaire SUID ; sonde de prérequis — lien vers AliHzSec/CVE-2026-31431gcc requis
CVE-2026-23111Ubuntu 22.04 / 24.04, Debian Bookworm / TrixieUAF de contrôle inversé nf_tables dans nft_map_catchall_activate() → sous-dépassement de chain->use → chaîne libérée ; sonde de prérequis — lien vers Baba01hacker666/CVE-2026-23111gcc requis
RepliTouteAbus SUID GTFOBins + sudo NOPASSWDAucun