Comment découvrir les bases de données ouvertes MongoDB et Elasticsearch

Il y a quelque temps chez les chercheurs en sécurité, il était très «à la mode» de trouver des stockages cloud AWS mal configurés avec différents types d'informations confidentielles. À cette époque, j'ai même publié une petite note sur la découverte du stockage cloud ouvert Amazon S3 .


Cependant, le temps passe et la recherche se concentre sur la recherche de bases de données du domaine public non sécurisées et exposées. Plus de la moitié des cas connus de grandes fuites de données au cours de la dernière année sont des fuites de bases de données ouvertes.



Aujourd'hui, nous allons essayer de comprendre comment ces bases de données sont découvertes par les chercheurs en sécurité ...


Avis de non-responsabilité requis: cet article ne traite pas et ne soulève pas de problèmes juridiques et éthiques liés à la recherche et à l'identification de bases de données accessibles au public. Toutes les informations ci-dessous doivent être considérées uniquement comme pédagogiques.

Je ne «découvrirai pas l'Amérique» si je dis que les principaux outils de recherche de bases de données ouvertes sont les moteurs de recherche spécialisés Shodan.io, BinaryEdge.io et Censys.io. Je vais juste noter que ce ne sont pas des services gratuits, et vous devez payer pour accéder aux résultats de recherche complets (dans le cas de Shodan, c'est 59 $ / mois, BinaryEdge - 50 $ / mois et pour Censys - 99 $ / mois pour les forfaits de base minimum). Les versions gratuites des moteurs de recherche limitent considérablement le nombre de résultats dans l'émission.


En plus de l'expérience de recherche classique de type Google utilisant la fonction de recherche, ces moteurs de recherche offrent la possibilité de s'y connecter via l'API. L'heureux propriétaire d'un abonnement payant recevra une clé API. Cela permet de faciliter considérablement la tâche d'effacement du tas de déchets de recherche. J'ai fourni une liste de scripts utiles et de programmes d'automatisation de la recherche qui utilisent des clés API à la fin de cet article.


Jetons un coup d'œil à l'exemple du moteur de recherche Shodan: comment trouver des bases de données MongoDB et Elasticsearch ouvertes.


La requête la plus simple et la plus évidente qui demande une tentative est «MongoDB»:



À partir d'une capture d'écran ci-dessus, nous pouvons voir que cette demande a renvoyé tous les serveurs MongoDB indexés (sur le port par défaut 27017). De plus, la plupart d'entre eux (les trois premiers de la capture d'écran) seront des bases de données fermées nécessitant des informations d'identification de compte. Ce n'est pas exactement ce que nous voulons trouver. Plus précisément, ce n'est pas du tout intéressant.


Compliquons légèrement la requête en utilisant les filtres de recherche «tous:« informations sur le serveur mongodb »tous:« métriques »»:



Les résultats sont bien meilleurs. Toutes les bases de données trouvées étaient librement disponibles au moment où le moteur de recherche les indexait. Il est très probable que nous pourrons nous connecter aux adresses IP spécifiées à l'aide de n'importe quel gestionnaire pour MongoDB (par exemple, NoSQL Manager pour MongoDB ou Studio 3T pour MongoDB).


Pour rechercher des instances MongoDB non authentifiées qui agissent également comme des serveurs de stockage de fichiers, vous pouvez essayer d'utiliser la requête «port: 27017 -all:« partiellement »all:« fs.files »»


On peut limiter la recherche à n'importe quel pays. Disons pour rechercher les MongoDB ouverts en Chine: (requête «tous:« informations sur le serveur mongodb »tous:« métriques »pays:« cn »»):



Pour rechercher des bases de données ouvertes Elasticsearch, il est pratique d'utiliser la requête "port:" 9200 "all:" indices élastiques "":



Pour imposer des filtres plus complexes (restrictions sur la taille de la base de données, la date du serveur dans l'index, etc.) sur les résultats de la recherche, on peut utiliser des scripts et des programmes spécialisés. Pour ce faire, il faudra un accès payant et une clé API, comme je l'ai écrit ci-dessus.


Voici une petite liste de liens qui pourraient être utiles:


  • cli.shodan.io est la console Shodan officielle.
  • github.com/woj-ciech/LeakLooker est un programme python pour rechercher des bases de données ouvertes (MongoDB, CouchDB, Elasticsearch, etc.).
  • lampyre.io est une interface graphique très puissante (et toujours très boguée!) pour rechercher et visualiser ce que vous trouvez. Il a des modèles intégrés pour la recherche MongoDB et bien plus encore. C'est en beta test avec toutes les conséquences que cela implique ...

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


All Articles