Wie Forscher offene MongoDB- und Elasticsearch-Datenbanken entdecken

Vor einiger Zeit war es unter Sicherheitsforschern sehr „in Mode“, falsch konfigurierte AWS-Cloud-Speicher mit allen Arten von vertraulichen Informationen zu finden. Dann habe ich sogar eine kleine Notiz darüber veröffentlicht, wie der offene Cloud-Speicher von Amazon S3 entdeckt wird.


Die Zeit vergeht jedoch und der Schwerpunkt der Forschung hat sich auf die Suche nach öffentlich verfügbaren Datenbanken verlagert. Mehr als die Hälfte der bekannten Fälle von größeren Datenlecks im letzten Jahr sind Lecks aus offenen Datenbanken (eine Überprüfung der Lecks für 2018 hier und hier ).



Heute werden wir versuchen zu verstehen, wie solche Datenbanken von Sicherheitsforschern erkannt werden ...


Erforderlicher Haftungsausschluss: In diesem Artikel werden keine rechtlichen und ethischen Fragen im Zusammenhang mit der Suche und Identifizierung öffentlich verfügbarer Datenbanken behandelt oder aufgeworfen. Alle folgenden Informationen sollten ausschließlich als lehrreich und informativ betrachtet werden.

Ich werde Amerika nicht entdecken, wenn ich sage, dass die wichtigsten Tools zum Auffinden offener Datenbanken spezialisierte Suchmaschinen sind, Shodan und Censys . Ich muss sofort sagen, dass dies keine kostenlosen Dienste sind und Sie Ihre ehrlich verdienten Nicht-Rubel für den Zugriff auf die vollständigen Suchergebnisse bezahlen müssen (im Fall von Shodan sind es 59 USD / Monat und für Censys 99 USD / Monat, und dies gilt nur für die Mindestgrundpakete). Kostenlose Versionen von Suchmaschinen begrenzen die Anzahl der Ergebnisse in den Suchergebnissen erheblich.


Zusätzlich zur klassischen Google-ähnlichen Suche über die Suchleiste bieten diese Suchmaschinen die Möglichkeit, über die API eine Verbindung zu ihnen herzustellen. Der glückliche Besitzer eines kostenpflichtigen Abonnements erhält seinen API-Schlüssel. Dies macht es möglich, die Aufgabe, einen Haufen Suchmüll aufzusammeln, erheblich zu erleichtern. Ich habe am Ende dieses Artikels eine Liste nützlicher Skripte und Suchautomatisierungsprogramme angegeben, die API-Schlüssel verwenden.


, , GitHub, API-, .


Schauen wir uns die Shodan-Suchmaschine als Beispiel für das Auffinden offener MongoDB- und Elasticsearch-Datenbanken an.


Die einfachste und offensichtlichste Abfrage, die bittet, ist "MongoDB":



Wie aus dem Screenshot ersichtlich, hat diese Anforderung alle indizierten MongoDB-Server an uns zurückgegeben (auf Standardport 27017). Darüber hinaus handelt es sich bei den meisten von ihnen (im Screenshot sind dies die ersten drei) um geschlossene Datenbanken, für deren Verbindung Konten erforderlich sind. Und das interessiert uns nicht ganz. Genauer gesagt ist dies überhaupt nicht der Fall.


Lassen Sie uns die Abfrage mit den Suchfiltern "all:" mongodb server information "all: "metrics" "etwas komplizieren:



Das Ergebnis sieht schon viel besser aus. Alle gefundenen Datenbanken waren zu dem Zeitpunkt frei verfügbar, als sie von der Suchmaschine indiziert wurden. Mit hoher Wahrscheinlichkeit können Sie mit einem Manager für MongoDB (z. B. NoSQL Manager für MongoDB oder Studio 3T für MongoDB) unter den angegebenen IP-Adressen eine Verbindung zu ihnen herstellen.


Sie können die Suche auf ein Land beschränken. Angenommen, wir suchen nach offenen MongoDBs in China (Abfrage "all:" mongodb server information "all: "metrics" country: "cn" "):



Um nach geöffneten Elasticsearch-Datenbanken zu suchen, verwenden Sie bequem die Abfrage "port:" 9200 "all:" elastische Indizes "":



Leider habe ich keine Möglichkeit gefunden, die Suchbedingung in der Suchleiste entsprechend der Größe der Datenbank festzulegen. Wenn Sie wissen, wie das geht (setzen Sie einen Filter für die Parameter "totalSize" oder "sizeOnDisk" in der Suchleiste), schreiben Sie in die Kommentare.


Sie können komplexere Filter (Einschränkungen hinsichtlich der Größe der Datenbank, des Datums, an dem der Server in den Index eingegeben wurde usw.) mit speziellen Skripten und Programmen auf die Suchergebnisse anwenden. Dafür benötigen Sie bereits einen kostenpflichtigen Zugriff und einen API-Schlüssel, wie ich oben geschrieben habe.


Hier ist eine kurze Liste dessen, was nützlich sein könnte:


  • cli.shodan.io ist die offizielle Shodan-Konsole. In russischer Sprache über seine Verwendung kann hier gelesen werden .
  • shodan-manual.com - ein Leitfaden für Shodan auf Russisch.
  • github.com/woj-ciech/LeakLooker ist ein Python-Programm zum Auffinden offener Datenbanken (MongoDB, CouchDB, Elasticsearch usw.).
  • lampyre.io ist eine sehr leistungsfähige (und bislang sehr fehlerhafte!) grafische Oberfläche zum Suchen und Visualisieren der gefundenen Objekte . Es verfügt über integrierte Vorlagen für die Suche in MongoDB und vieles mehr. Es befindet sich im Beta-Test mit allen Konsequenzen ...
  • t.me/dataleak (wenn blockiert, dann tele.click/dataleak ) ist mein bescheidener Telegrammkanal, in dem ich Informationslecks überprüfe und insbesondere darüber schreibe, was Sicherheitsforscher im öffentlichen Bereich finden. Es ist interessant.

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


All Articles