Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ODBParser — OSINT-Tool zum Suchen, Parsen und Dumpen nur der offenen Elasticsearch- und MongoDB-Verzeichnisse, die die Daten enthalten, deren Offenlegung für Sie von Interesse ist. | Kitploit
Tools/GitHubGitHub/citcheese/odbparser
OSINT (Open-Source-Intelligence)SchwachstellenscannerDatenexfiltrationInformationsbeschaffungDatenbanksicherheit
GitHubcitcheese/odbparser

ODBParser

OSINT-Tool zum Suchen, Parsen und Dumpen nur der offenen Elasticsearch- und MongoDB-Verzeichnisse, die die Daten enthalten, deren Offenlegung für Sie von Interesse ist.

Repository anzeigen
4776vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ODBParser

TL;DR

ODBParser ist ein Tool zur Suche nach personenbezogenen Daten (PII), die in offenen Datenbanken offengelegt werden.

NUR um offengelegte personenbezogene Daten zu identifizieren und Serverbetreiber über unverantwortliche Datenbankwartung zu warnen,
ODER um Datenbanken abzufragen, für die Sie Zugriffsberechtigung haben!

BITTE VERANTWORTUNGSVOLL NUTZEN

Was ist das?

Habe dies geschrieben, da ich ein All-in-One-OSINT-Tool erstellen wollte, um offene Datenbanken zu durchsuchen, zu parsen und zu analysieren, um Datenlecks von PII auf Drittanbieter-Servern zu identifizieren. Andere Tools scheinen entweder nur nach offenen Datenbanken zu suchen oder sie zu dumpen, sobald man sie identifiziert hat, und dann wahllos Daten zu sammeln. Aus einer oder zwei Funktionen wurde das, was in diesem Repo ist, daher ist der Code nicht so sauber und hübsch, wie er sein könnte.

Funktionen

Um offene Datenbanken zu identifizieren, können Sie:

  • Shodan und BinaryEdge mit allen möglichen Parametern abfragen (nach Land, Portnummer usw. filtern)
  • eine einzelne IP-Adresse angeben
  • eine Datei mit einer Liste von IP-Adressen laden
  • eine Liste von IP-Adressen aus der Zwischenablage einfügen

Dump-Optionen:

  • parst alle Datenbanken/Sammlungen, um die von Ihnen angegebenen Daten zu identifizieren
  • alles auf dem Server gehostete abgreifen
  • nur einen Index/eine Sammlung abgreifen
  • Verwenden Sie Strg+C, um das Dumpen eines bestimmten Index zu überspringen

Nachbearbeitung:

  • JSON-Dumps in CSV konvertieren
  • unnötige Spalten aus CSV entfernen

