Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ODBParser — Strumento OSINT per cercare, analizzare e scaricare solo le directory aperte di Elasticsearch e MongoDB che contengono i dati che ti interessano esporre | Kitploit
Strumenti/GitHubGitHub/citcheese/odbparser
OSINT (Open Source Intelligence)Scanner di VulnerabilitàEsfiltrazione DatiRaccolta InformazioniSicurezza dei Database
GitHubcitcheese/odbparser

ODBParser

Strumento OSINT per cercare, analizzare e scaricare solo le directory aperte di Elasticsearch e MongoDB che contengono i dati che ti interessano esporre

Vedi Repository
4776 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

ODBParser

In breve

ODBParser è uno strumento per cercare PII esposti in database aperti.

DA USARE SOLO per identificare PII esposti e avvisare i proprietari dei server di una manutenzione irresponsabile del database
OPPURE per interrogare database a cui hai il permesso di accedere!

PER FAVORE, USA IN MODO RESPONSABILE

Cos'è?

L'ho scritto perché volevo creare uno strumento OSINT tutto-in-uno per cercare, analizzare e analizzare database aperti al fine di identificare fughe di PII su server di terze parti. Altri strumenti sembrano o cercare solo database aperti o scaricarli una volta identificati e poi raccogliere dati indiscriminatamente. È cresciuto da una o due funzioni a ciò che è in questo repo, quindi il codice non è così pulito e bello come potrebbe essere.

Caratteristiche

Per identificare database aperti puoi:

  • interrogare Shodan e BinaryEdge usando tutti i parametri possibili (filtra per paese, numero porta, qualsiasi cosa)
  • specificare un singolo indirizzo IP
  • caricare un file con un elenco di indirizzi IP
  • incollare un elenco di indirizzi IP dagli appunti

Opzioni di dump:

  • analizza tutti i database/collezioni per identificare i dati che specifici
  • prendi tutto ciò che è ospitato sul server
  • prendi solo un indice/collezione
  • Usa ctrl+c per saltare il dump di un determinato indice

Post-elaborazione:

  • converti dump JSON in CSV
  • rimuovi colonne inutili dai CSV

Altre funzionalità:

  • tiene traccia di tutti gli indirizzi IP e database che hai interrogato insieme alle informazioni su ciascun server.
  • mantiene un file di statistiche con il numero di IP interrogati, numero di database analizzati e numero di record scaricati
  • converti dump JSON già in tuo possesso in CSV
  • per ogni database con un numero totale di record superiore al tuo limite, lo script crea una voce in un file speciale insieme a 5 record di esempio in modo che tu possa esaminare e decidere se vale la pena prenderlo
  • L'output predefinito è un file JSON separato da righe con un oggetto JSON su ogni riga. Puoi scegliere di avere un file JSON "corretto" usando il flag "properjson"
  • Puoi convertire i file in CSV al volo oppure convertire solo determinati file dopo il completamento dell'esecuzione (consiglio quest'ultimo). I file JSON convertiti verranno spostati in una cartella chiamata "JSON backups" nella stessa directory. NOTA: Quando si converte in CSV, lo script elimina le righe duplicate esatte e rimuove le colonne e le righe in cui tutti i valori sono NaN, perché è quello che volevo fare. Sentiti libero di modificare la funzione se preferisci una copia esatta del file JSON.
  • Solo Windows Se lo script restituisce un numero enorme di indici che hanno il campo che ti interessa, lo script elenca i nomi dei db, si ferma e ti dà dieci secondi per decidere se vuoi procedere a prendere tutti i dati da ogni indice, poiché ho scoperto che se troppi database vengono restituiti anche dopo aver specificato i campi che desideri, c'è una buona possibilità che i dati siano falsi o log inutili e di solito puoi capire dal nome se è il caso. Se non agisci entro 10 secondi, lo脚本 procederà a scaricare ogni indice.
  • come avrai notato, molte persone stanno scansionando database MongoDB e tenendoli in ostaggio, spesso cambiando il nome in qualcosa come "TO_RESTORE_EMAIL_XXXRESTORE.COM". Lo scraper MongoDB ignorerà tutti i database e le collezioni che sono stati compromessi controllando il nome del DB/collezione rispetto a un elenco di stringhe che indicano un compromissione
  • lo script è piuttosto verbose (forse troppo) ma mi piace vedere cosa sta succedendo. Sentiti libero di silenziare le dichiarazioni di stampa se preferisci.

Personalizzazione

Vedi il file odbconfig.py per specificare i tuoi parametri, perché in realtà il nome del gioco è esporre i dati che TI interessano. Ho fornito alcuni esempi nel file di configurazione. Giocaci!

Puoi:

  • specificare quali indici o nomi di collezione vuoi raccogliere specificando sottostringhe nel file di configurazione. Ad esempio, se hai il termine "client", lo script prenderà l'indice chiamato "clients" o "client_data." Raccomando di tenere queste liste vuote poiché non sai mai come si chiameranno i database che ti interessano e invece specificare i campi che ti interessano.
  • specificare quali campi ti interessano: se vuoi solo prendere indici ES che hanno "email" nel nome del campo, ad esempio "user_emails", puoi farlo. Se vuoi assicurarti che l'indice abbia almeno 2 campi che ti interessano, puoi farlo anche tu. Oppure se vuoi semplicemente prendere tutto indipendentemente dai campi presenti, puoi farlo anche tu.
  • specificare quali indici NON vuoi, ad esempio nomi di indici di sistema e altri generalmente usati per il logging di base. Esempi forniti nel file di configurazione.
  • sovrascrivere la configurazione e prendere tutto su un server
  • specificare l'output (predefinito è JSON, puoi scegliere CSV)
  • impostare la dimensione minima e massima del database che lo script scaricherà per impostazione predefinita e puoi impostare un flag per sovrascrivere il limite massimo di documenti caso per caso.

Installazione e Requisiti

  • Clona o scarica sulla macchina
  • Ottieni le chiavi API per Shodan e/o BinaryEdge
  • configura i parametri nel file ODBconfig.py
  • installa i requisiti dal file

Suggerisco di creare un ambiente virtuale per ODBParser in modo da non avere problemi con versioni errate dei moduli. Nota: Testato SOLO su Python 3.7.3 e su Windows 10.

PER FAVORE, USA IN MODO RESPONSABILE

Prossimi Passi e Problemi Noti

  • ripulire un po' di più il codice
  • multi-thread per vari processi.
  • espandere ad altri tipi di database
  • aggiungere altri motori di ricerca di directory aperte (Zoomeye, ecc.)
  • impossibile scorrere oltre la prima pagina per alcune istanze ES a causa del modo in cui funziona ES <2.0. Apprezzo qualsiasi aiuto! Abbastanza sicuro di aver risolto questo problema. Apri un ticket se ricevi errori scrollid

Utilizzo

root@kitploit:~
    Esempi: 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

    Danni ad oggi: 0 server analizzati | 0 database scaricati | 0 record estratti
    _____________________________________________________________________________


argomenti opzionali:
  -h, --help            mostra questo messaggio di aiuto e esci

Opzioni di interrogazione:
  --shodan, -sh         Aggiungi questo flag se usi Shodan. Specifica ES o MDB con i flag.
  --binary, -be         Aggiungi questo flag se usi BinaryEdge. Specifica ES o MDB con i flag.
  --ip , -ip            Interroga un server. Aggiungi la porta così '192.165.2.1:8080' o userà le porte predefinite per ogni tipo di database. Aggiungi i flag ES o MDB per specificare il parser.
  --file , -f           Carica IP separati da riga da un file. Aggiungi la porta o assumerà le porte predefinite per ogni tipo di database. Aggiungi i flag ES o MDB per specificare il parser.
  --paste, -v           Interroga IP separati da riga dagli appunti. Aggiungi la porta o assumerà le porte predefinite per ogni tipo di database, ad esempio 9200 per ES. Aggiungi i flag ES o MDB per specificare il parser.

Opzioni Shodan/BinaryEdge:
  --limit , -l          Numero massimo di risultati per interrogazione. Il valore predefinito è 500.
  --port , -p           Filtra per porta.
  --country , -cn       Filtra per paese (codice paese di due lettere).
  --terms , -t          Inserisci qui eventuali termini di interrogazione aggiuntivi, ad esempio 'users'

Opzioni di dump:
  --mongo, -mdb         Usa per IP, Shodan, BinaryEdge e metodi di incolla per specificare il parser.
  --elastic, -es        Usa per IP, Shodan, BinaryEdge e metodi di incolla per specificare il parser.
  --properjson, -pj     Aggiungi questo flag se desideri che l'output sia un file JSON corretto. Il valore predefinito è un oggetto JSON per riga.
  --database , -db      Specifica il database che vuoi prendere. Per MDB deve essere nel formato 'db:collection'. Usa con l'argomento IP e il flag 'es' o 'mdb'
  --getall, -g          Prendi tutti gli indici indipendentemente dai campi e dai nomi di collezione/indice (sovrascrive le selezioni nel file di configurazione).
  --ignorelogs          Connettiti a un server che hai già controllato.
  --nosizelimits, -n    Scarica l'indice indipendentemente dalle sue dimensioni. Il conteggio massimo predefinito di documenti è 800.000.
  --csv                 Converti i dump JSON in formato CSV al volo. (Mette i file JSON in una cartella di backup in caso di problemi con la conversione)

Opzioni CSV/post-elaborazione:
  --convertToCSV , -c   Converti un file JSON o una cartella di dump JSON in CSV dopo il completamento. Inserisci il percorso completo o il nome della cartella nella directory di lavoro corrente
  --dontflatten         Usa se si verificano problemi di memoria durante la conversione di file JSON in CSV durante la post-elaborazione.
  --basic               Usa con il flag --convertToCSV se i tuoi dump JSON non sono file JSON reali, ma oggetti JSON separati da riga ottenuti da altre fonti.
  --dontclean, -dc      Scegli se vuoi mantenere dati inutili quando converti in CSV. Vedi la documentazione per maggiori informazioni.
Scarica lo strumento