🛡️
Hacking para Juniors - [CPPJ]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacker
    • ADVERTENCIA
    • Aprende GRATIS con El Curso De Junior a Senior en Hacking
    • Conoce tu Academia
    • Aprende con nuestro curso
    • Conoce a tu instructor
  • Fundamentos de la ciberseguridad ofensiva
    • ¿Que es el Ethical Hacking?
      • Tipos de Hackers
        • APTs (Advanced Persistent Threats)
    • ¿Que es el pentesting?
      • Tipos de Caja en Pentesting
      • Tipos de tecnologia
      • Etapas de un pentest
        • Escalacion de privilegios
    • ¿Qué es un CVE?
    • ¿Que es un escaneo de vulnerabilidades?
    • ¿Que es un Red Team?
      • Command and Control
    • ¿Que es la ingenieria social?
      • Kevin Mitnick
      • Libros Recomendados
    • El papel de los Juniors y la IA
  • OSINT for Juniors
    • Open-source intelligence (OSINT)
    • Tipos de fuentes OSINT
    • Herramientas para OSINT
    • Dorks de Google
  • OS for Juniors
    • Introduccion a Sistemas Operativos
    • Archivo y extensiones
    • Windows
      • Estructura del SO
        • Kernel De Windows
        • Servicios Importantes
        • Procesos en Windows
        • Registros en Windows
        • Gestion de archivos en Windows
      • Versiones relevantes
      • La importancia de identificar la version de windows durante una auditoria
      • Tips
    • Linux
      • Tips
    • Android
      • Versiones relevantes
      • Tips
    • IOS
      • Versiones Relevantes
      • Tips
    • macOS
      • Versiones Relevantes
      • Tips
    • Sistemas operativos para Hackers
    • Instalacion de Kali Linux
  • Networking for Juniors
    • ¿Que es el Networking?
    • Fundamentos de Redes
    • Estructura de Redes
    • Topologías de Red
    • Modelo OSI (Open Systems Interconnection)
    • Modelo TCP/IP
    • IP (Internet Protocol)
    • TCP (Transmission Control Protocol)
    • UDP (User Datagram Protocol)
    • Protocolos de red
      • Protocolos de la capa de acceso al medio
      • Protocolos de la capa de red
      • Protocolos de la capa de transporte
      • Protocolos de la capa de aplicación
      • Protocolos de aplicación en correo electrónico
    • Puertos y servicios
      • Puerto 21: FTP
      • Puerto 22: SSH
      • Puerto 23: Telnet
      • Puerto 25: - SMTP
      • Puerto 53: DNS
      • Puerto 80: HTTP
      • Puerto 443: HTTPS
      • Puerto 139 y 445: SMB - CIFS
      • Puerto 3389: RDP
      • Puerto 389: LDAP
      • Puerto 5000: Docker
      • Puerto 5900: VNC
  • Nmap for Juniors
    • ¿Que es Nmap?
    • Tu Primer Nmap
    • Parametros de Nmap
    • Comandos utiles
    • Scripts de Nmap
  • Wi-Fi y Radiofrecuencias
    • Fundamentos de Wireless
    • Fundamentos del Hacking de Wi-Fi
    • Fundamentos en Radiofrecuencias
    • RFID (Radio Frequency Identification)
    • Infrarrojo (IR)
    • Bluetooth
    • NFC (Near Field Communication)
    • Herramientas de un hacker
    • Fundamentos en Hardware Hacking
  • AppWeb For Juniors
    • ¿Porque deberia aprender hacking web?
    • Fundamentos de Aplicaciones Web
      • Códigos de estado HTTP
    • Fundamentos de APIs
      • Métodos HTTP
      • Practica Gratis
    • Cabeceras de seguridad
    • Analisis de certificados SSL
    • Mecanismos de autenticacion y autorizacion en AppWeb
    • Atacando CMS
    • La Seguridad en el Desarrollo de Aplicativos: Frameworks vs. Desarrollo Manual
    • OWASP Top Ten
  • Databases for Juniors
    • ¿Base de Datos?
      • SQL
      • NoSQL
    • Puerto 6379: Redis
    • Puerto 27017: MongoDB
    • Puerto 5432: PostgreSQL
    • Puerto 3306: MySQL
    • Puerto 1433: Microsoft SQL Server
    • Puerto 1521: - Oracle Database
  • Transferencia de Archivos
    • Introduccion a la Transferencia de archivos
    • Descargando desde Windows
      • Utilizando LOLBAS
    • Descargando desde Linux
    • Despliegue de servicio HTTP
    • Despliegue de servicio SMB
    • Despligue de servicio FTP
    • Utilizando Base64
  • Fundamentos en Vulnerabilidades
    • ¿Qué es una Vulnerabilidad?
    • ¿Qué es un 0day?
    • Common Vulnerabilities and Exposures - [CVE]
    • RCE (Remote Code Execution)
    • Buffer Overflow
  • Malware For Junior
    • ¿Que es Malware?
    • ¿Que es un AntiVirus?
      • Microsoft Defender
    • ¿Que es un EDR?
      • Mejores EDRs actuales
    • Desarrollo de Malware
    • Malware for Windows
      • Golang
      • Nim
      • C#
    • Ofuscacion de Malware
  • Shell
    • ¿Shell?
      • CMD (Command Prompt) en Windows
      • PowerShell en Windows
      • Bash en Unix/Linux
    • ¿Reverse Shell?
    • ¿Web Shell?
    • ¿Bind Shell?
    • Enumeracion de Windows
    • Enumeracion de Linux
  • Privilege Escalation for Juniors
    • ¿Que es la escalacion de privilegios?
    • PrivEsc For Windows
      • WinPEAS
    • PrivEsc For Linux
      • LinPEAS
    • PrivEsc For Active Directory
    • PrivEsc For Cloud Computing
  • Tecnicas de persistencia
    • Fundamentos de Persistencia
    • Persistencia en Windows
    • Persistencia en Linux
    • Persistencia Avanzada
  • Pivoting for Juniors
    • ¿Que es pivoting?
    • ¿Que es Socks?
    • Doble Pivoting y Triple Pivoting
    • RPivot y Chisel
  • Active Directory For Juniors
    • Fundamentos de Active Directory
    • Utilizando ADPeas para el reconocimiento
  • Cloud Computing For Juniors
    • Fundamentos de cloud computing
    • Amazon Web Services
    • Microsoft Azure
    • Google Cloud Platform
  • Introduccion a Blue Team
    • ¿Blue Team?
    • ¿SOC?
    • ¿Threat Hunting?
    • SIEM (Security Information and Event Management)
    • La fatiga del SOC
    • ¿SOAR?
  • Defensas y herramientas de seguridad perimetral
    • Soluciones de Seguridad Perimetral Esenciales
    • Firewall
    • IDS (Intrusion Detection System)
    • IPS (Intrusion Prevention System)
    • WAF (Web Application Firewall)
    • Firewalls de Próxima Generación (NGFW)
    • Gateways de Seguridad Web (SWG)
    • Gateways de Seguridad de Correo Electrónico (SEG)
    • Sistemas de Prevención de Fugas de Datos (DLP)
    • Network Access Control (NAC)
  • Muchas gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • ¿Qué es NoSQL?
  • Tipos de Bases de Datos NoSQL
  • 1. Bases de Datos de Documentos
  • 2. Bases de Datos de Clave-Valor
  • 3. Bases de Datos de Columnas
  • 4. Bases de Datos de Grafos
  • Arquitectura de Bases de Datos NoSQL
  • Seguridad en Bases de Datos NoSQL
  • 1. Control de Acceso
  • 2. Encriptación
  • 3. Auditoría y Registro
  • 4. Configuración Segura
  • Vulnerabilidades Comunes en Bases de Datos NoSQL
  • 1. Inyección NoSQL
  • 2. Autenticación Débil
  • 3. Configuración Incorrecta
  • Medidas de Mitigación
  • 1. Validación de Entrada
  • 2. Autenticación y Autorización Fuertes
  • 3. Configuración Segura
  • 4. Monitoreo y Auditoría
  • Herramientas para Detectar y Explotar Vulnerabilidades en NoSQL
  • 1. NoSQLMap
  • 2. MongoDB Security Tools
  • 3. Burp Suite

¿Te fue útil?

  1. Databases for Juniors
  2. ¿Base de Datos?

NoSQL

Las bases de datos NoSQL han ganado popularidad en la última década debido a su capacidad para manejar grandes volúmenes de datos no estructurados y estructurados, su escalabilidad horizontal y su flexibilidad en el modelo de datos. Este capítulo explora los conceptos fundamentales, tipos, arquitectura, y aspectos de seguridad de las bases de datos NoSQL, con un enfoque en las vulnerabilidades y técnicas de pentesting relacionadas.

¿Qué es NoSQL?

NoSQL, o "Not Only SQL", es un enfoque para la gestión de bases de datos que permite el almacenamiento y recuperación de datos de manera diferente a las bases de datos relacionales tradicionales (RDBMS). Las bases de datos NoSQL están diseñadas para ser altamente escalables y flexibles, adecuadas para aplicaciones que manejan grandes volúmenes de datos y requieren alta disponibilidad.

Tipos de Bases de Datos NoSQL

1. Bases de Datos de Documentos

  • Descripción: Almacenan datos en forma de documentos similares a JSON, lo que permite estructuras de datos flexibles y anidadas.

  • Ejemplos: MongoDB, CouchDB.

  • Ventajas: Flexibilidad en el esquema, facilidad para manejar datos semiestructurados.

  • Desventajas: Menor consistencia en algunas implementaciones comparado con RDBMS.

