Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ODBParser — OSINT-инструмент для поиска, парсинга и выгрузки только тех открытых директорий Elasticsearch и MongoDB, которые содержат данные, которые вы хотите раскрыть. | Kitploit
Инструменты/GitHubGitHub/citcheese/odbparser
OSINT (Разведка открытых источников)Сканеры уязвимостейЭксфильтрация данныхСбор информацииБезопасность Баз Данных
GitHubcitcheese/odbparser

ODBParser

OSINT-инструмент для поиска, парсинга и выгрузки только тех открытых директорий Elasticsearch и MongoDB, которые содержат данные, которые вы хотите раскрыть.

Репозиторий
4776 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ODBParser

TL;DR

ODBParser — это инструмент для поиска PII, раскрытой в открытых базах данных.

ТОЛЬКО для выявления раскрытой PII и предупреждения владельцев серверов о безответственном обслуживании баз данных
ИЛИ для запросов к базам данных, на доступ к которым у вас есть разрешение!

ПОЖАЛУЙСТА, ИСПОЛЬЗУЙТЕ ОТВЕТСТВЕННО

Что это?

Написал это, так как хотел создать универсальный инструмент OSINT для поиска, анализа и анализа открытых баз данных с целью выявления утечек PII на сторонних серверах. Другие инструменты, похоже, либо только ищут открытые базы данных, либо выгружают их после обнаружения, а затем без разбора захватывают данные. Вырос из одной-двух функций в то, что есть в этом репозитории, так что код не такой чистый и красивый, как мог бы быть.

Возможности

Для идентификации открытых баз данных вы можете:

  • выполнять запросы к Shodan и BinaryEdge, используя все возможные параметры (фильтр по стране, номеру порта и т.д.)
  • указывать один IP-адрес
  • загружать файл со списком IP-адресов
  • вставлять список IP-адресов из буфера обмена

Варианты выгрузки:

  • анализировать все базы данных/коллекции для выявления указанных вами данных
  • захватывать всё, что хранится на сервере
  • захватывать только один индекс/коллекцию
  • Используйте ctrl+c, чтобы пропустить выгрузку определённого индекса

Постобработка:

  • преобразовывать JSON-дампы в CSV
  • удалять бесполезные столбцы из CSV

Другие возможности:

  • отслеживать все IP-адреса и базы данных, к которым вы обращались, а также информацию о каждом сервере.
  • вести файл статистики с количеством запрошенных IP-адресов, обработанных баз данных и выгруженных записей.
  • преобразовывать уже имеющиеся у вас JSON-дампы в CSV
  • для каждой базы данных, общее количество записей в которой превышает ваш лимит, скрипт создаст запись в специальном файле вместе с 5 примерами записей, чтобы вы могли просмотреть и решить, стоит ли захватывать эту базу.
  • По умолчанию вывод — это файл JSON с разделением строк, где каждая строка содержит один JSON-объект. Вы можете выбрать вывод "правильного" JSON-файла, используя флаг "properjson".
  • Вы можете преобразовывать файлы в CSV на лету или преобразовывать только определённые файлы после завершения работы (рекомендую последнее). Преобразованные JSON-файлы будут перемещены в папку "JSON backups" в той же директории. ПРИМЕЧАНИЕ: При преобразовании в CSV скрипт удаляет точные дублирующиеся строки и удаляет столбцы и строки, где все значения NaN, потому что это то, что я хотел сделать. Не стесняйтесь редактировать функцию, если хотите получить точную копию JSON-файла.
  • Только для Windows Если скрипт возвращает огромное количество индексов, содержащих нужное вам поле, скрипт выведет названия баз данных, приостановится и даст вам десять секунд на решение, хотите ли вы продолжить и извлечь все данные из каждого индекса, так как я обнаружил, что если после указания нужных полей возвращается слишком много баз данных, есть большая вероятность, что данные фальшивые или это бесполезные журналы, и обычно по названию можно понять, какой из этих вариантов имеет место. Если вы не отреагируете в течение 10 секунд, скрипт выгрузит каждый индекс.
  • как вы, возможно, заметили, многие люди сканируют базы данных MongoDB и удерживают их в заложниках, часто меняя название на что-то вроде "TO_RESTORE_EMAIL_XXXRESTORE.COM". Скрапер MongoDB будет игнорировать все базы данных и коллекции, которые были взломаны, проверяя название БД/коллекции на соответствие списку строк, указывающих на взлом.
  • скрипт довольно многословен (возможно, слишком многословен), но мне нравится видеть, что происходит. Не стесняйтесь отключать вывод на печать, если предпочитаете.

Настройка

Смотрите файл odbconfig.py, чтобы указать свои параметры, потому что, по сути, цель игры — выявить те данные, которые ИНТЕРЕСУЮТ ВАС. Я привёл несколько примеров в файле конфигурации. Поэкспериментируйте с ними!

Вы можете:

  • указать названия индексов или коллекций, которые хотите собрать, указав подстроки в файле конфигурации. Например, если есть термин "client", скрипт извлечёт индекс "clients" или "client_data". Рекомендую оставлять эти списки пустыми, так как вы никогда не знаете, как будут называться интересующие вас базы данных, и вместо этого указывать интересующие вас поля.
  • указать, какие поля вас интересуют: если вы хотите захватывать только те индексы ES, в названии поля которых есть "email", например "user_emails", вы можете это сделать. Если вы хотите убедиться, что индекс содержит как минимум 2 интересующих вас поля, вы тоже можете это сделать. Или, если вы просто хотите захватить всё независимо от того, какие поля есть, вы тоже можете это сделать.
  • указать, какие индексы вам НЕ НУЖНЫ, например, названия системных индексов и других, обычно используемых для базового ведения журналов. Примеры приведены в файле конфигурации.
  • переопределить конфигурацию и захватить всё на сервере
  • указать формат вывода (по умолчанию JSON, можно выбрать CSV)
  • установить минимальный и максимальный размер базы данных, которую скрипт будет выгружать по умолчанию, и вы можете установить флаг для переопределения макс. количества документов в каждом конкретном случае.

Установка и требования

  • Клонируйте или загрузите на свою машину
  • Получите API-ключи для Shodan и/или BinaryEdge
  • Настройте параметры в файле ODBconfig.py
  • Установите зависимости из файла

Я рекомендую создать виртуальное окружение для ODBParser, чтобы избежать проблем с неверными версиями модулей. Примечание: Протестировано ТОЛЬКО на Python 3.7.3 и Windows 10.

ПОЖАЛУЙСТА, ИСПОЛЬЗУЙТЕ ОТВЕТСТВЕННО

Следующие шаги и известные проблемы

  • немного очистить код
  • распараллелить различные процессы.
  • расширить на другие типы БД
  • добавить другие поисковые системы открытых каталогов (Zoomeye и т.д.)
  • невозможно прокрутить дальше первой страницы для некоторых экземпляров ES из-за того, как работает ES <2.0. Буду благодарен за любую помощь! Почти уверен, что это исправил. Открывайте issue, если получаете ошибки scrollid

Использование

root@kitploit:~
    Примеры: 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

    Ущерб на сегодня: обработано 0 серверов | выгружено 0 баз данных | получено 0 записей
    _____________________________________________________________________________


дополнительные аргументы:
  -h, --help            показать это справочное сообщение и выйти

Параметры запроса:
  --shodan, -sh         Добавьте этот флаг при использовании Shodan. Укажите ES или MDB с
                        флагами.
  --binary, -be         Добавьте этот флаг при использовании BinaryEdge. Укажите ES или MDB
                        с флагами.
  --ip , -ip            Запрос к одному серверу. Добавьте порт следующим образом '192.165.2.1:8080'
                        или будет использоваться порт по умолчанию для каждого типа БД. Добавьте флаги ES
                        или MDB, чтобы указать парсер.
  --file , -f           Загрузить IP-адреса, разделённые строками, из файла. Добавьте порт или будет
                        использоваться порт по умолчанию для каждого типа БД. Добавьте флаги ES или MDB,
                        чтобы указать парсер.
  --paste, -v           Запрос IP-адресов, разделённых строками, из буфера обмена. Добавьте порт или
                        будет использоваться порт по умолчанию для каждого типа БД, например 9200
                        для ES. Добавьте флаги ES или MDB, чтобы указать парсер.

Параметры Shodan/BinaryEdge:
  --limit , -l          Максимальное количество результатов на запрос. По умолчанию
                        500.
  --port , -p           Фильтр по порту.
  --country , -cn       Фильтр по стране (двухбуквенный код страны).
  --terms , -t          Введите любые дополнительные условия запроса здесь, например
                        'users'

Параметры выгрузки:
  --mongo, -mdb         Используйте для методов IP, Shodan, BinaryEdge и Paste, чтобы
                        указать парсер.
  --elastic, -es        Используйте для методов IP, Shodan, BinaryEdge и Paste, чтобы
                        указать парсер.
  --properjson, -pj     Добавьте этот флаг, если хотите, чтобы вывод был в правильном JSON
                        файле. По умолчанию — один JSON-строковый объект на строку.
  --database , -db      Укажите базу данных, которую хотите захватить. Для MDB должен быть в
                        формате 'db:collection'. Используйте с аргументом IP и флагом 'es'
                        или 'mdb'.
  --getall, -g          Получить все индексы независимо от полей и
                        названий коллекций/индексов (переопределяет выбор в файле конфигурации).
  --ignorelogs          Подключиться к серверу, который вы уже проверяли.
  --nosizelimits, -n    Выгружать индекс независимо от его размера. Максимальное количество
                        документов по умолчанию — 800 000.
  --csv                 Преобразовывать JSON-дампы в формат CSV на лету (помещает JSON-файлы
                        в резервную папку на случай проблем с преобразованием).

Параметры CSV/постобработки:
  --convertToCSV , -c   Преобразовать JSON-файл или папку с JSON-дампами в CSV
                        после завершения. Укажите полный путь или имя папки в текущей
                        рабочей директории.
  --dontflatten         Используйте, если возникают проблемы с памятью при преобразовании JSON-файлов
                        в CSV во время постобработки.
  --basic               Используйте с флагом --convertToCSV, если ваши JSON-дампы
                        не являются настоящими JSON-файлами, а представляют собой разделённые строками
                        JSON-объекты, полученные из других источников.
  --dontclean, -dc      Выберите, если хотите сохранить бесполезные данные при преобразовании
                        в CSV. Смотрите документацию для получения дополнительной информации.
Скачать инструмент