PDF de programación - mongoDB LOL

Imágen de pdf mongoDB LOL

mongoDB LOLgráfica de visualizaciones

Actualizado el 18 de Junio del 2021 (Publicado el 31 de Marzo del 2021)
992 visualizaciones desde el 31 de Marzo del 2021
20,5 MB
82 paginas
Creado hace 8a (01/01/2016)
MONGOLOL

Whoami
class PedroC:

def __init__(self):

self.name = ‘Pedro Candel’
self.email = ‘[email protected]
self.nickname = ‘@NN2ed_s4ur0n’
self.role = ‘Security Researcher’
self.interest = [ ‘Reversing’, ‘Malware’, ‘Offensive Security’ ]
self.member_of = [ ‘NavajaNegra’, ‘mlw.re’, ‘OWASP’ ]

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

General Concepts

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Introducción
• MongoDB es un sistema gestor de

base de datos orientado a
documentos del tipo NoSQL (Not
Only SQL) multiplataforma

• Desde 2009 inicialmente
desarrollado por 10gen

• Más de 9 millones de descargas

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Características generales
• No usan SQL ya que no son bases de

datos relacionales

• No se necesitan estructuras fijas

(tablas, columnas etc.)

• En general no soportan ACID

(Atomicity, Consistency, Isolation y
Durability)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Características generales
• Lo que guardamos en la base de

datos son documentos

• MongoDB últimamente está muy de

moda en el mundo del desarrollo

• Tod@s hacemos de sysadmins,

desarrolladores y “hackers”

• Es necesario conocer DevSecOps

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Características generales
• MongoDB guarda los documentos en

BSON (implementación binaria del
JSON)

• Los documentos se guardan en

colecciones, que podrían asemejarse
a las tablas que conocemos de los
sistemas relacionales

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Características generales
• La diferencia principal es que los

documentos no tienen porque tener
los mismos campos e incluso los
tipos de datos pueden ser
diferentes

• No existe un esquema definido

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Características generales
• En definitiva MongoDB es un sistema

mucho más flexible

• Como no hay restricciones, la lógica
principal para controlar la integridad
de los datos, recaerá en la aplicación

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
• Descargar de

https://www.mongodb.org/downloa
ds#production la última versión
(Current Stable Release: 3.2.1)
• Tip: This distribution does not

include SSL encryption

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
wget
https://fastdl.mongodb.org/osx
/mongodb-osx-x86_64-3.2.0.tgz
tar -zxvf mongodb-osx-x86_64-
3.2.0.tgz
cd mongodb-osx-x86_64-
3.2.0/bin

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
./mongod
MongoDB starting : pid=21757
port=27017 dbpath=/data/db 64-
bit host=MAWILIN
mkdir -p ./data/db
./mongod --dbpath ./data/db
waiting for connections on
port 27017

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
netstat –an | grep 27017
tcp4 0 0 *.27017 *.* LISTEN

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
• MongoDB no requiere de ningún

proceso de instalación

• Para ejecutar una instancia con los

valores por defecto, tampoco se
necesita configuración

• Todo reside con la ejecución del

binario del demonio

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Instalación de MongoDB
./mongod [--help]
./mongod --port 26116

Cliente:
./mongo

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Uso de MongoDB
• Operaciones de consulta
• Operaciones de actualización de

datos CRUD (Create, Read, Update,
Delete)

• Manejo de índices
• Consultas de agregación (Map-

Reduce y Aggregation Framework)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
• Alta disponibilidad con réplicas:
§ Servidor principal: el único que

acepta modificación o inserción de
datos. Mantiene un log
denominado oplog

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB

§ Servidor(es) secundario(s): se

pueden usar para consultar datos,
pero nunca para hacer
modificaciones directamente
sobre ellos

§ Servidores con prioridad 0
§ Servidor oculto (hidden)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB

§ Servidor retardado (delayed)
§ Árbitro
§ Oplog

• Consultas sobre la réplica:

db.getReplicationInfo()

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
• Podemos consultarlos con la consola

web incorporada de MondoDB

• Añadir 1000 al puerto por defecto

donde escucha

• Es necesario añadir –rest a mongod

