Открытые базы данных и их взлом с помощью Shodan

Все чаще встречаются новости об утечках. Исследователи находят конфиденциальную информацию в открытых базах данных (MongoDB, Elasticsearch, Kibana, CouchDB, Hadoop и другие). После этого начинаются скандалы, серьезные испытания для компаний и даже судовые расследования на сотни миллионов долларов. Несколько примеров для наглядной демонстрации в СМИ.

  • Исследователь нашёл открытую базу сервиса распознавания текста Abbyy с сотнями тысяч документов.
  • 200 000 000 резюме оказались в открытом доступе из-за незащищенной установки MongoDB.
  • Информация о 93,4 млн. мексиканских избирателей была доступна любому желающему.

Похожее изображение

В этой статье я расскажу, как можно находить открытые базы данных и анализировать их содержание.

Поиск открытых БД с помощью Shodan

Для поиска БД используются специальные поисковики Shodan и Censys. Базы данных имеют определенный паттерн в виде порта и так называемого заголовка. Например, для MongoDB это стандартный порт 27017 и наличие заголовка «mongodb server information». Такие шаблоны существуют и для других БД.

Самый популярный вариант — MongoDB. На момент написания статьи проиндексировано 69100 результатов. Большинство из них закрыты (об этом говорит наличие параметра Authentication partially enabled).

Чтобы найти открытые БД создаем запрос:

all:"mongodb server information" all:"metrics"

В данном случае получаем 24943 результата. Примерно столько существует открытых БД, которые содержат определенную информацию. Конечно, какая-то часть — пустышки, в них нет ничего интересного. Но это уже предмет анализа.

USA — лидер по открытым MongoDB с результатом 7915.

По запросу Elasticsearch результатов меньше. 20283 проиндексированных записей, а лидер — Китай.

port:"9200" all:"elastic indices"

Чтобы полноценно работать с результатами выдачи БД: фильтровать записи по размеру, дате попадания в индекс, количеству коллекций и т.д. нужно использовать более функциональные инструменты. Один из них ― Lampyre.

Если нет желания доставлять себе софт, можно использовать давно знакомый Shodan Command-Line Interface. Для тех, кто хочет работать с помощью командной строки я подготовил файл с командами, которые позволяют находить и анализировать данные в форматах json или xlsx.

Для работы с более экзотическими базами рекомендую использовать LeakLooker. Скрипт написан на Python и работает с Shodan. Помимо стандартных БД поддерживает Kibana, CouchDB.

Поиск открытых БД с помощью Lampyre

Для более гибких настроек можно воспользоваться инструментом Lampyre для ОС Windows. После скачивания приложения необходимо указать почту и подтвердить свой аккаунт. После запуска в режиме Online Mode, нужно нажать New Investidation, выбрать папку для хранения проекта и начать работу.

В List of requests выбираем Shodan search. Вводим API ключ и наш запрос в поле Query, который позволит найти открытые БД.

all:"mongodb server information" all:"metrics"

Также можно указать дополнительные параметры в окне Shodan — 2. Например, страну и порт. Запускаем с помощью кнопки «Execute». Далее появляются результаты. Для графического отображения необходимо выбрать «Schema»->»Network».

Lampyre может фильтровать найденные запросы с помощью встроенного запроса ExploreDB: MongoDB. Выбираем необходимые IP, после этого правой кнопкой вызываем меню и указываем ExploreDB: MongoDB.

После чего получаем все запросы в удобном формате. Можно фильтровать по размеру БД и другим параметрам, которых нет в Shodan. Подтверждением того, что БД открытая, служит параметр text, который имеет статус open. Стоит сортировать результаты по параметрам Size и Count documents, так как самые интересные БД будут содержать максимальное количество записей в таблицах.

Также можно заметить со скриншотов, что Lampyre поддерживает работу с ExploreDB: ElasticSearch. Делаем все по аналогии, используя запрос:

port:"9200" all:"elastic indices"

Получаем в удобном виде базы данных ElasticSearch. Их можно посмотреть, перейдя по ссылке в столбце «http query top 500«.

В итоге находим открытую БД какого-то магазина, где можно найти телефон, дату создание, описание, почту и еще некоторую интересную информацию. Помните, те кто ищет, тот всегда найдет 🙂

Для работы с полученными БД можно использовать любой удобный для вас менеджер. Например, для MongoDB подойдет NoSQL Manager for MongoDB, Robo 3T или Studio 3T for MongoDB. Рассмотрим, на примере один из вариантов.

Анализируем базы данных с помощью Robo 3T for MongoDB

Выбор пал на бесплатную версию Robo 3T. Portable-версия занимает около 15 мб и позволяет быстро подключиться к нужной БД. После запуска видим окно, куда нужно указать IP-адрес. Нажимаем правой кнопкой и добавляем с помощью кнопки Add.

Указываем нужный IP и нажимаем Save.

После удачного подключения можем посмотреть БД. Если подключение произошло, то в левой панели появится новый клиент.

Дальше смотрим коллекции, которые используются в БД:

Можно использовать любой менеджер для работы с БД. Также можно обрабатывать данные и с командной строки. Несмотря на то, что Studio 3T for MongoDB имеет больший функционал (который доступен в течении пробного периода на 30 дней), ты увидел, что можно вполне нормально работать и с бесплатными программами. Все индивидуально.

Заключение

Открытых баз данных действительно много. Почти каждую неделю выходит громкая новость об утечке данных. Это может быть БД отеля, магазина или сервисного центра. При беглом просмотре, среди примеров в статьи было два удачных варианта: магазин и доска объявлений продажи автомобилей. В первом случае, можно было посмотреть заказ, описание и телефон/почту владельца, во втором случае — телефон и марку машины.

Очень часто встречаются конфиденциальные данные в незашифрованном виде. Многие компании хранят информацию и даже не задумываются о возможных последствиях. Я продемонстрировал достаточно способов, чтобы найти открытые БД с терабайтами записей. Что делать с найденной информацией — выбор за тобой.

Click to rate this post!
[Total: 7 Average: 4.4]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

3 comments On Открытые базы данных и их взлом с помощью Shodan

Leave a reply:

Your email address will not be published.