Статья Злоупотребление MiniFilter Altitude для блокировки EDR

  • Автор темы Автор темы ADMIN
  • Дата начала Дата начала

ADMIN

Administrator
ADMIN
Регистрация
18 Окт 1989
Сообщения
1,408
Реакции
93
Баллы
48
☑ ДЕПОЗИТ
0$

доктор​

Если вы получаете доступ с правами локального администратора к хосту с помощью решения EDR, вы потенциально можете использовать уязвимость, злоупотребляя драйвером мини-фильтра, например драйвером Sysmon, чтобы избежать обнаружения. Этот метод скрывает решение EDR, которое опирается на обратные вызовы ядра. Хотя требуется перезагрузка хоста, этот подход намного проще, чем поиск нового собственного уязвимого драйвера (BYOVD) или попытка использования неподписанного драйвера, что не всегда возможно.

Введение​

Решения Endpoint Detection and Response (EDR) изначально разработаны для постоянной и автономной работы, что затрудняет их отключение злоумышленниками даже при наличии доступа локального администратора или уровня системы к конечной точке. При переходе к настройкам безопасности Windows традиционный ползунок, используемый для отключения Защитника Windows, заменяется альтернативными настройками, такими как следующие.
edr_defender.png

Однако, несмотря на эти меры предосторожности, злоумышленники разработали методы «ослепления» систем EDR, в том числе:
  • Злоупотреблять уязвимым драйвером режима ядра (BYOVD) для удаления обратных вызовов ядра для решений EDR.
  • Загрузите неподписанный драйвер в тестовом режиме Windows, используя bcdedit /set testsigning onили bcdedit /set nointegritychecks offудалите обратные вызовы ядра EDR.

Достичь этих методов непросто. Известные уязвимые драйверы режима ядра, часто используемые в тактике уклонения, могут быть помечены и заблокированы решениями EDR. Кроме того, второй метод часто защищен механизмами безопасной загрузки. Отключение безопасной загрузки обычно требует доступа к настройкам прошивки UEFI во время загрузки, что требует физического или консольного доступа к устройству.

Злоупотребление высотой MiniFilter​

Когда я писал свой предыдущий пост о Sysmon , я упомянул высоту мини-фильтра и то, как ее можно изменить в разделе параметров установки Sysmon, а именно: The value can also be updated from the registry. However, it should be approached with caution, as if you use the same value twice in the system, one of the services would not start.
Работая над предыдущим постом, я снова надел свою красную командную шляпу и спросил себя: «Могу ли я установить значение высоты Sysmon так, чтобы оно соответствовало значению EDR, потенциально закрывая обратные вызовы ядра EDR?». Чтобы проверить эту гипотезу, я изменил значение высоты Sysmon с помощью редактора реестра:
regedit_sysmon.png

Я получил следующее предупреждение от EDR (известного поставщика, имя которого я не буду называть), и редактор реестра был немедленно закрыт. Оказалось, что EDR строго отслеживает любые сервисы, пытающиеся использовать значение высоты.
edr_alert.png

Обход​

После повторного рассмотрения этого сценария стало очевидно, что в системе EDR имеется правило статического обнаружения, настроенное для определенного значения в реестре. Запись реестра обычно состоит из трех компонентов: имени, типа и данных. В ходе расследования я обнаружил, что изменение атрибута Type может обойти правило статического обнаружения, реализованное EDR. Следующие шаги описывают этот метод обхода:

  1. Сначала получите значение высоты для EDR.

    edr_altitude.png


  2. Переименуйте запись реестра высоты Sysmon в AltitudeOld . Затем создайте новую запись реестра с именем Altitude , указав тип REG_MULTI_SZ . Установите данные этой новой записи в соответствии со значением высоты EDR. Обратите внимание, что изменение принимается без завершения процесса. Примечание. REG_SZ — это строка с нулевым завершением, а REG_MULTI_SZ — последовательность строк с нулевым завершением.

    edr_altitude_edit.png


  3. Перезагрузите хост.
  4. Запустите fltMC.exe, чтобы убедиться, что драйвер Sysmon теперь использует значение высоты EDR. Обратите внимание, что номер экземпляра теперь показывает «0», что означает, что он не зарегистрирован ни в каких обратных вызовах ядра, но служба EDR работает без проблем.

    sysmon_altitude.png

Полученные результаты​

Это результат обхода. Служба EDR работает нормально, как показано ниже:
edr_running.png

Более того, консоль управления EDR по-прежнему указывает, что конечная точка находится в сети, без каких-либо сопутствующих предупреждений. Кроме того, снова появилась традиционная панель управления Защитника Windows, позволяющая отключать защиту в реальном времени с правами локального администратора.
disable_defender.png

В качестве доказательства концепции Mimikatz был скопирован на хост и выполнил дамп учетных данных:
edr_mimikatz.png

Защитник Microsoft для конечной точки (MDE)​

Мы также применили ту же методологию к MDE. Сначала мы получили значение высоты от MDE с помощью команды fltMC.exe с правами администратора:
mde_altitude.png

После копирования значения высоты и назначения его драйверу Sysmon было заметно, что никаких предупреждений обнаружено не было, в отличие от предыдущих случаев с другой системой EDR.
mde_altitude_overwrite.png

Мини-фильтр MDE MsSecFlt был перезаписан SysmonDrv, и службы MDE по-прежнему работают должным образом.
mde_result.png

Однако возникла проблема: я перешел к настройке безопасности Windows и обнаружил, что этот параметр все еще находится под контролем MDE и его нельзя отключить:
mde_defender_setting.png

Дальнейшее расследование показало, что WdFilter используется Microsoft Defender. Я решил его тоже отключить, но возник вопрос: какой драйвер можно использовать, чтобы перезаписать минифильтр? Изучив порядок загрузки минифильтра ( ссылка ), я остановил свой выбор на FileInfo по двум основным причинам. Во-первых, он обычно загружается первым из-за своего низкого значения (40500), а во-вторых, даже в случае неудачного запуска ОС все равно инициируется, как указано в этой статье . Я изменил значение высоты FileInfo и снова перезагрузил хост. Результат был таким, как показано ниже; оба драйвера минифильтра были перезаписаны:
mde_wd_overwrite.png

С этого момента я мог отключить защиту в реальном времени Защитника Windows и запустить Mimikatz, чтобы сбросить учетные данные, как показано на скриншотах ниже. Во время этого процесса никаких предупреждений не наблюдалось.
mde_disable_defender.png

mde_mimikatz.png

Краткое содержание​

Это представляет собой интересный и простой подход к обходу решений EDR. Использование драйвера Sysmon для эксплуатации оказалось эффективным, поскольку оно позволяет избежать обнаружения и включает в себя драйвер мини-фильтра. Хотя можно также использовать существующие драйверы мини-фильтров, важно проявлять осторожность из-за потенциального риска возникновения «синего экрана смерти» (BSOD). Для смягчения последствий вы можете написать сигма-правила для события Sysmon с идентификатором 13 — набор значений реестра и события с идентификатором 14 — переименование ключа и значения реестра. Я не уверен, есть ли у MDE телеметрия для этого, поскольку Олаф Хартонг отметил в этой статье , что в MDE применяется фильтр для изменений значений реестра, поэтому он не завершен.

Рекомендации​

 
Автоматический гарант это финансовая безопасность: Покупатель может быть уверен, что его деньги не попадут к продавцу до того, как он получит и проверит товар или услугу. Продавец, в свою очередь, защищен от не оплаты, так как гарант подтверждает наличие средств у покупателя до начала выполнения обязательств.
Назад
Сверху