![]() |
Все чаще встречаются новости об утечках. Исследователи находят конфиденциальную информацию в открытых базах данных (MongoDB, Elasticsearch, Kibana, CouchDB, Hadoop и другие). После этого начинаются скандалы, серьезные испытания для компаний и даже судовые расследования на сотни миллионов долларов. Несколько примеров для наглядной демонстрации в СМИ.<ul><li>Исследователь нашёл открытую базу сервиса распознавания текста Abbyy с сотнями тысяч документов.</li> <li>200 000 000 резюме оказались в открытом доступе из-за незащищенной установки MongoDB.</li> <li>Информация о 93,4 млн. мексиканских избирателей была доступна любому желающему.</li> </ul> http://image.prntscr.com/image/CyRUf...H1w-XYZ-6w.png В этой статье я расскажу, как можно находить открытые базы данных и анализировать их содержание. Поиск открытых БД с помощью Shodan Для поиска БД используются специальные поисковики Shodan и Censys. Базы данных имеют определенный паттерн в виде порта и так называемого заголовка. Например, для MongoDB это стандартный порт 27017 и наличие заголовка «mongodb server information». Такие шаблоны существуют и для других БД. Самый популярный вариант — MongoDB. На момент написания статьи проиндексировано 69100 результатов. Большинство из них закрыты (об этом говорит наличие параметра Authentication partially enabled). Чтобы найти открытые БД создаем запрос: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">all:"mongodb server information" all:"metrics"</pre> В данном случае получаем 24943 результата. Примерно столько существует открытых БД, которые содержат определенную информацию. Конечно, какая-то часть — пустышки, в них нет ничего интересного. Но это уже предмет анализа. http://image.prntscr.com/image/fD63w...swNroU-5Ow.png USA — лидер по открытым MongoDB с результатом 7915. По запросу Elasticsearch результатов меньше. 20283 проиндексированных записей, а лидер — Китай. Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">port:"9200" all:"elastic indices"</pre> http://image.prntscr.com/image/O6M4M...PHoSHmTKyw.png Чтобы полноценно работать с результатами выдачи БД: фильтровать записи по размеру, дате попадания в индекс, количеству коллекций и т.д. нужно использовать более функциональные инструменты. Один из них ― Lampyre. Если нет желания доставлять себе софт, можно использовать давно знакомый https://cli.shodan.io/. Для тех, кто хочет работать с помощью командной строки я подготовил https://pastebin.com/raw/DfXcAuVY с командами, которые позволяют находить и анализировать данные в форматах json или xlsx. Для работы с более экзотическими базами рекомендую использовать https://github.com/woj-ciech/LeakLooker. Скрипт написан на Python и работает с Shodan. Помимо стандартных БД поддерживает Kibana, CouchDB. http://image.prntscr.com/image/mACJ8...z-jKfQyaRQ.png Поиск открытых БД с помощью Lampyre Для более гибких настроек можно воспользоваться инструментом https://lampyre.io/ для ОС Windows. После скачивания приложения необходимо указать почту и подтвердить свой аккаунт. После запуска в режиме Online Mode, нужно нажать New Investidation, выбрать папку для хранения проекта и начать работу. В List of requests выбираем Shodan search. Вводим API ключ и наш запрос в поле Query, который позволит найти открытые БД. Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">all:"mongodb server information" all:"metrics"</pre> http://image.prntscr.com/image/roCOV...hE79j1-dGg.png Также можно указать дополнительные параметры в окне Shodan — 2. Например, страну и порт. Запускаем с помощью кнопки «Execute». Далее появляются результаты. Для графического отображения необходимо выбрать «Schema»->»Network». http://image.prntscr.com/image/SJhJf...mYTTRveIsg.png Lampyre может фильтровать найденные запросы с помощью встроенного запроса ExploreDB: MongoDB. Выбираем необходимые IP, после этого правой кнопкой вызываем меню и указываем ExploreDB: MongoDB. http://image.prntscr.com/image/S4PfM...LU8r07Rcug.png После чего получаем все запросы в удобном формате. Можно фильтровать по размеру БД и другим параметрам, которых нет в Shodan. Подтверждением того, что БД открытая, служит параметр text, который имеет статус open. Стоит сортировать результаты по параметрам Size и Count documents, так как самые интересные БД будут содержать максимальное количество записей в таблицах. http://image.prntscr.com/image/ME5SZ...mjM6zY6BTw.png Также можно заметить со скриншотов, что Lampyre поддерживает работу с ExploreDB: ElasticSearch. Делаем все по аналогии, используя запрос: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">port:"9200" all:"elastic indices"</pre> http://image.prntscr.com/image/PsLEa...dFff3exjOQ.png Получаем в удобном виде базы данных ElasticSearch. Их можно посмотреть, перейдя по ссылке в столбце «http query top 500«. http://image.prntscr.com/image/G7RJD...8qFVkiJsCw.png В итоге находим открытую БД какого-то магазина, где можно найти телефон, дату создание, описание, почту и еще некоторую интересную информацию. Помните, те кто ищет, тот всегда найдет http://image.prntscr.com/image/s1JLo...oT7yoAymWg.png Для работы с полученными БД можно использовать любой удобный для вас менеджер. Например, для MongoDB подойдет NoSQL Manager for MongoDB, Robo 3T или Studio 3T for MongoDB. Рассмотрим, на примере один из вариантов. Анализируем базы данных с помощью Robo 3T for MongoDB Выбор пал на бесплатную версию https://robomongo.org/. Portable-версия занимает около 15 мб и позволяет быстро подключиться к нужной БД. После запуска видим окно, куда нужно указать IP-адрес. Нажимаем правой кнопкой и добавляем с помощью кнопки Add. http://image.prntscr.com/image/H2h7e...9Ts_RLHoEQ.png Указываем нужный IP и нажимаем Save. http://image.prntscr.com/image/AAHnv...ttlc4rpMcQ.png После удачного подключения можем посмотреть БД. Если подключение произошло, то в левой панели появится новый клиент. http://image.prntscr.com/image/Asdof...fTcU8KqQSA.png Дальше смотрим коллекции, которые используются в БД: http://image.prntscr.com/image/j-ZbG...5oqCd0RLiA.png http://image.prntscr.com/image/Jrbn5...OQgNuBDpmA.png Можно использовать любой менеджер для работы с БД. Также можно обрабатывать данные и с командной строки. Несмотря на то, что Studio 3T for MongoDB имеет больший функционал (который доступен в течении пробного периода на 30 дней), ты увидел, что можно вполне нормально работать и с бесплатными программами. Все индивидуально. Заключение Открытых баз данных действительно много. Почти каждую неделю выходит громкая новость об утечке данных. Это может быть БД отеля, магазина или сервисного центра. При беглом просмотре, среди примеров в статьи было два удачных варианта: магазин и доска объявлений продажи автомобилей. В первом случае, можно было посмотреть заказ, описание и телефон/почту владельца, во втором случае — телефон и марку машины. Очень часто встречаются конфиденциальные данные в незашифрованном виде. Многие компании хранят информацию и даже не задумываются о возможных последствиях. Я продемонстрировал достаточно способов, чтобы найти открытые БД с терабайтами записей. Что делать с найденной информацией — выбор за тобой. @plastikcash |
All times are GMT. The time now is 08:27 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.