Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ODBParser — Ferramenta OSINT para pesquisar, analisar e extrair apenas os diretórios abertos do Elasticsearch e MongoDB que possuem os dados que você se preocupa em expor. | Kitploit
Ferramentas/GitHubGitHub/citcheese/odbparser
OSINT (Inteligência de Fontes Abertas)Scanners de VulnerabilidadesExfiltração de DadosColeta de InformaçõesSegurança de Banco de Dados
GitHubcitcheese/odbparser

ODBParser

Ferramenta OSINT para pesquisar, analisar e extrair apenas os diretórios abertos do Elasticsearch e MongoDB que possuem os dados que você se preocupa em expor.

Ver Repositório
477há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ODBParser

TL;DR

O ODBParser é uma ferramenta para pesquisar PII exposta em bancos de dados abertos.

APENAS para ser usado para identificar PII exposta e alertar os proprietários do servidor sobre manutenção irresponsável do banco de dados
OU para consultar bancos de dados aos quais você tem permissão de acesso!

POR FAVOR, USE RESPONSAVELMENTE

O que é isso?

Escrevi isso pois queria criar uma ferramenta OSINT completa para pesquisar, analisar e interpretar bancos de dados abertos, a fim de identificar vazamentos de PII em servidores de terceiros. Outras ferramentas parecem apenas pesquisar por bancos de dados abertos ou despejá-los assim que identificados, coletando dados indiscriminadamente. Começou com uma ou duas funções e se tornou o que está neste repositório, então o código não está tão limpo e bonito quanto poderia ser.

Funcionalidades

Para identificar bancos de dados abertos você pode:

  • consultar o Shodan e o BinaryEdge usando todos os parâmetros possíveis (filtrar por país, número da porta, etc.)
  • especificar um único endereço IP
  • carregar um arquivo com uma lista de endereços IP
  • colar uma lista de endereços IP da área de transferência

Opções de despejo:

  • analisa todos os bancos de dados/coleções para identificar os dados que você especificar
  • capturar tudo o que está hospedado no servidor
  • capturar apenas um índice/coleção
  • Use ctrl+c para pular o despejo de determinado índice

Pós-processamento:

  • converter despejos JSON para CSV
  • remover colunas inúteis do CSV

Outras funcionalidades:

  • mantém registro de todos os endereços IP e bancos de dados que você consultou, juntamente com informações sobre cada servidor.
  • mantém um arquivo de estatísticas com o número de IPs consultados, bancos de dados analisados e registros despejados.
  • converter despejos JSON que você já possui para CSV
  • para cada banco de dados que tenha um número total de registros acima do seu limite, o script criará uma entrada em um arquivo especial, juntamente com 5 registros de amostra, para que você possa revisar e decidir se vale a pena capturar o banco de dados.
  • A saída padrão é um arquivo JSON separado por linhas, com um objeto JSON em cada linha. Você pode optar por gerar um arquivo JSON "correto" usando a flag "properjson".
  • Você pode converter os arquivos para CSV em tempo real ou converter apenas alguns arquivos após a execução (recomendo o segundo). Os arquivos JSON convertidos serão movidos para uma pasta chamada "JSON backups" no mesmo diretório. OBSERVAÇÃO: Ao converter para CSV, o script remove linhas duplicadas exatas e remove colunas e linhas onde todos os valores são NaN, porque era isso que eu queria fazer. Sinta-se à vontade para editar a função se preferir uma cópia exata do arquivo JSON.
  • Apenas Windows Se o script retornar um grande número de índices que contenham o campo que você especificou, ele listará os nomes dos bancos de dados, pausará e dará a você dez segundos para decidir se deseja continuar e extrair todos os dados de cada índice, pois descobri que, se muitos bancos de dados forem retornados mesmo após você especificar os campos desejados, há uma boa chance de os dados serem falsos ou logs inúteis, e você geralmente pode identificar pelo nome se é esse o caso. Se você não agir dentro de 10 segundos, o script irá despejar todos os índices.
  • Como você deve ter notado, muitas pessoas estão escaneando bancos de dados MongoDB e mantendo-os como reféns, muitas vezes alterando o nome para algo como "TO_RESTORE_EMAIL_XXXRESTORE.COM." O scraper do MongoDB ignorará todos os bancos de dados e coleções que foram comprometidos, verificando o nome do banco de dados/coleção em relação a uma lista de strings que indicam comprometimento.
  • O script é bastante verboso (talvez demais), mas gosto de ver o que está acontecendo. Sinta-se à vontade para silenciar as instruções print se preferir.

Personalização

Veja o arquivo odbconfig.py para especificar seus parâmetros, porque o objetivo principal é expor os dados que VOCÊ tem interesse. Forneci alguns exemplos no arquivo de configuração. Brinque com eles!

Você pode:

  • especificar quais nomes de índices ou coleções deseja coletar, informando substrings no arquivo de configuração. Por exemplo, se tiver o termo "cliente", o script capturará o índice chamado "clientes" ou "dados_cliente." Recomendo manter essas listas em branco, pois você nunca sabe como os bancos de dados que lhe interessam se chamarão; em vez disso, especifique os campos que lhe interessam.
  • especificar quais campos lhe interessam: se você quiser capturar apenas índices do ES que contenham "email" no nome do campo, por exemplo, "user_emails", pode fazer isso. Se quiser garantir que o índice tenha pelo menos 2 campos de seu interesse, também pode fazer. Ou se quiser capturar tudo, independentemente dos campos presentes, também pode.
  • especificar quais índices você NÃO deseja, por exemplo, nomes de índices do sistema e outros que são geralmente usados para registro básico. Exemplos fornecidos no arquivo de configuração.
  • substituir a configuração e capturar tudo em um servidor
  • especificar a saída (padrão é JSON, pode escolher CSV)
  • definir o tamanho mínimo e máximo do banco de dados que o script despejará por padrão e você pode definir uma flag para substituir o limite máximo de documentos caso a caso.

Instalação e Requisitos

  • Clone ou baixe para sua máquina
  • Obtenha chaves de API para Shodan e/ou BinaryEdge
  • Configure os parâmetros no arquivo ODBconfig.py
  • Instale os requisitos a partir do arquivo

Sugiro criar um ambiente virtual para o ODBParser para evitar problemas com versões incorretas de módulos. Observação: Testado APENAS no Python 3.7.3 e no Windows 10.

POR FAVOR, USE RESPONSAVELMENTE

Próximos Passos e Problemas Conhecidos

  • limpar um pouco mais o código
  • paralelizar vários processos.
  • expandir para outros tipos de banco de dados
  • adicionar outros mecanismos de busca de diretórios abertos (Zoomeye, etc.)
  • incapacidade de rolar além da primeira página para certas instâncias do ES devido à forma como o ES <2.0 funciona. Agradeço qualquer ajuda! Quase certo de que corrigi isso. Abra um issue se receber erros de scrollid

Uso

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

    Danos até o momento: 0 servidores analisados | 0 bancos de dados despejados | 0 registros coletados
    _____________________________________________________________________________


argumentos opcionais:
  -h, --help            mostra esta mensagem de ajuda e sai

Opções de Consulta:
  --shodan, -sh         Adicione esta flag se estiver usando Shodan. Especifique ES ou MDB com
                        flags.
  --binary, -be         Adicione esta flag se estiver usando BinaryEdge. Especifique ES ou MDB
                        com flags.
  --ip , -ip            Consultar um servidor. Adicione a porta assim: '192.165.2.1:8080'
                        ou usará as portas padrão para cada tipo de banco de dados. Adicione as flags ES ou MDB
                        para especificar o analisador.
  --file , -f           Carregar IPs separados por linha de um arquivo. Adicione a porta ou
                        assumirá portas padrão para cada tipo de banco de dados. Adicione as flags ES ou MDB
                        para especificar o analisador.
  --paste, -v           Consultar IPs separados por linha da área de transferência. Adicione a porta ou
                        assumirá portas padrão para cada tipo de banco de dados, ex. 9200
                        para ES. Adicione as flags ES ou MDB para especificar o analisador.

Opções do Shodan/BinaryEdge:
  --limit , -l          Número máximo de resultados por consulta. O padrão é
                        500.
  --port , -p           Filtrar por porta.
  --country , -cn       Filtrar por país (código de país de duas letras).
  --terms , -t          Insira aqui quaisquer termos de consulta adicionais que desejar, ex.
                        'users'

Opções de Despejo:
  --mongo, -mdb         Use para os métodos IP, Shodan, BinaryEdge e Paste para
                        especificar o analisador.
  --elastic, -es        Use para os métodos IP, Shodan, BinaryEdge e Paste para
                        especificar o analisador.
  --properjson, -pj     Adicione esta flag se quiser que a saída seja um arquivo JSON
                        correto. O padrão é um objeto JSON string por linha.
  --database , -db      Especifique o banco de dados que deseja capturar. Para MDB deve estar no
                        formato 'db:collection'. Use com o argumento IP e a flag 'es'
                        ou 'mdb'.
  --getall, -g          Obter todos os índices independentemente dos campos e nomes de
                        coleções/índices (sobrescreve seleções no arquivo de configuração).
  --ignorelogs          Conectar a um servidor que você já verificou.
  --nosizelimits, -n    Despejar índice independentemente do tamanho. O número máximo padrão de
                        documentos é 800.000.
  --csv                 Converter despejos JSON para o formato CSV em tempo real. (Coloca arquivos JSON
                        em uma pasta de backup caso haja problema com a conversão)

Opções de CSV/Pós-processamento:
  --convertToCSV , -c   Converter arquivo JSON ou pasta de despejos JSON para CSVs
                        após a execução. Insira o caminho completo ou nome da pasta no diretório
                        atual.
  --dontflatten         Use se tiver problemas de memória ao converter arquivos JSON para
                        CSV durante o pós-processamento.
  --basic               Use com a flag --convertToCSV se seus despejos JSON não forem
                        arquivos JSON verdadeiros, mas sim objetos JSON separados por linha
                        que você obteve de outras fontes.
  --dontclean, -dc      Escolha se quiser manter dados inúteis ao converter para
                        CSV. Veja a documentação para mais informações.
Baixar ferramenta