Об­лачная база дан­ных — шту­ка удоб­ная: счи­тай, вся работа по деп­лою и нас­трой­ке сер­вера за тебя уже сде­лана, оста­лось толь­ко поль­зовать­ся! Адми­нов это рас­слаб­ляет нас­толь­ко, что такие базы час­то оста­ются незащи­щен­ными и ищут­ся с помощью поис­ковиков. Один нюанс — этим поис­ковиком не может быть Google!

warning

Вся информа­ция пре­дос­тавле­на исклю­читель­но в озна­коми­тель­ных целях. Автор и редак­ция не несут ответс­твен­ности за любой воз­можный вред, при­чинен­ный с исполь­зовани­ем све­дений из этой статьи.

Firebase — это облачная плат­форма, которую раз­работа­ла ком­пания Envolve в 2011 году. Изна­чаль­но это была база дан­ных для при­ложе­ний‑чатов, но поз­же ее полюби­ли раз­работ­чики мно­гополь­зователь­ских онлай­новых игр. Это под­вигло осно­вате­лей раз­делить Firebase на две час­ти: модуль чата и модуль игро­вого фрей­мвор­ка.

Два года спус­тя, в 2014 году, Google при­обре­ла Firebase и про­дол­жила раз­вивать. Прог­рам­мные интерфей­сы для этой базы дан­ных есть для мно­жес­тва плат­форм и язы­ков прог­рамми­рова­ния.

С тех­ничес­кой точ­ки зре­ния Firebase — кру­тая и удоб­ная шту­ка. Кажет­ся, что ничего док­ручивать и допили­вать здесь не нуж­но. Но безопас­ная нас­трой­ка облачной базе таки нуж­на, и мно­гие вла­дель­цы об этом забыва­ют, черес­чур рас­сла­бив­шись. Нас­толь­ко, что забыва­ют о прос­тей­шей вещи — аутен­тифика­ции.

 

Ищем открытые базы данных

По­луча­ется, что в интерне­те мас­са не зак­рытых паролем баз дан­ных, а это лег­кая добыча для зло­умыш­ленни­ков. Толь­ко вот взять и нагуг­лить их не получит­ся, потому что в Google решили, что эту проб­лему мож­но решить, прос­то исклю­чив эти базы из поис­ковой выдачи. Лов­ко! Но край­не ненадеж­но.

Поиск Google по запросу Firebase
По­иск Google по зап­росу Firebase

Нич­то не меша­ет нам вос­поль­зовать­ся дру­гим поис­ковиком — нап­ример, Bing или DuckDuckGo. Они выда­ют уже нам­ного боль­ше полез­ной информа­ции.

Поисковый запрос в Bing и DuckDuckGo
По­иско­вый зап­рос в Bing и DuckDuckGo

Что мож­но сде­лать даль­ше, пос­ле того как най­дены домены с уяз­вимыми базами? Откры­ваем любую ссыл­ку — нап­ример, https://hacker-news.firebaseio.com/v0/topstories.json. Информа­ция о ней бес­полез­на, но если убрать из ссыл­ки наз­вание таб­лицы topstories и оста­вить толь­ко .json, то мож­но про­верить, защище­на база или нет. В этом слу­чае резуль­тат выг­лядит вот так:

{
"error" : "Permission denied"
}

Все вер­но, лич­но я бы знат­но уди­вил­ся, если бы вла­дель­цы это­го сай­та допус­тили нас­толь­ко вопи­ющую оплошность. Но некото­рые ее таки допус­кают. Минут десять перебо­ра ссы­лок, и поиск увен­чает­ся успе­хом.

Найденная открытая база данных
Най­ден­ная откры­тая база дан­ных

Я нашел что‑то более инте­рес­ное — учет­ки с хешами паролей. Выб­рать их из фай­ла нес­ложно прос­тым скрип­том на Python или ути­литой jq.

При помощи HashID опре­деля­ем тип хешей (это был MD5) и загоня­ем в hashcat. Если нет дос­таточ­но мощ­ного железа, мож­но вос­поль­зовать­ся онлай­новым сер­висом — тул­за FindMyHash авто­мати­чес­ки их под­бира­ет. Все эти ути­литы пре­дус­танов­лены в Kali Linux.

Взлом пароля через FindMyHash
Взлом пароля через FindMyHash

Ждем десять минут, и перед нами логины и пароли в откры­том виде.

Найденная база с открытыми паролями в открытом виде
Най­ден­ная база с откры­тыми пароля­ми в откры­том виде
 

Автоматизация

Си­деть, менять поис­ковики и переби­рать все URL вруч­ную очень нуд­но. Слиш­ком час­то видишь «error : Permission denied». Зна­чит, пора авто­мати­зиро­вать! Прог­рамми­ровать, прав­да, не пот­ребу­ется, потому что это уже сде­лали до нас. Возь­мем, к при­меру, скрипт за авторс­твом Фран­цеска Эрре­ры.

Скрипт сам под­бира­ет URL и ищет уяз­вимые базы дан­ных.

Ка­чаем его и уста­нав­лива­ем зависи­мос­ти:

git clone https://github.com/Turr0n/firebase.git
cd firebase
pip install -r requirements.txt

И запус­каем:

python3 firebase.py -p 4 -c 150 –dnsdumpster

Клю­чи:

  • p — ука­зыва­ет количес­тво потоков (по умол­чанию 1, мак­симум 4);
  • dnsdumpster — генери­рует URL самос­тоятель­но;
  • с — какое количес­тво доменов генери­ровать.

Да, скрипт уме­ет генери­ровать ссыл­ки самос­тоятель­но. Точ­нее, дела­ет это не сам, а обра­щает­ся за помощью к ути­лите DNSdumpster.

Результат работы скрипта
Ре­зуль­тат работы скрип­та

По резуль­тату вид­но, что из най­ден­ных баз:

  • 37 урлов «битые» или боль­ше не сущес­тву­ют;
  • 171 база име­ет аутен­тифика­цию при обра­щении к дан­ным и защище­на;
  • од­на база с подоз­рени­ем на уяз­вимость;
  • 25 баз не защище­ны или уяз­вимы.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии