NoSQLMap Enumeración y Explotación de Bases de Datos NoSQL
NoSQLMap Enumeración y Explotación de Bases de Datos NoSQL

NoSQLMap: Enumeración y Explotación de Bases de Datos NoSQL

NoSQLMap es una herramienta de código abierto escrita en Python diseñada para auditar, automatizar ataques de inyección y explotar debilidades en la configuración predeterminada de bases de datos NoSQL y aplicaciones web que utilizan NoSQL, con el objetivo de revelar o clonar datos de la base de datos.

Originalmente creado por @tcsstool y ahora mantenido por @codingo_, NoSQLMap recibe su nombre como homenaje a la popular herramienta de inyección SQL de Bernardo Damele y Miroslav Stampar, sqlmap. Sus conceptos se basan en la excelente presentación de Ming Chow en Defcon 21, “Abusing NoSQL Databases”.

Demostración de Ataque a la Gestión de MongoDB con NoSQLMap

¿Qué es NoSQL?

Interfaz de uso de NoSQLMap
Interfaz de uso de NoSQLMap

Una base de datos NoSQL (originalmente referida como “no SQL”, “no relacional” o “no solo SQL”) proporciona un mecanismo para el almacenamiento y recuperación de datos que se modela de manera diferente a las relaciones tabulares utilizadas en las bases de datos relacionales.

Estas bases de datos existen desde finales de la década de 1960, pero no obtuvieron el nombre “NoSQL” hasta un aumento de popularidad a principios del siglo XXI, impulsado por las necesidades de empresas de Web 2.0 como Facebook, Google y Amazon.com.

Las bases de datos NoSQL se utilizan cada vez más en aplicaciones de grandes volúmenes de datos y en tiempo real. También se las llama a veces “Not only SQL” para enfatizar que pueden admitir lenguajes de consulta similares a SQL.

Soporte de SGBD

Actualmente, las explotaciones de la herramienta se centran en MongoDB y CouchDB, pero hay planes de añadir soporte adicional para otras plataformas basadas en NoSQL, como Redis y Cassandra, en futuras versiones.

Requisitos

En un sistema basado en Debian o Red Hat, el script setup.sh puede ejecutarse como root para automatizar la instalación de las dependencias de NoSQLMap.

Varía según las funciones utilizadas:

  • Metasploit Framework.
  • Python con PyMongo.
  • httplib2.
  • urllib.
  • Una instancia local predeterminada de MongoDB para clonar bases de datos. Consulta aquí las instrucciones de instalación.

Hay algunas otras bibliotecas necesarias que una instalación normal de Python debería tener disponibles fácilmente. Puede variar, verifica el script.

Configuración

python setup.py install

Como alternativa, puedes construir una imagen de Docker cambiando al directorio docker e ingresando:

docker build -t nosqlmap .

O puedes usar Docker-compose para ejecutar Nosqlmap:

docker-compose build
docker-compose run nosqlmap

Instrucciones de Uso

Comienza con:

python NoSQLMap

NoSQLMap utiliza un sistema basado en menús para construir ataques. Al iniciar NoSQLMap, se presenta el menú principal:

1-Set options (do this first)
2-NoSQL DB Access Attacks
3-NoSQL Web App attacks
4-Scan for Anonymous MongoDB Access
x-Exit
  1. Establecer opciones (haz esto primero).
  2. Ataques de acceso a bases de datos NoSQL.
  3. Ataques a aplicaciones web NoSQL.
  4. Escanear acceso anónimo a MongoDB.
  5. x. Salir.

Explicación de las opciones:

  1. Establecer el host/IP de destino: el servidor web de destino (por ejemplo, www.google.com) o el servidor MongoDB que deseas atacar.
  2. Establecer el puerto de la aplicación web: puerto TCP para la aplicación web si es el objetivo.
  3. Establecer la ruta URI: la parte de la URI que contiene el nombre de la página y cualquier parámetro, pero NO el nombre del host (por ejemplo, /app/acct.php?acctid=102).
  4. Establecer el método de solicitud HTTP (GET/POST): establecer el método de solicitud a GET o POST; actualmente solo se implementa GET, pero se está trabajando en la implementación de solicitudes POST exportadas desde Burp.
  5. Establecer mi IP local de Mongo/Shell: establece esta opción si estás atacando directamente a una instancia de MongoDB con la IP de una instalación de Mongo objetivo para clonar bases de datos o abrir shells de Meterpreter.
  6. Establecer el puerto del escucha del shell: si abres shells de Meterpreter, especifica el puerto.
  7. Cargar archivo de opciones: carga un conjunto de configuraciones guardadas anteriormente para 1-6.
  8. Cargar opciones desde la solicitud guardada de Burp: analiza una solicitud guardada desde Burp Suite y completa las opciones de la aplicación web.
  9. Guardar archivo de opciones: guarda las configuraciones de 1-6 para uso futuro.
  10. x. Volver al menú principal: usa esto una vez que se establezcan las opciones para iniciar tus ataques.

Una vez que se establezcan las opciones, regresa al menú principal y selecciona ataques de acceso a bases de datos o ataques a aplicaciones web según corresponda si estás atacando un puerto de gestión NoSQL o una aplicación web.

Aplicaciones Vulnerables

Este repositorio también incluye una aplicación web intencionalmente vulnerable para testear NoSQLMap. Para ejecutar esta aplicación, necesitas tener Docker instalado. Luego, puedes ejecutar los siguientes comandos desde el directorio /vuln_apps.

docker-compose build && docker-compose up

Una vez que esté completo, deberías poder acceder a la aplicación vulnerable visitando: https://127.0.0.1/index.html

¿Continuar con el pentesting? Puedes intentar con MSSqlPwner: Herramienta Avanzada de Pentesting en entornos MSSQL

Descargar NoSQLMap

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda