Puerto 27017: MongoDB

MongoDB es una base de datos NoSQL orientada a documentos que utiliza un formato de datos similar a JSON (BSON - Binary JSON). Es conocida por su escalabilidad, flexibilidad y capacidad para manejar grandes volúmenes de datos. El puerto 27017 es el puerto predeterminado que utiliza MongoDB para aceptar conexiones de clientes.

Descripción de MongoDB y el Puerto 27017

  • Protocolo: MongoDB utiliza un protocolo propio sobre TCP para la comunicación entre clientes y servidores. El puerto predeterminado para las conexiones MongoDB es el 27017.

  • Funcionalidad: MongoDB permite almacenar y consultar datos en una estructura de documentos flexible. Soporta operaciones complejas, índices avanzados, y tiene capacidades de replicación y sharding para alta disponibilidad y escalabilidad.

  • Seguridad: Por defecto, MongoDB no requiere autenticación y no cifra el tráfico, lo cual puede ser un riesgo de seguridad si no se configura adecuadamente.

Relevancia en Pentesting

Importancia de MongoDB en Pentesting:

  • Acceso No Autorizado: Si MongoDB está configurado sin autenticación y es accesible desde redes no confiables, puede ser explotado para obtener acceso no autorizado.

  • Exposición de Datos: La falta de cifrado y configuraciones de acceso inapropiadas pueden exponer datos sensibles almacenados en MongoDB.

  • Enumeración y Explotación: Los pentesters buscan servicios MongoDB expuestos para enumerar bases de datos, colecciones y documentos, y explotar configuraciones inseguras.

Ejemplo de Escaneo de MongoDB con Nmap

Para identificar servidores MongoDB activos y recopilar información adicional sobre los servicios MongoDB, se puede utilizar Nmap con scripts NSE específicos.

Comando Nmap

nmap -p 27017 --script mongodb-info target-ip

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 27017: Especifica que Nmap debe escanear el puerto 27017, el puerto predeterminado para MongoDB.

  • --script mongodb-info: Utiliza el script NSE mongodb-info para recopilar información sobre el servidor MongoDB.

  • target-ip: Especifica la dirección IP del objetivo.

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 23:55 UTC
Nmap scan report for 192.168.1.190
Host is up (0.0031s latency).

PORT      STATE SERVICE
27017/tcp open  mongodb
| mongodb-info: 
|   Version: 4.2.3
|   Storage Engine: wiredTiger
|   Databases: 
|     admin
|     local
|     test
|   Collections per Database: 
|     admin:
|       system.version
|     local:
|       startup_log
|     test:
|       myCollection
|   Document Count per Collection: 
|     admin:
|       system.version: 1
|     local:
|       startup_log: 50
|     test:
|       myCollection: 1000
|   Storage Size: 
|     admin:
|       system.version: 16KB
|     local:
|       startup_log: 2MB
|     test:
|       myCollection: 5MB
|   Indexes: 
|     admin:
|       system.version: 1
|     local:
|       startup_log: 1
|     test:
|       myCollection: 1
|   Hostname: mongo-server.local
|_  Uptime: 432000 seconds (5 days)

Nmap done: 1 IP address (1 host up) scanned in 8.90 seconds

Interpretación de la Salida

  • Host is up: Indica que el sistema objetivo está en línea y responde.

  • 27017/tcp open mongodb: El puerto 27017 está abierto y el servicio MongoDB está activo.

  • mongodb-info: Proporciona información detallada sobre el servidor MongoDB.

    • Version: Versión de MongoDB (4.2.3).

    • Storage Engine: Motor de almacenamiento utilizado (wiredTiger).

    • Databases: Bases de datos disponibles (admin, local, test).

    • Collections per Database: Colecciones en cada base de datos.

      • admin: system.version.

      • local: startup_log.

      • test: myCollection.

    • Document Count per Collection: Número de documentos en cada colección.

      • admin: system.version tiene 1 documento.

      • local: startup_log tiene 50 documentos.

      • test: myCollection tiene 1000 documentos.

    • Storage Size: Tamaño de almacenamiento de cada colección.

      • admin: system.version ocupa 16KB.

      • local: startup_log ocupa 2MB.

      • test: myCollection ocupa 5MB.

    • Indexes: Número de índices en cada colección.

      • admin: system.version tiene 1 índice.

      • local: startup_log tiene 1 índice.

      • test: myCollection tiene 1 índice.

    • Hostname: Nombre del host del servidor MongoDB (mongo-server.local).

    • Uptime: Tiempo de actividad del servidor (432000 seconds, equivalente a 5 días).

Última actualización