Credential Stuffing

Credential Stuffing

Moody

Приветствую.

Сегодня я расскажу об атаках типа Credential Stuffing.

Введение

Когда речь заходит о реализации кибер-атак на крупные компании, то, как правило, многие представляют себе сложные пошаговые планы хактивистов, проработанный до мельчайших деталей.

Это имеет место быть, однако, с течением времени и развитием информационных технологий, порог входа в отрасль киберпреступности значительно снижается. Школьники и хулиганы, немного знающие устройство компьютерных сетей и программирование, клиенты подпольных хакерских магазинов и другие схожие индивиды стремятся получить быструю прибыль, при этом не совершая сложных манипуляций и не заходя вглубь компаний. Это возможно, благодаря вышеназванной атаке (но и не только ей).

Давайте подробнее это рассмотрим.

О слитых базах данных

Должно быть, каждый из вас хоть раз слышал о слитых базах данных, чего только стоит крупнейший дамп объёмом 81гб под названием "Collection #1" (о нем не писал только ленивый). Что в них содержится? Это зависит от сайта, возьмем, к примеру, какую - нибудь известную соц-сеть. У каждого пользователя в профиле указаны его ФИО, возраст, страна, увлечения, любимые произведения искусства (некоторые параметры опциональны) и прочее. В настройках он может скрыть профиль, настроить уведомления или изменить пароль. Все эти параметры и многое другое записываются в базы данных. Наибольшую ценность среди них представляют данные для авторизации - как правило, это логин (в качестве него может выступать как отдельное слово, так и электронная почта или номер телефона) и хэш пароля. Поэтому, злоумышленники из полного дампа сайта, как правило оставляют себе только эти данные.

Почему именно хэш пароля, а не сам пароль? Потому что, на случай, если базу сольют, злоумышленник, при помощи полученных данных без труда сможет авторизоваться на любом аккаунте и вывести все чужие деньги (если речь идет речь о каком - то сайте с внутренним балансом). Хэширование же позволяет в одностороннем порядке зашифровать пароль пользователя (который он указал при регистрации), а потом, при аутентификации, вновь хэшировать введенные им данные и сравнить их с теми, что хранятся в базе данных. Чтобы, в случае, если злоумышленник и получит такие данные, он их не смог использовать.

Это кажется безопасным, пока мы не доходим до алгоритма хэширования. Их множество, однако самый распостраненный и уязвимый - MD5. Полученное при помощи него значение, не трудно взломать при помощи таких инструментов, как hashcat и john the ripper, хотя это и займет некоторое время - все зависит от производительности ПК, на котором будет происходить взлом. После этого, на основе ранее полученных данных, формируется готовая база, как правило она имеет формат логин:пароль. На каждой строке - по одному аккаунту.

Как реализовать Credential Stuffing

Смысл брутфорса заключается в переборе всевозможных паролей от одного известного нам логина, при этом пароли берутся из ранее сгенерированного словаря. Вы наверняка, услышав об этом, думали, что это крайне неэффективно, потому что количество всевозможных паролей велико. Это так, но что, если в надежде на то, что пользователь использует одни и те же данные от учетных данных на множестве сайтов, использовать для брутфорса просто ранее утекшие данные, т.е., готовые базы? Новая атака получила название Credential Stuffing. Рассмотрим более подробно.

Допустим, мы нашли один есть сайт, позволяющий пользователям делать ставки на спорт. Авторизация, как и было сказано ранее, осуществляется при помощи почты и пароля. У нас есть база, но вручную (т.е., вставляя каждый логин и пароль из несколько тысячного списка в поля) её перебирать очень долго. Поэтому, необходимо реализовать программу, которая будет делать это автоматически. Это не сложно, достаточно отследить HTTP(S) запрос, который отправляется к серверу при попытке авторизоваться, и на каждую строчку из базы заменять данные в нем на те, что у нас есть в файле с аккаунтами. Чтобы это было быстро - добавим многопоточность и ещё один запрос в случае, если авторизация успешна - на проверку баланса. Ну и не стоит забывать о сохранении информации в файл.

Готовые инструменты для реализации атаки

А что, если мы не обладаем должными знаниями программирования, но, тем не менее, хотим совершать противозаконные действия? На помощь приходят своеобразные конструкторы, которые позволяют без знаний программирования, при помощи графического интерфейса, написать программу, выполняющую аналогичные действия. Наиболее популярные из таких на русскоязычном хакерском рынке - UBC Private и Private Keeper. Распостраняются они по ежемесячной подписке и представляют пользователю интуитивный интерфейс для написания так называемых "проектов" (конфигурационных файлов) с расширением .pro или .db, соответственно.

Описывать, как создаются такие проекты, я не буду, так как надеюсь на здравомыслие подписчиков, поэтому перейдем к последнему аспекту - самим базам. Даже если вы не обладаете знаниями, к примеру, по эксплуатации SQL инъекций, дабы получить базу данных на уязвимом сайте, на форумах устраиваются раздачи (самими форумчанами) таких баз. Какая тут выгода? Как правило, люди, которые распостраняют такие базы, сами проверили их уже на своих проектах и достали из них все, что можно. Поэтому, чтобы повысить свою репутацию на таких форумах, они и выкладывают их на всеобщее обозрение.

Защита

Противостоять таким атакам очень просто - достаточно добавить на сайте reCaptcha и школьники разорятся на оплату за её распознавание.

https://t.me/cybred

Report Page