
Escáner de cadena de vulnerabilidades wp2shell para WordPress, dirigido a CVE-2026-63030 y CVE-2026-60137, con detección activa, PoC opcional y exportación JSON.
CVE-2026-63030 y CVE-2026-60137 – escáner de la cadena de vulnerabilidades wp2shell de WordPress
Herramienta autorizada de investigación en seguridad con PoC opcional de verificación de comandos.
wp2shell-scanner detecta la cadena de vulnerabilidades wp2shell de WordPress
validando evidencia pública de WordPress, identificando las versiones expuestas,
comprobando el comportamiento del lote REST y midiendo una diferencia de tiempo
activa. Está pensada para investigación defensiva autorizada, entornos CTF y
sistemas que poseas o administres.
Este proyecto se proporciona estrictamente para pruebas de seguridad autorizadas e investigación defensiva.
-p/--poc cambia el estado de WordPress antes de intentar una limpieza de mejor esfuerzo.whoami por defecto o un comando proporcionado por el investigador.requirements.txt:
requestscoloramaObtén este repositorio y luego instala las dependencias desde su directorio raíz.
Cambia al directorio del proyecto:
cd wp2shell-scanner
Opcional pero recomendado: crea y activa un entorno virtual:
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
Instala las dependencias:
python3 -m pip install -r requirements.txt
Confirma que la CLI está disponible:
python3 wp2shell-scanner.py -h
Muestra la ayuda:
python3 wp2shell-scanner.py -h
Ejecutar la herramienta sin un objetivo muestra el texto de ayuda con la marca y sale con
un error de uso. Proporciona exactamente una fuente de objetivo: -u/--url para un objetivo
o -l/--list para un archivo de objetivos.
python3 wp2shell-scanner.py -u https://wordpress.example
Los objetivos sin esquema se tratan como URL http://. Los archivos de listas de objetivos usan
una URL por línea; las líneas en blanco y las que comienzan con # se ignoran. Las entradas
no válidas se informan con su número de línea.
El punto de entrada compatible es el script raíz:
python3 wp2shell-scanner.py -u https://wordpress.example
| Opción | Descripción | Predeterminado |
|---|---|---|
-u URL, --url URL | Escanea una URL objetivo de WordPress. Mutuamente excluyente con --list. | Ninguno |
-l FILE, --list FILE | Escanea URL objetivo desde un archivo de texto. Mutuamente excluyente con --url. | Ninguno |
| Opción | Descripción | Predeterminado |
|---|---|---|
-p, --poc | Después de la confirmación activa, ejecuta el PoC de verificación de comandos que cambia el estado. Usa whoami a menos que se proporcione --command. | Desactivado |
-c COMMAND, --command COMMAND | Ejecuta COMMAND durante --poc; requiere --poc. | whoami |
-t N, --threads N | Trabajadores objetivo concurrentes para un escaneo de lista. N debe ser al menos 1. | 10 |
| Opción | Descripción | Predeterminado |
|---|---|---|
-o FILE, --output FILE | Escribe un array JSON UTF-8 de resultados en FILE. Por defecto, solo se incluyen los resultados confirmados como vulnerables. | Ninguno |
--all-results | Incluye todos los resultados del escaneo en --output, incluidos los no vulnerables, los que no son WordPress y los errores. | Desactivado |
-v, --verbose | Muestra el estado HTTP final del PoC y la cabecera X-Action-Redirect. | Desactivado |
-q, --quiet | En una ejecución exitosa del PoC, imprime solo la salida normalizada del comando. Los fallos y las advertencias de limpieza van a stderr. | Desactivado |
--no-color | Desactiva la salida de terminal en color. | Desactivado |
Escanea un objetivo:
python3 wp2shell-scanner.py --url https://wordpress.example
Escanea una lista de objetivos con 20 trabajadores:
python3 wp2shell-scanner.py --list targets.txt --threads 20
Ejecuta el PoC de verificación que cambia el estado solo después de que el escáner confirme activamente el objetivo:
python3 wp2shell-scanner.py -u https://wordpress.example -p
Ejecuta un comando proporcionado por el investigador e imprime solo su salida multilínea normalizada:
python3 wp2shell-scanner.py --url https://wordpress.example -p --command "ls -la" --quiet
Escribe solo los resultados confirmados como vulnerables en JSON, o incluye todos los objetivos con
--all-results:
python3 wp2shell-scanner.py --list targets.txt --output results.json
python3 wp2shell-scanner.py --list targets.txt --output results.json --all-results
| Resultado | Significado |
|---|---|
| VULNERABLE | La sonda de tiempo activa confirmó la cadena de vulnerabilidades. Parchea el objetivo de inmediato. |
| POTENCIALMENTE AFECTADO | Una versión pública está en un rango afectado, pero la confirmación activa fue bloqueada o no concluyente. Parchea e investiga. |
| NO VULNERABLE | La sonda activa no se confirmó y no se detectó ninguna versión pública afectada. |
| NO ES WORDPRESS | No se encontró evidencia pública de WordPress. |
| ERROR | Un error de red, TLS, entrada de objetivo o respuesta inesperada impidió un escaneo fiable. |
Las versiones estables afectadas son WordPress 6.9.0–6.9.4 y 7.0.0–7.0.1. Actualiza inmediatamente a 6.9.5, 7.0.2 o una versión posterior.
| Código | Significado |
|---|---|
0 | El escaneo se completó sin ningún resultado POTENCIALMENTE AFECTADO. Los resultados confirmados como vulnerables también usan este código. |
1 | Al menos un objetivo está POTENCIALMENTE AFECTADO. |
2 | La entrada del objetivo no era válida, o todos los objetivos programados terminaron en error. |
Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.
📬 Contáctanos: [email protected]