2. Bases de Datos de Clave-Valor

  • Descripción: Almacenan datos como pares de clave-valor, lo que permite accesos rápidos a los datos mediante una clave única.

  • Ejemplos: Redis, DynamoDB.

  • Ventajas: Simplicidad y alta velocidad de acceso.

  • Desventajas: Limitaciones en la complejidad de las consultas.

3. Bases de Datos de Columnas

  • Descripción: Almacenan datos en formato de columnas, lo que es eficiente para consultas analíticas y de agregación.

  • Ejemplos: Apache Cassandra, HBase.

  • Ventajas: Alta eficiencia en consultas de agregación, escalabilidad horizontal.

  • Desventajas: Complejidad en el diseño del esquema.

4. Bases de Datos de Grafos

  • Descripción: Almacenan datos en forma de grafos, lo que permite representar relaciones complejas entre datos.

  • Ejemplos: Neo4j, Amazon Neptune.

  • Ventajas: Eficiencia en la consulta de relaciones complejas, adecuado para análisis de redes y grafos.

  • Desventajas: Complejidad en la gestión y consulta de grafos grandes.

Arquitectura de Bases de Datos NoSQL

La arquitectura de las bases de datos NoSQL puede variar significativamente según el tipo y la implementación específica, pero generalmente incluye los siguientes componentes:

  1. Nodo: Unidad básica de almacenamiento y procesamiento en la base de datos.

  2. Cluster: Conjunto de nodos que trabajan juntos para proporcionar escalabilidad y alta disponibilidad.

  3. Partición: División de los datos en múltiples nodos para balancear la carga y mejorar el rendimiento.

  4. Replica: Copia de los datos en diferentes nodos para garantizar la disponibilidad y la tolerancia a fallos.

Seguridad en Bases de Datos NoSQL

La seguridad en las bases de datos NoSQL es crucial para proteger los datos sensibles y asegurar la integridad del sistema. A continuación, se describen algunas prácticas y técnicas clave:

1. Control de Acceso

  • Descripción: Implementación de autenticación y autorización para restringir el acceso a los datos.

  • Técnicas:

    • Autenticación: Uso de credenciales para verificar la identidad de los usuarios.

    • Autorización: Asignación de permisos específicos a usuarios o roles para acceder a ciertos datos y realizar ciertas operaciones.

2. Encriptación

  • Descripción: Protección de datos sensibles mediante el cifrado, tanto en tránsito como en reposo.

  • Técnicas:

    • Cifrado en Reposo: Protección de datos almacenados en la base de datos.

    • Cifrado en Tránsito: Protección de datos mientras se transfieren entre el cliente y el servidor.

3. Auditoría y Registro

  • Descripción: Monitoreo y registro de las actividades en la base de datos para detectar y prevenir accesos no autorizados.

  • Técnicas:

    • Logging: Registro de todas las operaciones y accesos a la base de datos.

    • Alertas: Configuración de alertas para actividades sospechosas o inusuales.

4. Configuración Segura

  • Descripción: Asegurar que la base de datos esté configurada de manera segura desde el inicio.

  • Técnicas:

    • Deshabilitar Acceso Anónimo: Asegurarse de que todas las conexiones requieran autenticación.

    • Configuración de Redes: Restringir el acceso a la base de datos mediante la configuración de reglas de firewall y listas blancas de IP.

Vulnerabilidades Comunes en Bases de Datos NoSQL

1. Inyección NoSQL

  • Descripción: Similar a la inyección SQL, pero específica para bases de datos NoSQL. Permite a un atacante manipular consultas NoSQL mediante la inserción de código malicioso.

  • Ejemplo:

    db.users.find({ username: username, password: password });

    Si los datos del usuario no se validan adecuadamente, un atacante podría manipular la consulta.

2. Autenticación Débil

  • Descripción: Uso de credenciales predeterminadas o débiles que permiten a los atacantes acceder a la base de datos.

  • Ejemplo: Muchos sistemas de NoSQL vienen con cuentas predeterminadas que no se cambian después de la instalación.

3. Configuración Incorrecta

  • Descripción: Configuraciones inseguras que permiten accesos no autorizados o la exposición de datos sensibles.

  • Ejemplo: Instancias de MongoDB abiertas en Internet sin autenticación habilitada.

Medidas de Mitigación

1. Validación de Entrada

  • Descripción: Asegurarse de que todos los datos proporcionados por el usuario sean validados y sanitizados.

  • Técnicas: Utilizar bibliotecas de validación de datos y evitar la concatenación directa de datos de usuario en consultas.

2. Autenticación y Autorización Fuertes

  • Descripción: Implementar mecanismos de autenticación y autorización robustos.

  • Técnicas: Utilizar autenticación multifactor (MFA) y roles de usuario con privilegios mínimos necesarios.

3. Configuración Segura

  • Descripción: Asegurar que la base de datos esté configurada de manera segura desde el inicio.

  • Técnicas: Deshabilitar el acceso remoto no autenticado, cambiar credenciales predeterminadas y aplicar actualizaciones de seguridad regularmente.

4. Monitoreo y Auditoría

  • Descripción: Implementar sistemas de monitoreo y auditoría para detectar y responder rápidamente a intentos de acceso no autorizados.

  • Técnicas: Configurar logs detallados y utilizar herramientas de monitoreo para alertar sobre actividades sospechosas.

Herramientas para Detectar y Explotar Vulnerabilidades en NoSQL

1. NoSQLMap

  • Descripción: Herramienta para la evaluación de seguridad de bases de datos NoSQL.

  • Funcionalidad: Detecta y explota vulnerabilidades específicas de bases de datos NoSQL como MongoDB y CouchDB.

2. MongoDB Security Tools

  • Descripción: Herramientas específicas para auditar y asegurar instancias de MongoDB.

  • Funcionalidad: Verifica configuraciones de seguridad, autenticación y autorización.

3. Burp Suite

  • Descripción: Plataforma para pruebas de seguridad de aplicaciones web.

  • Funcionalidad: Intercepta y modifica solicitudes y respuestas HTTP, permitiendo detectar y explotar inyecciones NoSQL.

AnteriorSQLSiguientePuerto 6379: Redis

Última actualización hace 11 meses

¿Te fue útil?