para habilitar todas las funciones
para acceder por API REST

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
./mongod --dbpath ./data/db
–rest
http://localhost:28017/

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
• OpLog:

§ MongoDB es capaz de replicarse

entre servers de forma eficiente y
transparente

§ Estos se comunican entre si para
mantener los datos del conjunto
de réplicas siempre actualizados

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
use local
db.oplog.rs.find().pretty();
rs.status()

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
• Fragmentación (Sharding):

§ El sharding es una herramienta

muy útil para balancear la carga de
datos entre servidores

§ La elección de la clave por la que

se realizará el sharding (shard key)
es muy importante

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB

§ En MongoDB, el tamaño de las

particiones no se mide en número
de documentos, si no en MB

§ Por defecto un shard tiene un

tamaño máximo de 64 MB,
aunque es algo que podemos
configurar

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB
• GridFS:

§ Es una abstracción de un sistema

de ficheros para MongoDB

§ Empleado para guardar contenido

generado por los usuarios

§ Separación en chunks de 256 KB

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB

§ Permite guardar documentos

mayores de 16 MB

§ No restringe las limitaciones de los

sistemas de ficheros

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Administración de MongoDB

§ Implementado con 2 colecciones

show collections;
fs.chunks
fs.files
system.indexes

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Disclaimer

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

No se trata de una vulnerabilidad,
simplemente se trata de una mala o
débil práctica de configuración [de

seguridad] cuando queda expuesta la IP
pública de un servidor sin filtrado y/o
protección permitiendo el acceso por

defecto sin autenticación

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Otros sistemas de Bases de Datos como

Redis, Memcached, ElasticSearch,
CouchDB, Riak, Cassandra, etc...

también se encuentran expuestos sin
autenticación o con credenciales por

defecto

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
• P.e. ElasticSearch ha permitido
"dynamic scripting" ejecutándo
código en el servidor por defecto
• Primera "feature" comunicada en
2012 por Roman Shtylman SERVER-
4216

• https://jira.mongodb.org/browse/SE

RVER-4216

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Searching

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Búsqueda de instancias
• Escaneo de rangos IPv4/IPv6 en

Internet: Caos!

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Búsqueda de instancias


Internet Mapping Project, Bell
Labs/Lumeta, 1998+
IPv4 Census 2003-2006


• EFF SSL Observatory 2014

• RIPE Atlas (slightly different)
• Critical.IO, 2012-2013

Internet Census 2012 (the botnet)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Búsqueda de instancias
• University of Michigan (scans.io)
• Shadowserver
• ErrataSec (R. Graham / masscan)
• ZMAP
• Rapid7, Project Sonar

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Búsqueda de instancias
• Shodan

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Global

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Distribución por Países

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Organizaciones (ISPs)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Versiones

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Dominios

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL
Sistema Operativo de servidor

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Data breach

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Otras investigaciones
• 30.000 instancias con

aproximadamente 600 TB (595,2 TB)
de datos expuestos (Datos en Julio
de 2015)

• Chris Vickery reportó reportó 25
millones de cuentas expuestas en
bases de datos sin seguridad

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Otras investigaciones
• Aproximadamente 13 millones de
cuentas asociadas a MacKeeper y
sus desarrolladores Kromtech
Alliance

• Hello Kitty (3,3 Millones de cuentas)
• Video Chat OkHello (2,6 Millones de

cuentas)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Otras investigaciones
• Online Gaming site Slingo (2,5

Millones de cuentas)
iFit (570.000 usuarios)



sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Información expuesta
• Nombres
• Direcciones de correo electrónico
• Códigos postales
• Direcciones IP
• Usuarios
• Contraseñas


...

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Colecciones más usuales

local
• admin
• db

test
• config
• mydb
• …

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Resultados muy pobres
• GridFS (fs.chunks)

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Spain

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

España

Censored L

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

España

Censored L

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Golismeando datos

Censored L

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

EU

sh3llcon – Santander, 2016

@nn2ed_s4ur0n

MONGOLOL

Track My Droid

sh3llcon – Santander, 2
  • Links de descarga
http://lwp-l.com/pdf19051

Comentarios de: mongoDB LOL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad