Cómo descubrir las bases de datos abiertas de MongoDB y Elasticsearch

Hace algún tiempo, entre los investigadores de seguridad, estaba muy "de moda" encontrar almacenamientos en la nube de AWS mal configurados con varios tipos de información confidencial. En ese momento, incluso publiqué una pequeña nota sobre cómo se descubre el almacenamiento en la nube abierta de Amazon S3 .


Sin embargo, el tiempo pasa y el foco en la investigación se ha desplazado a la búsqueda de bases de datos de dominio público no seguras y expuestas. Más de la mitad de los casos conocidos de grandes filtraciones de datos durante el año pasado son filtraciones de bases de datos abiertas.



Hoy trataremos de descubrir cómo los investigadores de seguridad descubren esas bases de datos ...


Descargo de responsabilidad obligatorio: este artículo no aborda ni plantea problemas legales y éticos relacionados con la búsqueda e identificación de bases de datos disponibles públicamente. Toda la información a continuación debe considerarse únicamente como educativa.

No "descubriré América" ​​si digo que las principales herramientas para buscar bases de datos abiertas son los motores de búsqueda especializados Shodan.io, BinaryEdge.io y Censys.io. Solo tomaré nota de que estos no son servicios gratuitos, y usted debe pagar por el acceso a los resultados de búsqueda completos (en el caso de Shodan es de $ 59 / mes, BinaryEdge - $ 50 / mes, y para Censys - $ 99 / mes para los paquetes básicos mínimos). Las versiones gratuitas de los motores de búsqueda limitan severamente el número de resultados en la emisión.


Además de la clásica experiencia de búsqueda similar a Google que usa la función de búsqueda, estos motores de búsqueda brindan la capacidad de conectarse a ellos a través de la API. El afortunado propietario de una suscripción paga recibirá una clave API. Esto permite que uno facilite significativamente la tarea de limpiar el montón de basura de búsqueda. He proporcionado una lista de scripts útiles y programas de automatización de búsqueda que usan claves API al final de este artículo.


Echemos un vistazo al ejemplo del motor de búsqueda Shodan: cómo encontrar bases de datos abiertas MongoDB y Elasticsearch.


La solicitud más simple y obvia que pide un intento es "MongoDB":



De una captura de pantalla anterior, podemos ver que esta solicitud devolvió todos los servidores MongoDB indexados (en el puerto predeterminado 27017). Además, la mayoría de ellos (los primeros tres en la captura de pantalla) serán bases de datos cerradas que requieren credenciales de cuenta. No es exactamente lo que nos interesa encontrar. Más precisamente, no es interesante en absoluto.


Vamos a complicar un poco la consulta usando los filtros de búsqueda “todos:" información del servidor mongodb "todos:" métricas "”:



Los resultados se ven mucho mejor. Todas las bases de datos encontradas estaban disponibles gratuitamente en el momento en que el motor de búsqueda las indexó. Es muy probable que podamos conectarnos a las direcciones IP especificadas utilizando cualquier administrador para MongoDB (por ejemplo, NoSQL Manager para MongoDB o Studio 3T para MongoDB).


Para encontrar instancias de MongoDB no autenticadas que también actúen como servidores de almacenamiento de archivos, puede intentar usar la consulta "puerto: 27017 -todos:" parcialmente "todos:" archivos fs. "


Se puede limitar la búsqueda a cualquier país. Digamos que busque los MongoDB abiertos en China: (consulte "todos:" información del servidor mongodb "todos:" métricas "país:" cn "”):



Para buscar bases de datos abiertas de Elasticsearch, es conveniente utilizar la consulta “puerto:" 9200 "todos:" índices elásticos "”:



Para imponer filtros más complejos (restricciones en el tamaño de la base de datos, la fecha del servidor en el índice, etc.) en los resultados de búsqueda, se pueden usar scripts y programas especializados. Para hacer esto, uno necesitará acceso pagado y una clave API, como escribí anteriormente.


Aquí hay una pequeña lista de enlaces que pueden ser útiles:


  • cli.shodan.io es la consola oficial de Shodan.
  • github.com/woj-ciech/LeakLooker es un programa de Python para buscar bases de datos abiertas (MongoDB, CouchDB, Elasticsearch, etc.).
  • lampyre.io es una interfaz gráfica muy poderosa (¡y todavía muy defectuosa!) para buscar y visualizar lo que encuentra. Tiene plantillas integradas para la búsqueda de MongoDB y mucho más. Está en pruebas beta con todas las consecuencias que implica ...

Source: https://habr.com/ru/post/443132/


All Articles