Сливаем базы данных
Как найти открытые базы данных Mongo, Elasticsearch и другие?
Всем салют, дорогие друзья!
Все чаще встречаются новости об утечках. Хакеры находят конфиденциальную информацию в открытых базах данных (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"
В данном случае получаем 47008 результата. Примерно столько существует открытых БД, которые содержат определенную информацию. Конечно, какая-то часть — пустышки, в них нет ничего интересного. Но это уже предмет анализа.
По запросу Elasticsearch результатов меньше. 20111 проиндексированных записей, а лидер — Китай.
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".
В итоге находим открытую БД какого-то магазина, где можно найти телефон, дату создание, описание, почту и еще некоторую интересную информацию. Помните, те кто ищет, тот всегда найдет :)
Заключение
Открытых баз данных действительно много. Почти каждую неделю выходит громкая новость об утечке данных. Это может быть БД отеля, магазина или сервисного центра. При беглом просмотре, среди примеров в статьи было два удачных варианта: магазин и доска объявлений продажи автомобилей. В первом случае, можно было посмотреть заказ, описание и телефон/почту владельца, во втором случае — телефон и марку машины.
Очень часто встречаются конфиденциальные данные в незашифрованном виде. Многие компании хранят информацию и даже не задумываются о возможных последствиях. Я продемонстрировал достаточно способов, чтобы найти открытые БД с терабайтами записей. Что делать с найденной информацией — выбор за тобой.
Всем спасибо за внимание!
- Мечтаешь зарабатывать на хакинге?
- Нет проблем! Все это станет реальностью, благодаря нашей Академии Хакинга. Набор в которую стартует совсем скоро.