
Proporciona un entorno contenerizado y una plantilla Nuclei firmada para probar de forma segura CVE-2025-32463, una vulnerabilidad de escalada de privilegios en sudo, con comparación de detección y versión parcheada.
Esta es la primera vez que porto un exploit malicioso a una plantilla de Nuclei para un escaneo de vulnerabilidades no intrusivo que aún demuestra el problema subyacente.
Documenté el proceso con más detalle expresamente como ejercicio de aprendizaje.
Mis principales desafíos fueron:
-itags local, ya que la etiqueta local se ignora por defecto en la configuración de .nuclei-ignore.Puede parecer extraño que haya elegido el entorno Windows para esta actividad. El hecho es que Windows es mi sistema operativo predeterminado por razones que no voy a detallar aquí.
docker-compose up --build -d
Esta plantilla utiliza el motor code que requiere firma por razones de seguridad. La plantilla ya está firmada en este repositorio.
El docker-compose.yaml está configurado para montar tus claves de firma de Nuclei de Windows desde %APPDATA%\nuclei\keys en los contenedores. Esto permite verificar la plantilla firmada.
En el host Windows (requiere Nuclei instalado).
nuclei -t cve-2025-32463.yaml -sign
Esto firmará la plantilla y agregará un campo digest.
Nota: La primera vez que ejecutes este comando, Nuclei creará claves de firma en %APPDATA%\nuclei\keys y te pedirá:
Linux/macOS/Git Bash:
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD:
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternativa (funciona en todas las plataformas):
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Notas:
-code es necesario para habilitar plantillas basadas en protocolo de códigosh -c '...' para evitar problemas de conversión de rutas de Windows con MSYS2/Git Bash[INF] Executing 1 signed templates from <your-username>Windows PowerShell/CMD:
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternativa (funciona en todas las plataformas):
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Notas:
-code es necesario para habilitar plantillas basadas en protocolo de código"..." o el comando alternativo sin sh -c[INF] Executing 1 signed templates from <your-username>Si quieres verificar la vulnerabilidad sin firmar la plantilla de Nuclei, puedes ejecutar el script de exploit directamente:
Copia y ejecuta el script de exploit.
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
Salida esperada: woot! seguido de un shell root (en modo interactivo).
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
Detección confirmada: UID=1000 EUID=0 demuestra que el código de testuser (1000) se ejecutó con privilegios de root (0).
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
No se detectó vulnerabilidad - La versión parcheada de sudo evita la carga de la biblioteca.
Para una explicación técnica detallada de la vulnerabilidad, vectores de ataque y metodología de detección, consulta el documento Notas Técnicas.