ADG Оставить заявку
Блог Информационная безопасность 5 мин чтения

NotPetya: MBR-вайпер, Mimikatz и credential hygiene в корпоративной сети

NotPetya не просто шифровал - собирал хэши паролей из lsass и распространялся через WMI/PsExec даже на пропатченных машинах. Разбираем механику и проверяем тиеринг.

Контекст момента

NotPetya использовал Mimikatz для извлечения хэшей паролей из памяти и распространялся через WMI/PsExec с захваченными кредами даже по пропатченным машинам

После WannaCry большинство команд проверили патч MS17-010 и отключили SMBv1. Это правильно. Но NotPetya показал, что EternalBlue - не единственный механизм распространения, и патч сам по себе не даёт полной защиты. Машина с закрытой уязвимостью всё равно могла оказаться заражённой - если кто-то рядом в сети уже горел.

Мы разбирали первые красные флаги в предыдущем посте. Здесь - механика распространения и что с этим делать.

Как NotPetya двигался по сети

Атака работала в два параллельных канала.

Первый - EternalBlue/DoublePulsar, тот же путь, что и WannaCry. Если на машине нет патча MS17-010 - вход через 445 без аутентификации. Этот вектор закрывается патчем и отключением SMBv1. Про него мы написали достаточно.

Второй - и вот здесь интереснее - Mimikatz плюс PsExec/WMI. После попадания на первую машину NotPetya запускал встроенный модуль для извлечения учётных данных из памяти процесса lsass. Mimikatz в чистом виде, без особых модификаций. Хэши NTLM и, в зависимости от настройки системы, plaintext-пароли из WDigest - всё это оседало в памяти и читалось без особых усилий.

Дальше захваченные креды использовались для lateral movement через PsExec и WMI. Не нужен эксплойт, не нужна уязвимость - нужен только действующий хэш от учётной записи, у которой есть доступ к соседним машинам. Pass-the-hash атака в штатном исполнении.

Результат: пропатченная машина с закрытым SMBv1 и заблокированным 445 заражалась, если на неё летел WMI-запрос от соседнего заражённого хоста с хэшем локального администратора или доменного аккаунта с правами на ту машину.

Проблема с учётными записями

Это не новая атака. Pass-the-hash известен давно, Mimikatz - инструмент публичный. Но NotPetya показал масштаб проблемы в реальных корпоративных сетях.

Классическая картина в типичной инфраструктуре:

  • Единый пароль локального администратора на всех рабочих станциях. Или несколько паролей, разбитых по регионам или волнам установки. Захватил хэш с одной - у тебя доступ ко всем в той же группе.
  • Доменные сервисные аккаунты с широкими правами, которые авторизованы на сотнях машин. Один скомпрометированный хост, на котором кэшировался этот аккаунт, - и через lsass его хэш доступен атакующему.
  • WDigest включён по умолчанию на Server 2008 R2 и Windows 7. Это означает, что plaintext-пароль хранится в памяти в расшифрованном виде. Microsoft отключил это поведение патчем в 2014, но без KB2871997 или при ручном включении реестрового ключа - работает как часы.

Если хотя бы один из этих пунктов верен - Mimikatz-вектор открыт независимо от статуса MS17-010.

Что нужно проверить прямо сейчас

Тиеринг учётных записей. Модель уровней (Tier 0 - контроллеры домена и привилегированная инфраструктура, Tier 1 - серверный уровень, Tier 2 - рабочие станции) должна быть реализована не только на бумаге. Аккаунт администратора домена не должен логиниться на рабочие станции. Аккаунт серверного уровня не должен быть локальным администратором на рабочих станциях. Если нарушения есть - это маршруты для lateral movement.

LAPS (Local Administrator Password Solution). Уникальный пароль локального администратора на каждой машине - самое простое средство против pass-the-hash через локальные аккаунты. LAPS генерирует и ротирует пароли, хранит их в атрибутах Active Directory, выдаёт по запросу только авторизованным. Захват хэша с одной машины не даёт доступа к остальным. Решение Microsoft, бесплатное, давно проверено на практике.

WDigest. Проверить значение реестрового ключа:

HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
UseLogonCredential = 0

Значение 0 - plaintext в памяти не хранится. Если ключа нет или он равен 1 - исправить. На Windows 7 и Server 2008 R2 дополнительно нужен KB2871997.

Сессионная гигиена. Если привилегированные аккаунты регулярно открывают сессии на обычных машинах - их хэши оседают в lsass тех машин. Пересмотреть, откуда и под каким аккаунтом администраторы работают с инфраструктурой.

Мониторинг WMI и PsExec. Это легитимные инструменты, поэтому их тяжело заблокировать полностью. Но аномальное использование - WMI-вызовы с рабочих станций к рабочим станциям, PsExec с нетипичных источников - должно ловиться в логах. Если нет SIEM - хотя бы Windows Event Log с forwarding на центральный сборщик.

Об MBR-вайпере

Отдельная деталь, которая делает NotPetya хуже WannaCry в смысле последствий: это вайпер, замаскированный под шифровальщик. Нет ключа выкупа, нет реального механизма расшифровки. Перезаписанный MBR - это просто уничтожение данных.

Именно поэтому восстановление занимает не «заплатить и разблокировать», а «восстановить из резервных копий». Про защиту бэкапов и immutable-копии мы писали в контексте WannaCry - сейчас это ещё актуальнее.

Где мы сейчас

NotPetya - не конец истории, атрибуция неопределённая, новые детали продолжают появляться. Но Mimikatz-вектор понятен достаточно хорошо: он не требует нулевых дней, использует стандартный Windows-инструментарий и работает именно потому, что управление учётными записями в большинстве сетей устроено так, как будто lateral movement - чужая проблема.

Проверить тиеринг, раскатать LAPS, закрыть WDigest и собрать события WMI в одном месте - это объём работы на несколько дней, не на несколько месяцев. Аудит состояния credential hygiene мы проводим как отдельную услугу, если внутри ресурса на это нет.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.