Хочу тебя познакомить еще с одной атакой, которая была представлена на последнем Black Hat Las Vegas 2015. На мой взгляд, это одно из немногих реалистичных и дельных исследований среди тех, что были на конференции.

Вообразим ситуацию: в большой организации есть парк машин с Windows, и все их надо обновлять. Понятно, что заставлять каждый из хостов ходить в интернет за обновлениями накладно и неудобно, а потому внутри корпоративной сети поднимают сервер WSUS (Windows Server Update Services), который и используется для управления обновлениями: их выгрузкой, распространением и распределением.

Поскольку задача типичная и решение готовое, WSUS крайне распространен, а потому заманчива и возможность атак на него и через него. Компания Contextis изучила принципы его работы и представила очень мощную (мы можем получить RCE с привилегиями System), но легкую в эксплуатации атаку. Очень в стиле Easy Hack! Исследование получилось объемным, так что я сосредоточусь на основных пунктах.

Итак, в компании поднимается сервер WSUS, а в настройках конечных хостов через групповые политики указывается, что обновляться нужно именно с этого сервера. Для общения хостов с сервером используется протокол SOAP, причем по умолчанию работает он по HTTP-протоколу. Это один из важнейших фактов для нас. Стандартный порт — 8530.

Путь до сервера для конечного хоста хранится здесь:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\WUServer

Конечные хосты взаимодействуют с сервером следующим образом. Сначала конечный хост регистрируется на сервере и получает в ответ cookie, которую и использует потом при общении с сервером. После этого хост систематически (обычно раз в сутки) запрашивает, есть ли для него обновления. WSUS отвечает перечнем обновлений и путями, по которым их можно скачать (тоже на WSUS). При автоматическом обновлении хост скачивает и устанавливает данные обновления (от SYSTEM, конечно). Аналогичный процесс имеется и для обновления драйверов. Фактически процесс (и протокол) аналогичен обычному обновлению ОС через Windows Update.

Обновления должны быть подписаны валидным сертификатом Microsoft — это и есть главный элемент защиты. Только они могут быть установлены.

Было выяснено, что существует несколько видов обновлений. И самый интересный для нас — CommandLineInstallation (это handler из запроса). Суть его в том, что какой-то исполняемый файл будет загружен в ОС, а потом запустится с определенными параметрами (например, это используется для запуска антивиря MS).

Итак, у нас есть хосты и сервер WSUS. Общение между ними идет по незащищенному протоколу HTTP, и мы можем провести атаку MITM и менять данные в запросах и ответах SOAP (сами запросы SOAP не подписываются). Поскольку у клиента нет никакой возможности проверить, существуют ли обновления, мы по ходу атаки можем спокойно установить все что угодно. Используя CommandLineInstallation, мы можем исполнять любые команды в операционной системе и с любыми параметрами.

Исполняемый файл, конечно, должен быть подписан сертификатом Microsoft, но специального сертификата Windows Update не существует. Сгодится любой подписанный MS СA. В качестве отличного варианта Contextis предложила использовать тулзы из Sysinternals Tools, написанные Руссиновичем. С тех пор как они стали официальными инструментами Microsoft, они получили и валидную подпись. С помощью PsExec мы можем выполнять произвольные команды и запускать любое ПО (к примеру, Meterpreter). Точно так же можно использовать bginfo, так как некоторые сторонние антивирусы ругаются на PsExec.

Как мы видим, в настройках по умолчанию вся система очень небезопасна. И наверное, главным практическим вопросом остается то, как можно заставить конечный хост запросить обновления с WSUS, чтобы не ждать сутки для проведения атаки.

BGinfo из Sysinternals Tools подписан MS
BGinfo из Sysinternals Tools подписан MS

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии