Herramienta de Detección y Explotación de CVE-2025-55182
Introducción del Proyecto
Esta herramienta es una GUI basada en Java Swing para detectar y explotar la vulnerabilidad CVE-2025-55182. Esta vulnerabilidad es un fallo de seguridad en el framework Next.js que permite a un atacante ejecutar comandos arbitrarios mediante una solicitud especialmente diseñada.
Características
1. Detección de Vulnerabilidades
- Soporta escaneo por lotes de URLs
- Escaneo concurrente multihilo para acelerar la detección
- Muestra en tiempo real el progreso y contador (ej: 1/1000 (0%))
- Solo muestra los objetivos vulnerables, filtra información irrelevante
- Soporta importación de archivos para detección por lotes
- Proporciona función de detener el escaneo
2. Ejecución de Comandos
- Soporta ejecución de comandos Linux/Windows
- Selección automática o manual del sistema operativo objetivo
- Muestra en tiempo real los resultados de la ejecución de comandos
3. Inyección de WebShell persistente en memoria
- Soporta inyección de un webShell simple de ejecución de comandos
- Soporta inyección de webShell Godzilla (con cifrado RC4)
- Genera automáticamente información de conexión e instrucciones de uso
4. Reverse Shell
- Soporta reverse shell Linux/Windows
- Soporta comandos de reverse personalizados
- Proporciona múltiples métodos de reverse (named pipe Linux, PowerShell Windows)
Arquitectura Técnica
- Lenguaje de Desarrollo: Java
- Framework GUI: Swing
- Comunicación de Red: HttpURLConnection
- Concurrencia: ExecutorService (grupo de hilos)
- Gestión de Proyecto: Maven
Requisitos del Entorno
- JDK 8 o superior
- Maven 3.6 o superior
Compilación y Ejecución
1. Compilar el proyecto
# Entrar al directorio del proyecto
cd CVE202555182GUI
# Compilar y empaquetar
mvn clean package
2. Ejecutar la herramienta
# Ejecutar el archivo JAR ejecutable con dependencias
java -jar target/CVE202555182GUI-1.0-SNAPSHOT-jar-with-dependencies.jar
Instrucciones de Uso
Detección de Vulnerabilidades
- Ingrese una o más URLs objetivo en el campo de texto "URL Objetivo" (una por línea)
- O haga clic en el botón "Importar archivo" para seleccionar un archivo con la lista de URLs
- Haga clic en el botón "Iniciar Detección" para comenzar el escaneo
- Los resultados del escaneo se mostrarán en el área "Resultados del Escaneo"
- Puede hacer clic en "Detener Escaneo" para interrumpir el proceso
Ejecución de Comandos
- Ingrese la URL objetivo
- Ingrese el comando a ejecutar
- Seleccione el sistema operativo objetivo (auto/linux/windows)
- Haga clic en el botón "Ejecutar Comando"
- El resultado de la ejecución se mostrará en el área "Resultado de Ejecución"
Inyección de WebShell en memoria
- Ingrese la URL objetivo
- Seleccione el tipo de webShell (Simple ejecución de comandos / Godzilla)
- Seleccione el sistema operativo objetivo (auto/linux/windows)
- Haga clic en el botón "Inyectar WebShell"
- El resultado de la inyección y la información de conexión se mostrarán en el área "Resultado de Inyección"
Reverse Shell
- Ingrese la URL objetivo
- Ingrese la IP y el puerto de reverse
- Seleccione el sistema operativo objetivo (linux/windows)
- Opcional: Ingrese un comando de reverse personalizado
- Haga clic en el botón "Inyectar Reverse Shell"
- El resultado de la inyección se mostrará en el área "Resultado de Inyección"
Principio de la Vulnerabilidad
La vulnerabilidad CVE-2025-55182 se debe a un defecto de seguridad en el framework Next.js al procesar solicitudes específicas. Un atacante puede ejecutar comandos arbitrarios en el lado del servidor mediante una solicitud multipart/form-data maliciosa.
La herramienta detecta la vulnerabilidad mediante los siguientes pasos:
- Construye una solicitud que contiene un payload de ejecución de comandos
- La envía a la ruta
/_next/data del servidor objetivo
- Verifica si la respuesta contiene el resultado esperado de la ejecución del comando
- Determina si la vulnerabilidad existe según el resultado
Proyecto de Referencia
Este proyecto se basa en el siguiente proyecto de código abierto:
- ReactExploitGUI - Proporciona las ideas centrales y métodos de implementación para la explotación de vulnerabilidades.
Advertencia de Seguridad
- Esta herramienta está diseñada únicamente para pruebas de seguridad y pruebas de penetración autorizadas.
- Al usar esta herramienta, cumpla con las leyes y regulaciones aplicables.
- No utilice esta herramienta contra objetivos no autorizados.
- Después de las pruebas, elimine cualquier webShell inyectada de manera oportuna.
Notas Importantes
- Velocidad de escaneo: Por defecto utiliza 10 hilos concurrentes, ajustable según el entorno de red.
- Timeout: Por defecto 10 segundos, ajustable según el entorno de red.
- Conexión de webShell Godzilla: Se requiere descargar el plugin de conexión Node.js complementario.
- Reverse Shell: Debe iniciar el puerto de escucha correspondiente localmente (ej:
nc -lvvp 4444).
Solución de Problemas
Problemas Comunes y Soluciones
-
La barra de progreso no avanza
- Verifique que la URL objetivo sea correcta
- Verifique la conexión de red
- Intente reducir el número de hilos concurrentes
-
Fallo en la ejecución de comandos
- Confirme que el objetivo tenga la vulnerabilidad
- Confirme que la selección del sistema operativo sea correcta
- Verifique que el comando sea válido para el sistema objetivo
-
Fallo en la inyección de webShell
- Confirme que el objetivo tenga la vulnerabilidad
- Verifique que la conexión de red sea estable
- Intente usar un tipo diferente de webShell
-
No se puede conectar el reverse shell
- Confirme que el puerto de escucha local esté iniciado
- Verifique la configuración del firewall de red
- Confirme que la IP y el puerto de reverse sean correctos
- Intente usar un comando de reverse personalizado
Historial de Versiones
- v1.0.0: Versión inicial
- Implementa la función de detección básica de vulnerabilidades
- Implementa la función de ejecución de comandos
- Implementa la función de inyección de webShell en memoria
- Implementa la función de reverse shell
Descargo de Responsabilidad
Esta herramienta es solo para fines de aprendizaje y pruebas de seguridad autorizadas. No la utilice con fines ilegales. El usuario asume toda la responsabilidad por cualquier consecuencia derivada del uso de esta herramienta.
Si tiene preguntas o sugerencias, no dude en contactar al autor.