Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
MongoBleed-exploit — MongoBleed (CVE-2025-14847) Lab & PoC : Un entorno educativo completo para reproducir la fuga de memoria crítica no autenticada en MongoDB. Incluye un contenedor Docker vulnerable con carga de múltiples bases de datos (PII, claves de API) y un exploit en Python para demostrar la extracción de datos. Ideal para investigación y concienciación en seguridad. Análisis de 1 día. | Kitploit
Herramientas/GitHubGitHub/eljoamy/mongobleed-exploit
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónCTFPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de DatosLabs y Práctica

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 →

Acerca de

MongoBleed (CVE-2025-14847) Lab & PoC : Un entorno educativo completo para reproducir la fuga de memoria crítica no autenticada en MongoDB. Incluye un contenedor Docker vulnerable con carga de múltiples bases de datos (PII, claves de API) y un exploit en Python para demostrar la extracción de datos. Ideal para investigación y concienciación en seguridad. Análisis de 1 día.

GitHub
eljoamy/mongobleed-exploit

MongoBleed-exploit

Ver Repositorio
9hace 8 mesesAún no revisado
Compartir

CVE-2025-14847: Laboratorio MongoBleed

Python      MongoDB      Docker

Tabla de Contenidos

  1. Introducción
  2. Detalles de la Vulnerabilidad
    • Cómo Funciona
  3. Impacto
  4. Arquitectura del Laboratorio
  5. Prerrequisitos
  6. Instalación y Uso
    • 1. Iniciar el Entorno
    • 2. Instalar Dependencias
    • 3. Verificar Configuración del Laboratorio (Opcional)
    • 4. Ejecutar el Exploit
  7. Tutorial de Explotación
  8. Remediación
  9. Licencia
  10. Descargo de Responsabilidad
  11. Referencias
  12. Autor

Introducción

Este laboratorio está diseñado para reproducir y analizar MongoBleed (CVE-2025-14847), una vulnerabilidad crítica en MongoDB. Este fallo permite a atacantes no autenticados leer datos sensibles de la memoria del servidor debido a un manejo inadecuado de mensajes comprimidos.

El entorno incluye una instancia vulnerable de MongoDB poblada con datos sensibles ficticios (PII, claves API, registros financieros) para demostrar la gravedad de la fuga.

Detalles de la Vulnerabilidad

ID CVE: CVE-2025-14847
Nombre: MongoBleed
Componente: Protocolo Wire (OP_COMPRESSED)
Versiones Vulnerables: MongoDB 6.0.x < 6.0.27, 7.0.x < 7.0.28, 8.0.x < 8.0.17 (y otras) URL: Haz clic en él -> NVD CVE-2025-14847

Cómo Funciona

La vulnerabilidad reside en la forma en que MongoDB maneja los mensajes OP_COMPRESSED utilizando el algoritmo de compresión zlib.

  1. Discrepancia de Tamaño: Un atacante envía un mensaje comprimido donde el campo uncompressed_size en el encabezado se establece intencionalmente en un valor mucho mayor que el tamaño real de los datos descomprimidos.
  2. Asignación de Memoria: El servidor asigna un búfer de memoria basado en este uncompressed_size inflado.
  3. Escritura Parcial: El descompresor zlib escribe la carga útil real (pequeña) al principio de este búfer. El resto del búfer permanece sin inicializar, conteniendo datos residuales de operaciones anteriores (artefactos de RAM).
  4. La Fuga: Cuando el servidor intenta analizar este búfer como un documento BSON, lee más allá de los datos válidos hacia la memoria no inicializada. Si el analizador encuentra un error (lo cual es probable), puede devolver los datos "malos" en el mensaje de error al cliente.

Impacto

  • Acceso No Autenticado: El ataque no requiere credenciales válidas.
  • Divulgación de Información: Los atacantes pueden extraer cualquier cosa que esté actualmente en la memoria del proceso de MongoDB, incluyendo:
    • Credenciales de autenticación (contraseñas en texto plano o hashes).
    • Datos de otras bases de datos/colecciones.
    • Configuración del servidor y variables de entorno.
    • Tokens de sesión activos.

Arquitectura del Laboratorio

El laboratorio consta de:

  • Servicio Vulnerable: MongoDB 6.0.10 (contenedor Docker).
  • Autenticación: Habilitada (admin / secretpassword).
  • Sembrado de Datos: Un script de inicialización (init-mongo.js) que puebla 3 bases de datos distintas para simular un entorno SaaS de infraestructura en la nube real:
    • dbmongotesting: Datos de infraestructura central.
      • compute_instances: Metadatos sensibles (scripts de datos de usuario, claves API).
      • deployment_secrets: Objetivos de alto valor (tokens de K8s, claves CI/CD, webhooks de Slack).
    • identity_provider: Gestión de identidad de usuarios.
      • users: Credenciales de usuario, hashes de contraseñas (Argon2) y códigos de respaldo MFA (filtrados en texto plano).
    • system_audit: Registros y monitoreo.
      • query_logs: Contiene consultas históricas, algunas incluyendo credenciales filtradas (por ejemplo, claves de AWS).
  • Exploit: Un script en Python (exploit.py) que implementa el ataque de protocolo mediante ingeniería inversa.

Prerrequisitos

  • Docker
  • Docker Compose
  • Python 3

Instalación y Uso

1. Iniciar el Entorno

Lanza el contenedor vulnerable. Esto creará automáticamente las bases de datos y las poblará con datos.

root@kitploit:~
docker-compose up -d

Espera unos 10-15 segundos para que la base de datos se inicialice y cargue los datos.

Nota: Si has ejecutado este laboratorio antes, asegúrate de restablecer el volumen para cargar la estructura de datos más reciente:

root@kitploit:~
docker-compose down -v
docker-compose up -d

2. Instalar Dependencias

Puedes instalar las dependencias requeridas usando pip con el requirements.txt heredado o el pyproject.toml moderno.

Opción A: Usando requirements.txt (Estándar)

root@kitploit:~
pip install -r requirements.txt

Opción B: Usando pyproject.toml (Moderno) Esto instalará el proyecto y sus dependencias en el entorno actual.

root@kitploit:~
pip install .

3. Verificar Configuración del Laboratorio (Opcional)

Hemos proporcionado un script de verificación para asegurar que la base de datos sea accesible y los datos se hayan sembrado correctamente.

root@kitploit:~
python verify_lab.py

Este script utiliza las credenciales de administrador para verificar la existencia de bases de datos como sensitive_db, legacy_crm, etc.

4. Ejecutar el Exploit

Ejecuta el script de Python para atacar el servidor. No se requieren credenciales para este paso, demostrando la naturaleza no autenticada de la vulnerabilidad.

root@kitploit:~
python exploit.py --host localhost --port 27017 --min 100 --max 5000

Tutorial de Explotación

El script realiza los siguientes pasos:

  1. Construye una carga útil BSON maliciosa.
  2. La comprime y la envuelve en un encabezado OP_COMPRESSED con un tamaño falsificado e inflado.
  3. La envía al servidor objetivo.
  4. Escucha respuestas de error.
  5. Imprime cualquier texto legible encontrado en la respuesta del servidor (que proviene de la fuga de memoria).

Salida Esperada: Deberías ver una salida indicando fugas encontradas en varios desplazamientos, seguida de un resumen de secretos detectados.

root@kitploit:~
[*] MongoBleed Exploit (Custom Implementation)
[*] Target: localhost:27017
[*] Scanning memory offsets 100 to 5000...
[+] Offset 120  | ... dbmongotesting ... compute_instances ...
[+] Offset 145  | ... field name 'AKIAIOSFODNN7EXAMPLE' is not valid ... [!] FOUND AKIA
[+] Offset 210  | ... "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ik16UTBOVFZ... [!] FOUND token

[*] Scan completed in 12.45s
[*] Total bytes leaked: 4502
[*] Unique fragments: 156

[*] Secrets Summary:
[!] Found pattern: AKIA
[!] Found pattern: token
[!] Found pattern: password

Remediación

Para corregir esta vulnerabilidad en entornos de producción:

  1. Actualizar: Actualiza MongoDB a una versión parcheada (por ejemplo, 6.0.27+, 7.0.28+, 8.0.17+).
  2. Restricciones de Red: Asegúrate de que los puertos de MongoDB (27017) no estén expuestos a internet público.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Descargo de Responsabilidad

Este material es solo para fines educativos y de investigación. No utilices este exploit en sistemas que no sean de tu propiedad o para los que no tengas permiso explícito para probar. El autor no es responsable de ningún mal uso de esta información o herramienta.

Referencias

  • Exploiting an Exposed MongoDB Instance with Mongobleed: A Local Lab Walkthrough
  • CVE-2025-14847

Autor

ElJoamy
Joseph Meneses (ElJoamy)

Backend and AI Developer · Cybersecurity Engineer · DBA · Penetration Tester

Descargar herramienta