viernes, febrero 05, 2016

Big Data Security Tales: ¡Vigila que tu MongoDB no le dé tus datos a cualquiera! (Level 100)

Ayer por la noche andaba revisando uno de mis temas favoritos, las cadenas de conexión a las bases de datos, cuando me topé con algo que al principio no pensé que fuera tan preocupante, pero que visto lo visto merece la pena que os deje por aquí una referencia a ello para que lo vigiléis. Se trata de la existencia de múltiples bases de datos MongoDB que exponen los datos que almacenan sin que sea necesario conocer ningún usuario ni contraseña del sistema.

Figura 1: ¡Vigila que tu MongoDB no le dé tus datos a cualquiera!

Me topé con ello buscando otras cosas por Shodan para hacer un poco de Hacking con Buscadores, pero al revisar los resultados que devolvió en la consulta que realicé, vi que este buscador tiene indexadas todas las bases de datos MongoDB que hay por Internet publicadas. Esto no debería ser especialmente reseñable ya que basta con revisar el puerto 27017 (Well-Known port para MongoDB) para todas las direcciones IPv4 e IPv6 que Shodan localice para saber si hay o no una base de datos MongoDb.

Figura 2: Información de las bases de datos en el servidor MongoDB mostrada por Shodan

Sin embargo, entre los resultados que muestra John Matherly de muchos de los MongoDB aparece el nombre de las bases de datos que están dentro e incluso el tamaño de las mismas. La única explicación plausible a esto es que 1) o la base de datos muestra esa información sin necesidad de conectarse o 2) la base de datos MongoDB permite conexiones anónimas.

Conexiones Anónimas a MongoDB

Las conexiones anónimas son algo muy común en otros servicios, como por ejemplo en los árboles LDAP a los que se puede acceder a mucha información - incluso vía conexiones PHP LDAP Admin -, o con el uso de conexiones con el protocolo SNMPv1 o SNMPv2 en servidores SNMP, así que quise probar si la información que se veía  era por el motivo 1 o por el motivo 2. Solo curiosidad.

Figura 3: Conexión anónima a un servidor MongoDB con Robomongo

Para ello me descargué una herramienta Open Source llamada RoboMongo - que además está solicitando apoyo para que el proyecto continúe vivo - que ofrece un sencillo GUI y realicé algunas conexiones a direcciones IP de las que muestra Shodan como servidores MongoDB. Para hacer la prueba, por supuesto, en la conexión al servidor no seleccioné la opción de autenticarme.

Figura 4: Datos de usuarios y contraseñas en una base de datos en MongoDB

Sorprendentemente, en muchas bases de datos se puede acceder a las instancias de las bases de datos, y con ello a toda la información que contienen. Datos que pueden ser de todo tipo. No es una ni dos las bases de datos MongoDB que permiten acceder de forma anónima sin conexión, sino que son muchas y ofreciendo muchos datos del propio servidor.

Figura 5: Datos del software del servidor sobre el que corre MongoDB

En el caso de los registros de log, se puede ver información de arranque del motor, con datos del tipo de servidor en que está corriendo, con versiones de sistema operativo, versiones de software de motores JavaScript o SSL que pueden exponer vulnerabilidades o con rutas locales que puedan utilizarse con un ataque combinado. 

Figura 6: Usuarios, contraseñas y datos personales como el teléfono

Pero es que en muchos casos están los datos de las aplicaciones, con datos de usuarios, contraseñas, datos personales, etcétera, lo que supone un gran riesgo para la seguridad de las empresas que no hayan fortificado sus bases de datos y permitan las conexiones anónimas al MongoDB.

Figura 7: Cómo funcionan las MongoDB Injection

Si tienes una instancia MongoDB, revisa la configuración de seguridad del motor y las bases de datos, y si tienes alguna aplicación web que tire sobre ellas, revisa este artículo que publicamos en el blog de Eleven Paths sobre las técnicas de MongoDB Injection.
- Big Data Security Tales: ¡Vigila que tu MongoDB no le de tus datos a cualquiera! (Level 100)
- Big Data Security Tales: Cómo funcionan las MongoDB Injection
- Big Data Security Tales: MongoDB y Cassandra (Level 101)

- Big Data Security Tales: Apache Hadoop expuesto por no configurar HUE (Level 102)
- Big Data Security Tales: Django en HUE en modo DEBUG y con Directory Listing (Level 103)
- Big Data Security Tales: Las Interfaces de acceso al HDFS
- Big Data Security Tales: Apache Amabari Default Admin
- Big Data Security Tales: WSO2 Carbon y la ayuda para el Login
- Big Data Security Tales: Los Known-Bugs en WSO2 Carbon Server
- Big Data Security Tales: Kibana & ElasticSearch objetivos del ransomware
- Big Data Security Tales: Apache CouchDB Relax... o no
- Big Data Security Tales: Riak NoSQL Database
Saludos Malignos!

20 comentarios:

n0ipr0cs dijo...

Porque me suena tanto este post con la investigación que realizo S4ur0n desde principio del año pasado y que expuso en su charla hace unos días en la Sh3llCON. :p

Anónimo dijo...

Es que los becarios de 11 caminitos no tienen contenido y se dedican a plagiar proyectos.

Q dijo...

Te suena porque el becario del otro crack ha hecho bien su trabajo: atribuirse el mérito de su inspiración divina sin nombrar de donde salió su inspiración. En fin... lo de siempre.

Chema Alonso dijo...

@Anónimo y Q, como pone el post, lo miré anoche buscando en Shodan "Connection String Errors", ya sabéis, para completar todo lo que he publicado sobre Connection String Attacks desde hace años. Pero vamos, que como bien explico, Shodan ya lo hace y yo solo quise saber cómo lo hacía. Esto no me parece una investigación, ni mucho menos, solo responder a cómo lo hace Shodan. Ni he visto la charla de Sh3llCON y Navajas Negras, por desgracia, que en ambos casos he estado fuera trabajando.

Saludos!

Roberto Bauglir dijo...

También puede ser que alguien más, aparte de S4ur0n, se haya dado cuenta de que hay muchas bases de datos MongoDB sin contraseña en Internet; la investigación que expuso Pedro Candel (S4aur0n) en la Sh3llcon es muy interesante, pero el hayazgo en sí no es algo milagroso (el mismo Pedro expuso que se lo encontró de chiripa, porque estaba a plena vista en Internet). Y tampoco creo que Chema Alonso duerma con Pablo González, como para que se lo cuenten todo.
En el mundillo de la seguridad informática todo el mundo se conoce: no creo que Chema se vaya a poner a plagiar el trabajo de alguien tan conocido como Pedro Candel, teniendo en cuenta que cualquier asistente de la Sh3llcon es un potencial lector de este blog.
Un saludo.

Anónimo dijo...

Vamos a ver señores que ya somos mayorcitos. Se le tiene un aprecio pero cualquiera que tenga un minimo de conocimiento de la comunidad y de su trabajo sabe que un altisimo porcentaje de el es plagio o copiado de compañeros, que durantamente mucho tiempo en su blog los posts eran de otras personas y que su falta de talento lo intenta cubrir con trabajo y adueñandose o silenciando las ideas de otros. Que cada uno haga lo que quiera, a mi lo que me da pena es que la gente joven le pueda tener de referente....

Chema Alonso dijo...

@Anónimo, como pongo en el post, le he dedicado a este post unos 45 minutos. Tal y como lo explico. Buscar en Shodan, ver que indexa las bases datos y bajar un GUI. That´s all. Para eso no necesito, ni yo ni nadie, "plagiar" nada. No seas ridículo.

Mi trabajo, lo tienes en mi doctorado, en mis charlas, en mis papers, en mis posts... No seas tiñosillo.

Saludos!

Anónimo dijo...

En serio, voy a pensar que de verdad te crees lo que dices (cuanto de eso es trabajo original tuyo... me parto)... dicho queda para el que quiera entenderlo. Quizas en algun momento de tu vida cuando te mires en serio al espejo pediras perdon a toda esa gente de la que te has aprovechado... lo dejo aqui... sigamos con la pantomima... bye

