В данной статье я собрал способы тестирования 2FA на уязвимости, их эксплуатацию, а также возможные варианты обхода существующей защиты от некоторых видов атак. Давайте же рассмотрим список проверок на предмет уязвимостей, которые применяются к 2FA: 1. Отсутствие Rate-лимита Алгоритм Rate-лимита используется для проверки возможности пользовательского сеанса или IP-адреса быть ограниченым в попытках или скорости, и при каких обстоятельствах это происходит.
Если пользователь выполнил слишком много запросов в течение определенного промежутка времени, веб приложение может ответить кодом много запросов или применить Rate-лимит, не показав при этом ошибок. Rate лимит существует, но его можно обойти Кейсы, которые раньше приходилось встречать: 1 Ограничение скорости потоков с отсутствием блокировки после достижения определенной скорости Зачастую исследователи безопасности пытаются подобрать код с использованием 5-и или более количества потоков, чтобы быстрее выполнить атаку в Burp Intruder количество потоков по умолчанию- 5 без задержки.
Но иногда система безопасности от перебора или обычный Load Balancer может реагировать только на этот единственный фактор. Если вы пытаетесь брутфорсить с 5-ю потоками, стоит уменьшить количество до 1-го, а потом до 1-го с задержкой в одну секунду. Ранее мне посчастливилось наблюдать за таким поведением и именно с помощью таких манипуляций произошел успешный подбор кода, что привело к Account Takeover.
Если у 2FA кода нет определенного срока действия, то у нас есть много времени на перебор.
Если же срок действия присутствует, то успешность атаки уменьшена, но потенциальная опасность уязвимости все равно присутствует, так как шанс попадания в нужный код все же есть. Суть данного обхода состоит в том, что постоянно или в течении некоторого времени, например, 5 минут, в SMS отправляется один и тот же OTP код, который в течении всего этого времени является валидным. Так же стоить следить за тем, чтобы не произошел silent rate-limit. Пример репорта: hackerone. Но к запросу привязан rate-limit, который ограничивает количество попыток на один токен запроса. Мы можем постоянно запрашивать новый код, генерировать новый токен запроса, применять его к последующему запросу с помощью grep-match в burp suite или с помощью собственного скрипта и производить брутфорс диапазона чисел от до Таким образом, постоянно используя новый токен запроса мы успешно подберем правильный код, так как он не изменяется и является статичным в определенный промежуток времени.
Такую ситуцию обезнадеживать не стоит, следует попытаться перебрать хотя бы часть нашего списка, потому что существует вероятность, что генерируемый код окажется в этой части списка, так как он генерируется случайно.
Вредоносный пакет найден в официальном магазине Ubuntu
При переборе нужно надеятся на рандом, но все же есть шанс попадания в правильную комбинацию, что доказывает уязвимость, которую точно необходимо исправить. В запросе проверки кода, rate-лимит присутствует, но после задействования функционала повторной отправки кода он сбрасывается и позволяет продолжать брутфорс кода. Если IP-адрес сменить, то есть возможность обойти это ограничение.
Неплохим вариантом может быть python скрипт с proxy requests модулем, но для начала нужно где-то раздобыть большое количество валидных прокси. Каждый раз, когда будет отправлен запрос с X-Forwarded-For, веб-сервер будет думать, что наш IP адрес соответствует значению, переданному через хедер. Материалы на эту тему: hackerone. Обход 2фа с помощью подстановки части запроса из сессии другого аккаунта Если для верификации кода в запросе отправляется параметр с определенным значением, попробуйте отправить значение с запроса другого аккаунта.
Если применить данные с параметров аккаунта, на котором нужно обойти code-верификацию Account 1 , на сессию совсем другого аккаунта Account 2 , получим код и введем его на втором аккаунте, то сможем обойти защиту на первом аккаунте. После перезагрузки страницы 2FA должна исчезнуть. Он полезен в том случае, когда пользователь не желает вводить 2FA код при последующих входах в аккаунт. Для подмены IP адреса можно использовать X-Forwarded-For хедер на этапе ввода логина и пароля, если веб приложение его поддерживает.
Она может использоваться в связке с 2FA как дополнительная защита аккаунта или 2FA может даже не запрашиваться если IP адрес совпадает с white-list с согласия пользователя.
Жизнь без пароля – Hi-Tech – Коммерсантъ
Таким образом, даже без крепления 2FA к IP адресу, в некоторых случаях 2FA можно обойти с помощью обхода сопутствующих способов защиты. Но если разработчики решили принять риски, то нужно пройтись по нескольким важным пунктам: истекает ли ссылка для ввода 2FA; индексируется ли ссылка в поисковиках. Недостаточная цензура персональных данных на странице 2FA При отправке OTP кода на странице используется цензура для защиты персональных данных, таких как email, номер телефона, никнейм, etc.
Но эти данные могут полностью раскрываться в API эндпоинтах и других запросах, на которые у нас хватает прав на этапе 2FA. Пример эксплуатации уязвимости с помощью Credentials Stuffing. Допустим, в публичном доступе есть база данных с логинами и паролями для сайта A. Обычно, многие сайты не считают это уязвимостью и принимают риски. В идеале безопасное сообщение на странице восстановления пароля выглядит следующим образом: После получения базы существующих пользователей, злоумышленники применяют пароли к этим аккаунтам. Если они сталкиваются с 2FA, то попадают в тупик.
FUCK 2FA! Обходим двухфакторную аутентификацию с помощью Modlishka
Но в случае недостаточной цензуры данных пользователя, они могут дополнить свою базу его личными данными если их не было в изначальной базе. Игнорирование 2FA при определенных обстоятельствах При выполнении некоторых действий, которые приводят к автоматическому входу в аккаунту, 2FA может не запрашиваться. Так как доступ к аккаунту предоставляется мгновенно, при входе в аккаунт 2FA может миноваться и полностью игнорироваться.
Impact аналогичного репорта на hackerone, который я прислал недавно: Если злоумышленник получит доступ к электронной почте жертвы он может взломать учетную запись с помощью фишинга, brute-force атаки, credentials stuffing и тд , он может обойти 2FA, хотя в этом случае 2FA должен защищать учетную запись. На данный момент для 2FA есть проверка кода Google Authenticator или резервного кода, но не кода из электронного письма, поэтому данный Bypass имеет смысл. При входе в аккаунт через соцсеть, 2FA может игнорироваться. Если email жертвы будет взломан, то можно будет восстановить пароль к аккаунту соцсети если она позволяет это сделать и войти на сервис без ввода 2FA.
Impact одного из репортов: Связка с другими уязвимостями, такими как ранее присланный OAuth misconfiguration , для полного захвата учетной записи, преодолевая 2FA. Если злоумышленник взломал электронную почту пользователя, он может попытаться восстановить доступ к аккаунту социальной сети и войти в учетную запись без дополнительной проверки.
Интересно, что если войти под своим логином и паролем, 2FA не будет запрашиваться. Возможно, разработчики используют более старую версию приложения, в которой нет защиты для 2FA, сама 2FA отключена или её намеренно отключили для тестирования.
- Подпишитесь на email рассылку.
- 1. Отсутствие Rate-лимита.
- Простейший способ взломать аккаунт «ВКонтакте» в обход двухфакторной аутентификации.
- 2FA: китайская хакерская команда обходит двухфакторную аутентификацию?
- Обеспечение информационной безопасности. Банковский троян BankBot снова в Google Play.
- Главные новости.
При отключении 2FA не запрашивается текущий код. При чистом запросе существует вероятность CSRF атаки. Также может использоваться clickjacking уязвимость, — после пары кликов от ничего не подозревающего пользователя 2FA будет отключена. В качестве примера приведу сайт hackerone. Это лучшая и рекомендуемая защита. Ранее созданные сессии остаются валидными после активации 2FA При включении 2FA желательно, чтобы параллельные сессии на том же аккаунте завершались и выводился диалог ввода 2FA, то же самое с изменением пароля.
Читайте также
Если аккаунт был скомпрометирован и первой реакцией жертвы будет включение 2FA, то сессия злоумышленника будет инвалидирована и следующий ввод логина и пароля будет требовать 2FA. По словам специалистов, оба приложения содержали свежую версию банковского трояна BankBot. По аналогии с другими подобными вредоносами BankBot отображает фальшивое окно авторизации поверх интерфейса легитимного банковского приложения. Кроме того, BankBot способен демонстрировать поведение, присущее вымогательскому ПО, и блокировать устройство пользователя, а также перехватывать SMS-сообщения для обхода механизма двухфакторной аутентификации.
- Банковский троян BankBot в очередной раз добрался до Google Play Store.
- Snapchat — что это?.
- FUCK 2FA! Обходим двухфакторную аутентификацию с помощью Modlishka — «Хакер».
- WhatsApp Android Message Read?
- Похожие темы.
- Местоположение GPS без согласия;
Смотрите также. Комментарии экспертов. Цифровой рубль всё же вызывает опасения.
Жизнь без пароля
Банковское сообщество одобряет. Цифровой рубль. Вопросы из зала.