Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ODBParser — Outil OSINT pour rechercher, analyser et extraire uniquement les répertoires Elasticsearch et MongoDB ouverts contenant les données exposées qui vous intéressent. | Kitploit
Outils/GitHubGitHub/citcheese/odbparser
OSINT (Renseignement de Sources Ouvertes)Scanners de VulnérabilitésExfiltration de DonnéesCollecte d'InformationsSécurité des Bases de Données
GitHubcitcheese/odbparser

ODBParser

Outil OSINT pour rechercher, analyser et extraire uniquement les répertoires Elasticsearch et MongoDB ouverts contenant les données exposées qui vous intéressent.

Voir le dépôt
477il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ODBParser

TL;DR

ODBParser est un outil pour rechercher des informations personnelles identifiables (PII) exposées dans des bases de données ouvertes.

À utiliser UNIQUEMENT pour identifier les PII exposées et avertir les propriétaires de serveurs d'une maintenance irresponsable des bases de données
OU pour interroger des bases de données pour lesquelles vous avez l'autorisation d'accéder !

VEUILLEZ UTILISER DE MANIÈRE RESPONSABLE

Qu'est-ce que c'est ?

J'ai écrit cet outil car je voulais créer un outil OSINT tout-en-un pour rechercher, analyser et analyser les bases de données ouvertes afin d'identifier les fuites de PII sur des serveurs tiers. D'autres outils semblent soit uniquement rechercher des bases de données ouvertes, soit les vider une fois que vous les avez identifiées, puis récupérer les données sans discernement. L'outil a grandi à partir d'une ou deux fonctions pour devenir ce qui se trouve dans ce dépôt, donc le code n'est pas aussi propre et joli qu'il pourrait l'être.

Fonctionnalités

Pour identifier les bases de données ouvertes, vous pouvez :

  • interroger Shodan et BinaryEdge en utilisant tous les paramètres possibles (filtrer par pays, numéro de port, etc.)
  • spécifier une seule adresse IP
  • charger un fichier contenant une liste d'adresses IP
  • coller une liste d'adresses IP depuis le presse-papiers

Options de vidage :

  • analyser toutes les bases de données/collections pour identifier les données que vous spécifiez
  • tout récupérer sur le serveur
  • récupérer un seul index/collection
  • Utilisez ctrl+c pour ignorer le vidage d'un certain index

Post-traitement :

  • convertir les vidages JSON en CSV
  • supprimer les colonnes inutiles des CSV

Autres fonctionnalités :

  • garde une trace de toutes les adresses IP et bases de données que vous avez interrogées, ainsi que des informations sur chaque serveur.
  • maintient un fichier de statistiques avec le nombre d'IP interrogées, le nombre de bases de données analysées et le nombre d'enregistrements vidés.
  • convertir les vidages JSON que vous possédez déjà en CSV
  • pour chaque base de données dont le nombre total d'enregistrements dépasse votre limite, le script crée une entrée dans un fichier spécial accompagnée de 5 enregistrements échantillons afin que vous puissiez examiner et décider si la base de données vaut la peine d'être récupérée.
  • La sortie par défaut est un fichier JSON avec un objet JSON par ligne. Vous pouvez choisir de produire un fichier JSON « correct » en utilisant le drapeau « properjson ».
  • Vous pouvez convertir les fichiers en CSV à la volée ou ne convertir que certains fichiers après la fin de l'exécution (je recommande la seconde option). Les fichiers JSON convertis seront déplacés vers un dossier nommé « JSON backups » dans le même répertoire. REMARQUE : Lors de la conversion en CSV, le script supprime les lignes en double exactes et supprime les colonnes et les lignes où toutes les valeurs sont NaN, car c'est ce que je voulais faire. N'hésitez pas à modifier la fonction si vous préférez une copie exacte du fichier JSON.
  • Windows UNIQUEMENT Si le script renvoie un très grand nombre d'index contenant le champ qui vous intéresse, le script liste les noms des bases de données, fait une pause et vous donne dix secondes pour décider si vous souhaitez extraire toutes les données de chaque index, car j'ai constaté que si trop de bases de données sont renvoyées même après avoir spécifié les champs souhaités, il y a de fortes chances que les données soient factices ou des journaux inutiles, et vous pouvez généralement le déterminer à partir du nom. Si vous n'agissez pas dans les 10 secondes, le script videra tous les index.
  • comme vous l'avez peut-être remarqué, beaucoup de personnes scannent les bases de données MongoDB et les prennent en otage, changeant souvent leur nom en quelque chose comme « TO_RESTORE_EMAIL_XXXRESTORE.COM ». Le scraper MongoDB ignorera toutes les bases de données et collections qui ont été compromises en vérifiant le nom de la base de données/collection par rapport à une liste de chaînes indiquant une compromission.
  • Le script est assez verbeux (peut-être trop), mais j'aime voir ce qui se passe. N'hésitez pas à désactiver les instructions d'affichage si vous préférez.

Personnalisation

Consultez le fichier odbconfig.py pour spécifier vos paramètres, car le but est vraiment d'exposer les données qui vous intéressent. J'ai fourni quelques exemples dans le fichier de configuration. Amusez-vous avec !

Vous pouvez :

  • spécifier les noms d'index ou de collections que vous souhaitez collecter en indiquant des sous-chaînes dans le fichier de configuration. Par exemple, si vous avez le terme « client », le script extraira l'index appelé « clients » ou « client_data ». Je recommande de laisser ces listes vides car vous ne savez pas comment s'appelleront les bases de données qui vous intéressent, et de spécifier plutôt les champs qui vous intéressent.
  • spécifier les champs qui vous intéressent : si vous voulez uniquement récupérer les index ES qui contiennent « email » dans un nom de champ, par exemple « user_emails », vous pouvez le faire. Si vous voulez vous assurer que l'index contient au moins 2 champs qui vous intéressent, vous pouvez également le faire. Ou si vous voulez tout récupérer, quels que soient les champs présents, vous pouvez aussi le faire.
  • spécifier les index que vous ne voulez PAS, par exemple les noms d'index système et autres généralement utilisés pour la journalisation de base. Des exemples sont fournis dans le fichier de configuration.
  • outrepasser la configuration et tout récupérer sur un serveur
  • spécifier la sortie (par défaut JSON, vous pouvez choisir CSV)
  • définir la taille minimale et maximale de la base de données que le script videra par défaut, et vous pouvez utiliser un drapeau pour outrepasser le nombre maximum de documents au cas par cas.

Installation et prérequis

  • Clonez ou téléchargez sur votre machine
  • Obtenez des clés API pour Shodan et/ou BinaryEdge
  • Configurez les paramètres dans le fichier ODBconfig.py
  • Installez les dépendances à partir du fichier

Je suggère de créer un environnement virtuel pour ODBParser afin d'éviter tout problème de versions de modules incorrectes. Remarque : Testé UNIQUEMENT sur Python 3.7.3 et Windows 10.

VEUILLEZ UTILISER DE MANIÈRE RESPONSABLE

Prochaines étapes et problèmes connus

  • nettoyer un peu plus le code
  • multithreader divers processus
  • étendre à d'autres types de bases de données
  • ajouter d'autres moteurs de recherche de répertoires ouverts (Zoomeye, etc.)
  • impossible de faire défiler au-delà de la première page pour certaines instances ES en raison du fonctionnement d'ES <2.0. Toute aide est appréciée ! Je pense avoir corrigé cela. Ouvrez un problème si vous obtenez des erreurs de scrollid.

Utilisation

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.
Télécharger l’outil