Статья BruteForce, как недооцененный вид атаки (Account TakeOver)

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

t14m4t-automated-brute-forcing-attack-tool.1280x600.jpg


Но не буду сейчас кому-то пытаться доказывать, что bruteforce имеет место быть, что это очень эффективный вид атаки. Главное научиться, где и как её правильно применять. Не буду философствовать, сразу перейдем к делу.

Данная статья не обучение тому, как правильно брутфорсить. Я буду здесь описывать примеры, с которыми лично сам сталкивался во время пентеста и багбаунти.

Раньше не уделял особого внимания BruteForce атакам. И вот в начале этой осени во время пентеста я столкнулся с формой регистрации/авторизации пользователей по номеру телефона. И как уже можно догадаться, суть такой авторизации: пользователь вводит номер телефона и ему SMS-кой приходит код подтверждения. Длина кода может быть разной, чаще всего от 4 до 6 цифр. И как вы уже поняли, мы можем перебрать этот самый код из смс, чем он короче, тем легче перебрать. Кроме авторизации, также такое встречается в модуле сброса пароля. Если код будет 6 значный, то вероятность перебора не 100%, зависит от многих факторов:
  • от UpTime самого сервера.
Мне пока что везло, все сервера были с высоким аптаймом, что позволяло достаточно быстро перебирать.

  • от времени жизни кода
Время жизни кода везде разная. Где-то даже можно узнать из ответа, в течение какого времени она будет валидна.

  • от WAF, если он есть
  • от инструментов, с помощью которых это делаем
Инструменты, которые использую - это Burp Suite Intruder и если код 6 значный (в этом случае 1кк вариаций будет), использую Burp Suite Turbo Intruder.

account-takeover-fraud-1.jpg


После того, как я столкнулся с этим во время пентеста, решил также проверить На BugBounty. И вот оно, чудо, у одного только Mail было обнаружено на 4 разных сайтах отсутствие защиты от BruteForce SMS-кода и это приводит к захвату любого аккаунта (Account TakeOver), нужно знать только номер телефона.

Подробно про каждый случай, как находил не очевидную слабость в логике приложения, как брутил 6 значный код (1кк), который был активен 3 минуты, как правильно перебирать с помощью turbo intruder, расскажу чуть позже.
А сейчас покажу, как можно делать перебор в Intruder:

  1. Ловим запрос, при котором идет подтверждение кода, и отправляем его в Intruder, обычно что-то типа этого.
1.png


В данном случае, мы видим где у нас код. Выделяем ее для атаки и переходим на вкладку Payloads.

  1. На этой вкладке нам нужно создать payload. Так как перебираем числовой параметр в payload type выбираем numbers и указываем нужный нам интервал.
2.png


Тут все отлично, теперь переходим на вкладку Options.
  1. Тут уже зависит от UpTime сервера, если он быстрый, то можете уверенно заряжать много потоков.
  2. Start Attack ...ждём… Account Takeover.
Пруфы можно посмотреть здесь - (не все репорты еще закрыты)


Всем удачной охоты.
 
Для того, чтобы увеличить попадание на наш код, мы можем запрашивать восстановление доступа к другим аккаунтам?
Да, чем больше аккаунтов, тем больше вероятность, что хотя бы к одному подберем код...
Если математически, то что-то типа этого
1-(1-количество попыток/вариантов)**количество аккаунтов
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!