pulse-secure-vpn-mitm-research
Исследование Man-in-the-Middle (MitM) для Pulse Secure
Дата публикации
Совместная дата публикации с вендором: 26 октября 2020
Автор
David Kierznowski, @withdk
Благодарности
- Спасибо Sahil Mahajan из Pulse Secure PSIRT за поддержку в процессе раскрытия информации.
- Alyssa Herrera, Justin Wagner, Mimir и Rich Warren за их статью «Red Teamer’s Guide to Pulse Secure SSL VPN» — Alyssa Herrera (4 сентября 2019).
- SA Red Team за постоянную поддержку и воодушевление.
Ссылки на CVE
- CVE-2020-8241 (8.1 High CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2020-8239 (5.9 Medium CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
Пример

Доказательство концепции, демонстрирующее получение обратного shell Meterpreter с помощью rogue-pulse-svr.py от Pulse Client, подключённого к той же сети.
Введение
Pulse Connect Secure (PCS) — это широко используемое корпоративное VPN-решение. На момент написания этого отчёта PCS поддерживает более 20 миллионов конечных точек (Pulse Secure, n.d.). Данное исследование было направлено на проверку конфиденциальности и целостности сетевого канала связи между конечной точкой Windows 10 PCS и шлюзом PCS. В частности, ставится вопрос: «Насколько безопасна конечная точка при подключении к ненадёжной сети?» Это исследование применимо к конфигурациям по умолчанию и «Always-On».
Влияние (среднее — высокое)
При комбинировании атак возможно получить удалённое выполнение кода из ненадёжной сети с привилегиями SYSTEM. В качестве альтернативы, внутренний злоумышленник может использовать CVE-2020-8241 как отдельную уязвимость для повышения привилегий.
Вероятность (низкая — средняя)
Эти атаки могут быть использованы в различных ситуациях, однако лучше всего подходят для целевых атак. Основываясь на этом и приведённых ниже допущениях, вероятность оценивается как низкая — средняя.
Потенциальные атаки
Следующие атаки были успешно продемонстрированы в proof-of-concept инструменте rogue-pulse:
- Кража учётных данных пользователя. Поддельный сервер может заставить пользователя раскрыть свои учётные данные.
- Выполнение бинарного файла из UNC-пути Microsoft Windows. Сервер PCS поддерживает возможность запуска исполняемого файла после аутентификации. Этим можно злоупотребить для получения выполнения кода с правами вошедшего в систему пользователя. Это основано на работе Alyssa Herrera и её команды (4 сентября 2019).
- Полный удалённый доступ администратора через злоупотребление проверками соответствия хоста. Проверки соответствия хоста выполняются от имени SYSTEM. Поддельный сервер может злоупотребить этой функцией, чтобы передать вредоносную политику, позволяющую произвольную запись в реестр.
- Перехват сетевого трафика. Это позволит атакующему перехватывать и модифицировать сетевой трафик, даже если включена функция «always-on». В настоящее время инструмент только отображает запросы сетевого трафика от конечной точки.
PoC также реализует функцию автоматического входа. Это обманывает клиент, заставляя его думать, что он уже прошёл аутентификацию. Это может быть полезно в случаях, когда выполнение кода является приоритетом над сбором учётных данных.
Допущения
- Данное исследование нацелено на получение удалённого выполнения кода через ненадёжную сеть. Обе уязвимости используются вместе для достижения этой цели. Однако внутренний злоумышленник может просто использовать CVE-2020-8241 отдельно для повышения привилегий.
- Шлюз PCS использует конфигурацию по умолчанию с включённым «dynamic-trust». Обратите внимание, что политика обычно обновляется и передаётся клиенту после аутентификации. Это означает, что небольшое окно возможностей может всё ещё существовать даже после того, как шлюз отключил «dynamic-trust».
- Атакующий находится в положении, позволяющем проводить атаку «человек посередине» на HTTPS-трафик, например, атакующий скомпрометировал домашний роутер пользователя, использует поддельные Wi-Fi точки доступа и т.д.
- Пользователь должен принять предупреждение о сертификате. Интересное наблюдение: Pulse Secure Client будет продолжать показывать это сообщение, пока пользователь не примет сертификат. Кроме того, всплывающее сообщение не вызывает особой тревоги. Наконец, поскольку клиент позиционируется как «Secure Client», пользователь гораздо более склонен игнорировать сообщение и всё равно подключиться. Это не кажется большим препятствием.
- Конечная точка подключается под управлением операционной системы Microsoft Windows.
Рекомендации
Для смягчения и устранения проблемы следует рассмотреть следующие рекомендации:
- Организации должны проводить проверку соответствия лучшим практикам безопасности Pulse Secure (Pulse Secure, 2 июля 2019). Убедитесь, что «Dynamic certificate trust» отключён.
- Примените исправления от вендора (см. https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA44601).
- Выполнение сценариев на сервере PCS происходит как дочерний процесс «Pulse.exe». Таким образом, можно развернуть средства защиты, отслеживая дочерние процессы бинарного файла «Pulse.exe».
- Мониторьте службу «PulseSecureService» на предмет подозрительной активности в реестре.
Ссылки
Отказ от ответственности
Предоставленная информация предназначена только для образовательных и исследовательских целей. Автор не несёт ответственности за ваше использование этой информации и решительно осуждает любые попытки нарушить действующее законодательство. Автор не берёт на себя обязательство обновлять эту информацию, не предоставляет никаких гарантий относительно её полноты, использования или применимости и отказывается от любой ответственности, связанной с ней. Использование вами этой информации осуществляется исключительно на ваш собственный риск.