Weitere Funktionen:

  • behält den Überblick über alle IP-Adressen und Datenbanken, die Sie abgefragt haben, zusammen mit Informationen zu jedem Server.
  • führt eine Statistikdatei mit der Anzahl der abgefragten IPs, der Anzahl der geparsten Datenbanken und der Anzahl der gedumpten Datensätze.
  • konvertiert bereits vorhandene JSON-Dumps in CSV
  • Für jede Datenbank, deren Gesamtzahl der Datensätze über Ihrem Limit liegt, erstellt das Skript einen Eintrag in einer speziellen Datei zusammen mit 5 Beispieldatensätzen, damit Sie prüfen und entscheiden können, ob die Datenbank es wert ist, abgegriffen zu werden.
  • Die Standardausgabe ist eine zeilenweise getrennte JSON-Datei mit einem JSON-Objekt pro Zeile. Sie können die Ausgabe als „echte“ JSON-Datei ausgeben lassen, indem Sie das Flag „properjson“ verwenden.
  • Sie können die Dateien direkt in CSV konvertieren oder nur bestimmte Dateien nach Abschluss des Laufs konvertieren (ich empfehle Letzteres). Konvertierte JSON-Dateien werden in einen Ordner namens „JSON backups“ im selben Verzeichnis verschoben. HINWEIS: Bei der Konvertierung in CSV entfernt das Skript exakte doppelte Zeilen sowie Spalten und Zeilen, in denen alle Werte NaN sind, weil ich das so wollte. Sie können die Funktion gerne bearbeiten, wenn Sie lieber eine exakte Kopie der JSON-Datei hätten.
  • NUR Windows Falls das Skript eine große Anzahl von Indizes zurückgibt, die das gewünschte Feld enthalten, listet das Skript die Namen der Datenbanken auf, pausiert und gibt Ihnen zehn Sekunden Zeit zu entscheiden, ob Sie alle Daten aus jedem Index abrufen möchten. Ich habe festgestellt, dass, wenn zu viele Datenbanken zurückgegeben werden, selbst nachdem Sie die gewünschten Felder angegeben haben, die Wahrscheinlichkeit hoch ist, dass die Daten gefälscht oder nutzlose Protokolle sind, und Sie können dies normalerweise am Namen erkennen. Wenn Sie nicht innerhalb von 10 Sekunden handeln, wird das Skript jeden Index dumpen.
  • Wie Sie vielleicht bemerkt haben, haben viele Leute nach MongoDB-Datenbanken gescannt und sie als Geisel genommen, oft mit Namen wie „TO_RESTORE_EMAIL_XXXRESTORE.COM.“ Der MongoDB-Scraper ignoriert alle Datenbanken und Sammlungen, die kompromittiert wurden, indem er den Namen der DB/Sammlung mit einer Liste von Strings abgleicht, die auf Kompromittierung hinweisen.
  • Das Skript ist recht ausführlich (vielleicht zu ausführlich), aber ich mag es zu sehen, was passiert. Sie können die Print-Anweisungen gerne stummschalten, wenn Sie dies bevorzugen.

Anpassung

Siehe die Datei odbconfig.py, um Ihre Parameter festzulegen, denn der eigentliche Sinn des Spiels ist es, die Daten zu exponieren, an denen SIE interessiert sind. Ich habe einige Beispiele in der Konfigurationsdatei bereitgestellt. Spielen Sie damit herum!

Sie können:

  • Geben Sie an, welche Index- oder Sammlungsnamen Sie sammeln möchten, indem Sie Teilstrings in der Konfigurationsdatei angeben. Wenn Sie z.B. den Begriff „client“ haben, ruft das Skript den Index „clients“ oder „client_data“ ab. Ich empfehle, diese Listen leer zu lassen, da Sie nie wissen, wie die Datenbanken heißen, die Sie betreffen, und stattdessen die Felder anzugeben, die Sie interessieren.
  • Geben Sie an, welche Felder Sie interessieren: Wenn Sie nur ES-Indizes abrufen möchten, die „email“ in einem Feldnamen haben, z.B. „user_emails“, können Sie das tun. Wenn Sie sicherstellen möchten, dass der Index mindestens 2 Felder hat, die Sie interessieren, können Sie das auch. Oder wenn Sie einfach alles abrufen möchten, egal welche Felder vorhanden sind, können Sie das auch.
  • Geben Sie an, welche Indizes Sie NICHT möchten, z.B. Systemindexnamen und andere, die normalerweise für grundlegendes Logging verwendet werden. Beispiele finden Sie in der Konfigurationsdatei.
  • Konfiguration überschreiben und alles auf einem Server abrufen
  • Ausgabe festlegen (Standard ist JSON, CSV kann gewählt werden)
  • Legen Sie die minimale und maximale Größe der Datenbank fest, die das Skript standardmäßig dumpen wird, und Sie können ein Flag setzen, um die maximale Dokumentzahl von Fall zu Fall zu überschreiben.

Installation und Anforderungen

  • Klonen oder herunterladen auf den Rechner
  • API-Schlüssel für Shodan und/oder BinaryEdge besorgen
  • Parameter in der Datei ODBconfig.py konfigurieren
  • Anforderungen aus der Datei installieren

Ich empfehle, eine virtuelle Umgebung für ODBParser zu erstellen, um Probleme mit falschen Modulversionen zu vermeiden. Hinweis: Nur getestet mit Python 3.7.3 und Windows 10.

BITTE VERANTWORTUNGSVOLL NUTZEN

Nächste Schritte und bekannte Probleme

  • Code etwas mehr bereinigen
  • verschiedene Prozesse multithreaden
  • auf andere Datenbanktypen erweitern
  • andere Suchmaschinen für offene Verzeichnisse hinzufügen (Zoomeye, etc.)
  • Kann bei bestimmten ES-Instanzen nicht über die erste Seite hinaus scrollen, aufgrund der Funktionsweise von ES <2.0. Freue mich über jede Hilfe! Habe das ziemlich sicher behoben. Öffne ein Issue, wenn Scroll-ID-Fehler auftreten

Nutzung

root@kitploit:~
    Examples: python ODBParser.py -cn US -p 8080 -t users --elastic --shodan --csv --limit 100
              python ODBParser.py -ip 192.168.2:8080 --mongo --ignorelogs --nosizelimits

    Damage to-date: 0 servers parsed | 0 databases dumped | 0 records pulled
    _____________________________________________________________________________


optional arguments:
  -h, --help            show this help message and exit

Query Options:
  --shodan, -sh         Add this flag if using Shodan. Specify ES or MDB w/
                        flags.
  --binary, -be         Add this flag if using BinaryEdge. Specify ES or MDB
                        w/ flags.
  --ip , -ip            Query one server. Add port like so '192.165.2.1:8080'
                        or will use default ports for each db type. Add ES or
                        MDB flags to specify parser.
  --file , -f           Load line-separated IPs from file. Add port or will
                        assume default ports for each db type. Add ES or MDB
                        flags to specify parser.
  --paste, -v           Query line-separated IPs from clipboard. Add port or
                        will assume default ports for each db type, e.g. 9200
                        for ES. Add ES or MDB flags to specify parser.

Shodan/BinaryEdge Options:
  --limit , -l          Max number of results per query. Default is
                        500.
  --port , -p           Filter by port.
  --country , -cn       Filter by country (two-letter country code).
  --terms , -t          Enter any additional query terms you want here, e.g.
                        'users'

Dump Options:
  --mongo, -mdb         Use for IP, Shodan, BinaryEdge & Paste methods to
                        specify parser.
  --elastic, -es        Use for IP, Shodan, BinaryEdge & Paste methods to
                        specify parser.
  --properjson, -pj     Add this flag if would like out put to be proper JSON
                        file. Default is one JSON string object per line.
  --database , -db      Specify database you want to grab. For MDB must be in
                        format format 'db:collection'. Use with IP arg & 'es'
                        or 'mdb' flag
  --getall, -g          Get all indices regardless of fields and
                        collection/index names (overrides selections in config
                        file).
  --ignorelogs          Connect to a server you've already checked out.
  --nosizelimits, -n    Dump index no matter how big it is. Default max doc
                        count is 800,000.
  --csv                 Convert JSON dumps into CSV format on the fly. (Puts
                        JSON files in backup folder in case there is issue
                        with coversion)

CSV/Post-processing Options:
  --convertToCSV , -c   Convert JSON file or folder of JSON dumps to CSVs
                        after the fact. Enter full path or folder name in
                        current working directory
  --dontflatten         Use if run into memory issues converting JSON files to
                        CSV during post-processing.
  --basic               Use with --convertToCSV flag if your JSON dumps are
                        not true JSON files, but rather line separated JSON
                        objects that you got from other sources.
  --dontclean, -dc      Choose if want to keep useless data when convert to
                        CSV. See docs for more info.
Tool herunterladen