
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.
![]() | ODBParser |
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
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.
Para identificar bancos de dados abertos você pode:
Opções de despejo:
Pós-processamento:
Outras funcionalidades:
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:
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
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.