Это исследование получило третье место на Pentest Award 2025 в категории «Раз bypass, два bypass». Соревнование ежегодно проводится компанией Awillix.
На основе драйвера мы поднимем прозрачный прокси, который будет перехватывать и собирать трафик между агентом и сервером. Это позволит обойти защиту, отвечающую за хранение чувствительных данных профиля браузера и контроль одноразовых сессий. Подробности про обход DSE ты можешь прочесть в моем исследовании.
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Помимо прямой борьбы с EDR с помощью передовых методов вредоносного ПО, существуют альтернативные способы обхода, такие как использование неправильных настроек или уязвимостей EDR, удаление агента EDR или использование уязвимого драйвера (Bring Your Own Vulnerable Driver, BYOVD), который прибивает процессы агентов EDR. Среди этих косвенных методов обхода особенно интересны те, что основаны на сетевых подключениях.
Агенты EDR постоянно стучатся на центральные или облачные серверы и шлют телеметрию: сведения о хосте, диагностические алерты, находки по угрозам и прочие события. Если малварь хитрее обычного, агент не спешит ее гасить: он наблюдает за поведением, гоняет модели в облаке и копит контекст. Как только информации станет достаточно, процесс будет остановлен. Отсюда вывод: EDR сильно завязана на облако. При этом агент все еще ловит классические штуки вроде того же Mimikatz. Но без интернета EDR заметно теряет хватку, а командам DFIR уже не отследить машину через консоль EDR.
Несколько лет назад это наглядно показали правила брандмауэра «Защитника Windows»:
# Block outbound 443 from the Microsoft Defender for Endpoint (MDE) agent to cloud services with PowerShell
1. New-NetFirewallRule -DisplayName "Block 443 MsMpEng" -Name "Block 443 MsMpEng" -Direction Outbound -Service WinDefend -Enabled True -RemotePort 443 -Protocol TCP -Action Block
2. New-NetFirewallRule -DisplayName "Block 443 SenseCncProxy" -Name "Block 443 SenseCncProxy" -Direction Outbound -Program "$env:ProgramFiles\Windows Defender Advanced Threat Protection\SenseCncProxy.exe" -Enabled True -RemotePort 443 -Protocol TCP -Action Block
3. New-NetFirewallRule -DisplayName "Block 443 MsSense" -Name "Block 443 MsSense" -Direction Outbound -Program "$env:ProgramFiles\Windows Defender Advanced Threat Protection\MsSense.exe" -Enabled True -RemotePort 443 -Protocol TCP -Action Block
Настроить правила так, чтобы EDR не сливал данные в облако, вроде бы просто. Но кроме прав админа, всплывают и другие ограничения — их тоже нужно учитывать и закрывать. Самое важное — включить защиту от несанкционированного изменения в Microsoft Defender for Endpoint (Tamper Protection).
Такая защита блокирует любые попытки править конфиг клиента — даже с админскими правами на машине. Плюс она не дает локальным правилам файрвола влиять на процессы Defender for Endpoint. Запустишь команды выше — получишь предупреждение, а изменения будут заблокированы.
Хотя защита от несанкционированных изменений в первую очередь рассчитана на процессы Defender, у других EDR есть похожие механизмы. Еще одна рабочая мера — отключить слияние локальных правил (Local Rule Merge) в брандмауэре «Защитника Windows». Если у тебя Active Directory, GPO без проблем перетрет локальные настройки файрвола.
Здесь можно задавать правила по удаленным адресам и портам. Проблема в том, что многие EDR общаются сразу с сотнями, а то и тысячами серверов — телеметрия, обновления, облачные аналитики. Не добавлять же каждый такой хост в правила вручную.
Почему WFP лучше?
Правки в файрволе Windows Defender сразу палятся, так что эффективнее копать ниже — подцепиться к Windows Filtering Platform (WFP).
По документации Microsoft, WFP — набор API и системных служб, которые дают разработчикам гибкий доступ к обработке пакетов на разных уровнях и позволяют ей управлять. С WFP ты можешь фильтровать соединения по приложениям, пользователям, адресам, сетевым интерфейсам и другим признакам.
Эту платформу используют для фильтрации контента, родительского контроля, обхода цензуры, Deep Packet Inspection (DPI) и прочих задач. Поэтому WFP лежит в основе многих средств безопасности: IDS/IPS, блокировщиков рекламы, файрволов, EDR и VPN. На WFP построен и файрвол Windows Defender.
Механизм фильтрации состоит из службы пользовательского режима Base Filtering Engine (BFE) и компонента режима ядра Windows Filtering Platform. Вместе они гоняют трафик через фильтры: ядро режет пакеты на сетевом и транспортном уровнях, а BFE рулит политиками. Когда к потоку применяются правила, код в ядре дергает доступные ему API и callout-драйверы.
Фильтры — это правила сопоставления пакетов: они говорят движку фильтрации, что делать с трафиком. Пример: block all outbound packets to TCP port 1337 — блокировать весь исходящий TCP‑трафик на порт 1337. Фильтры бывают временные и постоянные. Временные подхватываются при старте драйвера TCP/IP (tcpip.) во время загрузки, а постоянные гибче и переживают перезагрузку.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
