
Уязвимость 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): Нет воздействия на доступность
Условия эксплуатации
-
Сетевая позиция: Злоумышленник должен находиться во внутренней сети (L2/L3 сегмент)
-
Доступ к трафику: Возможность перехватывать/подменять трафик между целевым хостом и контроллером домена
-
Уязвимые ОС: Windows Server 2003 SP2 → Windows Server 2012 R2
-
Требуемые сервисы: Работающий механизм групповых политик (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')
Механика атаки:
-
ARP Poisoning:
Эксплойт отравляет ARP-таблицы целевого хоста и контроллеров домена:arpSpoof(args['interface'], dc, "-t %s" % (target_ip))
-
Перехват SMB-трафика:
iptables перенаправляет SMB-трафик (порт 445) на обработчик Netsed:iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 446
-
Модификация 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-7 модифицированных пакетов (счётчик в коде) система сбрасывает политики безопасности.
Результаты успешной атаки
-
Отключение SMB Signing:
Клиентские системы перестают требовать подписанные SMB-сессии -
Активация MS15-011:
Система становится уязвимой к RCE через подмену DLL -
Сброс критичных настроек:
-
Аутентификация 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-записи для критичных хостов
