25 декабря 2023

Обход двухфакторной аутентификации в менеджере паролей Пассворк

Менеджеры паролей являются хорошим способом повысить безопасности работы, т.к. хранят все коды доступа в одном надёжном месте.

Компания Акрибия в своей работе пользуется менеджером паролей Пассворк: отечественной разработкой, повышающей безопасность и удобство работы с корпоративными паролями. Пассворк представлен в двух версиях (коробочная и облако) и позволяет использовать защищённые хранилища, настраивать права пользователей, отслеживать все действия и изменения.
Недавно в ходе проведения одного из тестирований нашей внутренней инфраструктуры мы обнаружили уязвимость обхода двухфакторной аутентификации (2FA) в менеджере паролей Пассворк (в его коробочной версии, которую мы используем). В данной статье расскажем о том, как происходил поиск уязвимости, к чему может привести её эксплуатация, и как с ней бороться.

Уязвимости присвоен идентификатор: CVE-2023−49949, по нашей оценке она имеет высокую степень опасности — CVSS Base Score: 8.5 по версии CVSS 3.1 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N) и успешно эксплуатируется на версиях Пассворк до 6.2.0.
Мы провели поиск в сети Интернет и обнаружили более 420 установок Пассворк разных версий в различных регионах мира, потенциально подверженных уязвимости CVE-2023−49 949
Процесс эксплуатации
Необходимым условием для эксплуатации уязвимости является наличие первоначального доступа (логин и пароль) от лица любого пользователя.

Получение первоначального доступа не является предметом данной статьи, и сейчас останавливаться на этом мы не будем.
Итак, для обхода 2FA вводим имеющиеся учётные данные и переходим к странице ввода одноразового шестизначного кода. В данную форму можно ввести произвольный код: нам важно перехватить отправляемый запрос и передать его в специализированный инструмент (мы пользовались Burp Suite).
В Burp Intruder для успешного подбора одноразового кода необходимо настроить макрос для поддержания сессии, количество параллельных запросов, равных 1, и полезную нагрузку (коды 2FA от 1 до 999 999).

Далее запускаем атаку перебора и ждём результатов. Для полного перебора может потребоваться до 11 дней, хотя нам удалось трижды добиться успеха за 3−4 дня.

В результатах атаки необходимо найти единственный запрос к серверу, отличающийся от всех остальных длиной ответа. Этот запрос и будет содержать искомый код 2FA, но нам он не так уж и важен: достаточно открыть данный запрос в браузере и убедиться, что аутентификация успешно пройдена!
Проэксплуатировать уязвимость удалось благодаря тому, что в версиях Пассворк до 6.2.0 не было защиты от перебора одноразовых кодов.

Таким образом, обладая первоначальным доступом и некоторым временем можно успешно обойти двухфакторную аутентификацию и получить корпоративные секреты, которые хранятся в менеджере паролей.
Видео с демонстрацией процесса эксплуатации уязвимости:
Уязвимость была устранена вендором меньше, чем за неделю!
В версии 6.2.0 была добавлена защита от перебора 2FA: после нескольких попыток ввода неверного кода, пользователь временно блокируется. Количество попыток, интервал ввода и время блокировки устанавливаются в файле /server/sites/prod/app/config/config.ini
Рекомендации пользователям Пассворк
  • Обновить Пассворк до версии 6.2.0 (или выше)
  • Ограничить доступ к веб-интерфейсу Пассворк, особенно из внешних сетей
  • Убедиться в использовании надежных паролей к аккаунтам, чтобы минимизировать риски полной компрометации системы неавторизованным пользователем
  • Включить режим клиентского шифрования и использовать рекомендации вендора по безопасной конфигурации
Таймлайн
09.11.2023
09.11.2023
Первое обнаружение
20.11.2023
20.11.2023
Раскрытие информации вендору
23.11.2023
23.11.2023
Выпуск исправления вендором
03.12.2023
03.12.2023
Присвоение идентификатора CVE
25.12.2023
25.12.2023
Публикации информации об уязвимости
Дмитрий Фёдоров
Специалист по анализу защищённости, Акрибия
Другие публикации по теме