hytomify dijo...

y tu talento sr anonimo? aparte de ser un troll, eres alguien?

hytomify dijo...
Este comentario ha sido eliminado por el autor.
Chema Alonso dijo...

@Anónimo, tienes para leer todo en mi blog y no solo me siento afortunado y feliz de haber podido trabajar en esto durante toda mi vida profesional.

Saludos!

s4ur0n dijo...

Por alusiones hacia mi persona, comentaros que lo primero, no existe ningún plagio ni nada parecido. Y que para nada, la investigación de una búsqueda o escaneo masivo, puede atribuirse a si alguien lo ha hecho antes o después de otra persona.

Si Javi (que no estuvo en Sh3llCON) ha querido abrir una guerra, se ha colado porque no sabe ni de lo que va la historia (con todos mis respetos hacia Javi). Lo que se presentó en Sh3llCON, además de haber hecho búsquedas en shodan, masscan, etc... fueron los resultados del report que se entregó a GDT (Grupo de Delitos Telemáticos de la Guardia Civil) sobre los MongoDB que estaban abiertos en España y que afectaban a importantes servicios y empresas. Y se pudo presentar una vez que estaba casi todo cerrado, que ha costado más de 1 año y sólo quedan unas cuantas de las muchísimas que había. También se vieron otras "importantes" pero que no estaban aquí, con datos muy sensibles... nada que no pueda mostrar cualquier persona, sea un becario, sea un doctor, sea quien quiera que sea.

Estamos aquí todos para intentar concienciar e intentar tener los sistemas, desarrollos, etc... lo más seguros posibles, no para hacer el TROLL como algunos han dicho también. Y si no queréis leer el blog de Chema, pues no lo hagáis, pero no vengáis aquí a decir cosas y menos como anónimos.

Y con esto, cierro por mi parte la discusión.

Unknown dijo...

Como joden con sus comentsrios, por que no mejor como activar la autentificacion, crear usuarios y permisos, a eso viene uno como lector, no a leer sus pinches envidias. Troles jodidos.

Unknown dijo...

Como joden con sus comentsrios, por que no mejor como activar la autentificacion, crear usuarios y permisos, a eso viene uno como lector, no a leer sus pinches envidias. Troles jodidos.

n0ipr0cs dijo...

Yo nunca he querido abrir una guerra ni ofender a nadie, simplemente me recordo el post a la charla,se supone que hace tiempo que vivimos en democracia y tenemos libertad de expresión. Yo no he faltado el respeto a nadie, ni he atacado a nadie. Si he ofendido a alguien ha sido de forma involuntaria y pido disculpas.

Bolivar dijo...

indistintamente la fuente es algo que existe, aquí el asunto es que el tema resulta interesante y más si es algo que tiene tiempo en la palestra, que sigan existiendo, por ignorancia o descuido de parte del personal encargado, este tipo de cosas... la labor que nos atañe día a día es leer , investigar, practicar pues y mantenernos así actualizados... gracias por compartir estos asuntos con todos chema. Para todos mis respetos y pues, difundamos y contribuyamos desde nuestras trincheras a mejorar la seguridad de los sistemas.

Anónimo dijo...

Muy buen post Chema, sigue asi.

Unknown dijo...

Gud yof meit. Un saludo fiera!

Unknown dijo...

Gud yof meit. Un saludo fiera!

raul dijo...

suelo ser muy crítico con chema por su histórica inclinación pro-microsoft, nunca te perdonaré haber flameado a todos los linuxeros que estabamos en la 1a o 2a noconname que se celebró en palma , fuiste capaz de defender lo indefendible,IE6 hace unos 10 años... pero en este caso debo reconocer que me he enterado de esta vulnerabilidad gracias a él y mencionar que en españa no vamos sobrados de fuentes fiables sobre seguridad como para querer dar autenticidad exclusiva a una fuente sobre un tema, necesitamos más fuentes y más gente intentando mejorar lo que se hace en este país en temas de seguridad, así que gracias chema.
saludos

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares