Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wp2shell-scanner — CVE-2026-63030 / CVE-2026-60137 - Escáner de RCE pre-autenticación en WordPress | Kitploit
Herramientas/GitHubGitHub/bahartanir/wp2shell-scanner
Escalada de PrivilegiosEscáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de PayloadsLabs y Práctica
GitHubbahartanir/wp2shell-scanner

wp2shell-scanner

CVE-2026-63030 / CVE-2026-60137 - Escáner de RCE pre-autenticación en WordPress

Ver Repositorio
82hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

wp2shell-scanner

por @bahartanir (katherinepierce) Fork de ZephrFish/wp2shell-scanner con mejoras adicionales. Investigación por Adam Kues (Assetnote) y Mustafa Can İPEKÇİ (nukedx).

Herramienta de detección y validación para la exposición del núcleo de WordPress a wp2shell (CVE-2026-63030 / CVE-2026-60137). Los modos se seleccionan con una bandera, y el objetivo es posicional. --scan toma la huella digital de la versión del núcleo y confirma que la ruta REST /batch/v1 es alcanzable sin enviar un payload de exploit; los modos --check/--read/--shell/--rce/--root-prereq son el PoC de validación para uso autorizado en laboratorio.

wp2shell.py es un único script que solo usa la biblioteca estándar — sin dependencias externas. Cada invocación imprime el banner en stderr antes de ejecutarse (permanece fuera de stdout, por lo que la salida JSON de --scan -j no se ve afectada).

Banderas de comando

Se requiere exactamente una bandera de modo; el objetivo es posicional (una URL para cada modo, o una lista de hosts para --scan).

Sinopsis

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]

Banderas de modo (elige una)

Banderas de opción

Análisis original en profundidad: https://blog.zsec.uk/wp2shell-code-trace-deep-dive/

Plantilla de Nuclei

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

Escaneo (no destructivo)

Un único host, múltiples hosts, o un archivo.

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

Opciones: -f/--file archivo de hosts (uno por línea), -j/--json salida JSON, -t/--threads concurrencia (por defecto 10).

PoC de validación

Los modos --check/--read/--shell/--rce/--root-prereq envían payloads de exploit en vivo. Ejecútelos solo contra el laboratorio local incluido, u otros sistemas que posea y para los que tenga autorización explícita para probar. --shell y --rce realizan ejecución remota de código y están destinados al laboratorio/objetivos autorizados; --rce en un host que no sea loopback requiere --authorized. --root-prereq usa el mismo plugin de diagnóstico con protección por token para verificar los requisitos previos de shell a root, pero no ejecuta una escalada de privilegios local.

--shell necesita una contraseña de administrador recuperada/descifrada. --rce es la cadena pre-autenticación sin credenciales: falsifica su propio administrador a través de la SQLi (oEmbed → changeset → parse_request reentrante), luego despliega la webshell — no se requiere contraseña.

--shell, --rce y --root-prereq solicitan autorización interactiva y/N antes de enviar cualquier payload de ejecución de código (se abortan en una stdin no interactiva/EOF). Pase -y/--yes para omitir la solicitud en automatización contra el laboratorio o un objetivo autorizado.

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

Los diffs de parches utilizados para fundamentar el PoC se guardan en poc/diffs/, con notas de investigación en poc/RESEARCH.md. La SQLi es totalmente reconstruible a partir de la corrección author__not_in. La cadena --rce sin credenciales (oEmbed → changeset → reentrada → creación de admin) reproduce la RCE predeterminada contra el laboratorio incluido; --shell es la ruta alternativa mediante una credencial de administrador recuperada/descifrada para la carga autenticada de plugins y ejecución de comandos.

Escalada de Privilegios Local (--lpe)

--lpe encadena la RCE completa pre-autenticación (SQLi → falsificación de admin → webshell) con un intento de escalada a root automatizado. Intenta lo siguiente en orden, deteniéndose en el primer éxito:

root@kitploit:~
python3 wp2shell.py --lpe http://127.0.0.1:8080
python3 wp2shell.py --lpe http://127.0.0.1:8080 -y          # omitir aviso de autorización
python3 wp2shell.py --lpe https://target --authorized        # no loopback

--lpe en un objetivo que no sea loopback requiere --authorized. En el laboratorio incluido (imagen base Ubuntu 22.04 con un kernel GameOverlay vulnerable) CVE-2023-2640/32629 tiene éxito sin compilador.

Descargar herramienta
BanderaQué hace
--scanComprobación de exposición no destructiva: huella digital de versión + confirma que la ruta REST /batch/v1 es alcanzable. No se envía ningún payload de exploit.
--checkConfirma SQLi ciega basada en tiempo con una sonda diferencial inofensiva.
--readExtrae datos mediante SQLi ciega (un preset o una expresión escalar SQL sin procesar).
--shellCadena de RCE autenticada usando una contraseña de admin recuperada/descifrada.
--rceRCE pre-autenticación sin credenciales: falsifica su propio admin a través de la SQLi, luego despliega una webshell autolimpiable.
--root-prereqComprobación benigna de requisitos previos de shell a root; solo ejecuta diagnósticos, nunca una escalada de privilegios local.
--lpeCadena completa: SQLi pre-autenticación → falsificación de admin → webshell → root. Intenta CVE-2023-2640/32629 (GameOverlay overlayfs), CVE-2023-4911 (Looney Tunables glibc), CVE-2026-31431 (AF_ALG Copy Fail), CVE-2026-23111 (sonda nf_tables UAF), luego fallback SUID/sudo/cap.
BanderaAplica aQué hace
-f, --file--scanLeer hosts desde un archivo (uno por línea; los comentarios con # se omiten).
-j, --json--scanEmitir resultados como JSON en stdout.
-t, --threads--scanConcurrencia de escaneo (por defecto 10).
--prefix--check/--readPrefijo de tabla de la BD (por defecto wp_).
--delay--check/--readSegundos SLEEP inyectados para el oráculo de temporización (por defecto 0.15).
--repeats--check/--readMediana sobre N sondas por bit; aumentar en enlaces ruidosos (por defecto 1).
--preset--readObjetivo integrado: version, database, db_user, users, siteurl (por defecto users).
--expr--readExpresión escalar SQL sin procesar a extraer (sobrescribe --preset).
--max-len--readLongitud máxima de la cadena extraída (por defecto 128).
--user--shell/--root-prereqNombre de usuario admin para iniciar sesión (por defecto admin).
--password--shell/--root-prereqContraseña de admin en texto plano (descifrar el hash de --read; requerido para estos modos).
--cmd--shell/--rceComando a ejecutar en el objetivo (por defecto id).
-i, --interactive--shell/--rceBucle de comandos web interactivo en lugar de un solo comando.
--no-cleanup--shell/--rceDejar el plugin/webshell desplegado en su lugar (solo laboratorio).
-y, --yes--shell/--rce/--root-prereqOmitir el aviso de autorización interactivo (para automatización).
--sleep--rceSegundos SLEEP inyectados para detección SQLi pre-autenticación (por defecto 4).
--rounds--rceMediana sobre N sondas para detección --rce (por defecto 3).
--route--rceForma de la ruta batch: auto, rest-route o wp-json (por defecto auto).
--proxy--rceEnrutar solicitudes a través de un proxy HTTP, ej. Burp en http://127.0.0.1:8080.
--authorized--rceAfirmar autorización para un objetivo --rce que no sea loopback (requerido para hosts remotos).
--timeouttodosTiempo de espera por solicitud en segundos (por defecto 15).
CVEAfectadoTécnicaCompilador
CVE-2023-2640 / CVE-2023-32629Ubuntu 22.04 / 23.04, kernel < 6.3.3 con controlador GameOverlayMontaje overlayfs sin privilegios en espacio de usuario conserva chmod +s en directorio superiorNinguno (shell puro)
CVE-2023-4911glibc 2.34–2.38 (Ubuntu 22.04, Debian 12, Fedora 37–38)Desbordamiento de pila GLIBC_TUNABLES en _dl_parse_tunables() → inyección LD_PRELOAD en ejecución SUIDgcc requerido
CVE-2026-31431Kernel Linux con algif_aead + authencesn(hmac(sha256),cbc(aes))Optimización in-place AF_ALG AEAD + splice() escribe 4 bytes en caché de página de binario SUID; sonda de requisito previo — enlaces a AliHzSec/CVE-2026-31431gcc requerido
CVE-2026-23111Ubuntu 22.04 / 24.04, Debian Bookworm / TrixieUAF de verificación invertida nf_tables en nft_map_catchall_activate() → subdesbordamiento de chain->use → cadena liberada; sonda de requisito previo — enlaces a Baba01hacker666/CVE-2026-23111gcc requerido
AlternativaCualquieraAbuso de SUID GTFOBins + sudo NOPASSWDNinguno