![]() |
https://forum.antichat.xyz/attachmen...079d7eedd2.png
Когда я впервые столкнулся с задачей обхода CrowdStrike Falcon на Red Team-проекте - корпоративная среда, полный стек защиты - стандартные инструменты отработали ровно до первого поведенческого алерта. Cobalt Strike из коробки, PowerShell-однострочники, даже кастомные .NET-загрузчики - всё сгорело. Агент перехватил не бинарник, а цепочку API-вызовов, которая «пахла» подозрительно. Вот тут и стало понятно: техники обхода EDR - это не про запуск чужих скриптов. Это про понимание архитектуры обнаружения на уровне системных вызовов, хуков и телеметрии ядра - как это устроено изнутри и как под это затачиваются инструменты, я разобрал в гайде по разработке Red Team инструментов. Дальше разберу конкретные механизмы, которые используют коммерческие EDR-решения для обнаружения угроз, покажу рабочие техники их обхода с кодом и объясню, почему каждая из них детектируется или нет. Материал для пентестеров, Red Team операторов и security-инженеров, которым нужно понимать обе стороны - атаку и защиту. Как EDR обнаруживает угрозы: три уровня телеметрии Прежде чем обходить EDR, нужно понять, что именно он видит. Большинство русскоязычных материалов описывают техники bypass в вакууме - «патчим ETW и всё работает». На заборе тоже написано. В реальности коммерческие EDR-решения собирают телеметрию на трёх принципиально разных уровнях, и обход одного не отключает остальные. User-mode хуки в NTDLL Первый и самый известный уровень - inline-хуки на функциях ntdll.dll. Агенты CrowdStrike, SentinelOne и Defender for Endpoint внедряют свои DLL в каждый пользовательский процесс и перезаписывают пролог Native API функций ( Код:
NtAllocateVirtualMemoryКод:
NtWriteVirtualMemoryКод:
NtCreateThreadExКонкретика по вендорам различается сильнее, чем кажется. CrowdStrike Falcon загружает kernel-mode драйвер Код:
csagent.sysКод:
WdFilter.sysKernel callbacks и minifilter-драйверы Второй уровень - ядро. EDR регистрирует callback-функции через , Код:
PsSetCreateThreadNotifyRoutineКод:
PsSetLoadImageNotifyRoutineКод:
csagent.sysКод:
WdFilter.sysETW-провайдеры и облачная аналитика Третий уровень - Event Tracing for Windows. ETW предоставляет EDR телеметрию по .NET-событиям, сетевой активности, DNS-запросам, LDAP, RPC и WMI. Агент подписывается на критические ETW-провайдеры и отправляет события в облако для корреляции. По данным академических исследований, именно облачная аналитика в связке с ETW-телеметрией ловит сложные многоэтапные атаки, которые user-mode хуки пропускают. Техники обхода EDR в user-mode Перейдём к конкретике. Каждую технику разберу по схеме: что делаем, почему работает, где детектируется. API Unhooking: восстановление оригинальной NTDLL Суть - загрузить «чистую» копию ntdll.dll с диска или из KnownDlls и перезаписать модифицированные EDR байты в памяти процесса, восстановив оригинальный код функций. По MITRE ATT&CK это Disable or Modify Tools (T1562.001, Defense Evasion). Базовый подход - Full DLL Unhooking через маппинг файла с диска: C: Код:
// Пример концепции unhooking ntdll.dllКод:
CreateFileКод:
\KnownDlls\ntdll.dllКод:
.textБолее скрытный вариант - Manual Mapping отдельных функций вместо целой библиотеки. Вместо полной перезаписи Код:
.textКод:
NtAllocateVirtualMemoryDirect и Indirect Syscalls: минуя хуки полностью Вместо того чтобы снимать хуки, можно вообще не вызывать функции ntdll.dll, а сделать системный вызов напрямую. По MITRE ATT&CK - Native API (T1106, Execution). В Windows каждая функция Код:
NtXxxКод:
syscallDirect Syscalls - вызываем syscall напрямую из нашего кода: Код: Код:
; Пример для демонстрации концепции - NtAllocateVirtualMemoryHalo's Gate развивает идею: если пролог функции повреждён хуком, он ищет номер у соседних функций (Nt* функции имеют последовательные номера) и вычисляет нужный через смещение. Красивый трюк. Indirect Syscalls - более скрытный вариант. Инструкция Код:
syscallКод:
syscall; retC: Код:
// Концепция indirect syscallКод:
NtAllocateVirtualMemoryETW Patching: отключение телеметрии событий ETW - основной источник телеметрии для EDR по .NET, сетевой активности и операциям с объектами ядра. Патчинг функции Код:
EtwEventWriteC: Код:
// Патчинг EtwEventWrite в текущем процессеAMSI Bypass: обход антивирусного интерфейса AMSI (Antimalware Scan Interface) - механизм, через который PowerShell, .NET, VBScript и JScript передают содержимое скриптов на проверку антивирусу перед исполнением. Microsoft Defender for Endpoint и SentinelOne активно используют AMSI для обнаружения обфусцированных скриптов. Классический bypass - патчинг функции Код:
AmsiScanBufferКод: Код:
# Пример для демонстрации концепции - не рабочий в текущем виде,Код:
AmsiScanBufferКод:
AmsiScanBufferKernel-level bypass: BYOVD и атаки на драйверы Все техники уклонения от обнаружения в user-mode упираются в одно ограничение: kernel callbacks продолжают работать. Чтобы по-настоящему нейтрализовать EDR, атакующие лезут в ядро. BYOVD: загрузка уязвимого драйвера для EDR bypass Bring Your Own Vulnerable Driver (BYOVD) - техника Disable or Modify Tools (T1562.001, Defense Evasion), при которой атакующий загружает легитимный подписанный драйвер с известной уязвимостью и через неё получает привилегии ядра. Звучит нагло - но работает пугающе часто. Наиболее документированный пример - действия группировки SCATTERED SPIDER, описанные CrowdStrike. Атакующие использовали CVE-2015-2291 в драйвере Intel Ethernet diagnostics ( Код:
iqvw64.sysКод:
0x80862013Код:
0x8086200BКод:
0x8086200FКод:
0x80862007По техническому анализу CrowdStrike, вредоносный драйвер SCATTERED SPIDER:
Публичные инструменты вроде KDMapper позволяют маппить неподписанные драйверы в память ядра через BYOVD. По данным MITRE ATT&CK, группировки APT38, Agrius, Akira, BlackByte и другие активно используют эту технику - Agrius, например, использовал Код:
GMER64.sysRealBlindingEDR и утилиты нейтрализации EDR По данным Trend Micro (август 2025), группировка Crypto24 использовала кастомизированную версию open-source инструмента RealBlindingEDR для нейтрализации EDR-защиты. Кастомизированная версия использовала «вероятно неизвестные уязвимые драйверы» - что говорит о глубокой технической экспертизе и постоянном обновлении инструментария. Дополнительно Crypto24 злоупотребляли Код:
gpscript.exeОбход endpoint detection через сетевую изоляцию Отдельный класс техник обхода EDR - блокировка связи агента с облаком. Как отмечает исследование, получившее третье место на Pentest Award 2025, EDR «сильно завязан на облако». Без доступа к облачным сервисам агент теряет аналитические возможности: поведенческие модели не получают обновлений, корреляция событий не происходит, а DFIR-команды не видят машину в консоли. По сути, агент слепнет. Базовый подход - блокировка исходящих подключений агента через правила Windows Firewall: Код: Код:
# Блокировка исходящего трафика MDE к облакуWindows Filtering Platform (WFP) работает на уровне ниже Windows Firewall и позволяет создавать фильтры, невидимые стандартным средствам мониторинга. Фильтры WFP могут быть временными (удаляются при перезагрузке) или постоянными, и позволяют блокировать соединения по приложению, порту, адресу и другим признакам. Отключение EDR агента: практический workflow для пентеста Вот пошаговый процесс, который я использую при оценке устойчивости EDR в рамках авторизованного пентеста. Каждый шаг имеет конкретную цель и альтернативный вариант. Шаг 1 - Разведка агента. Определяем, какой EDR установлен, его версию и конфигурацию: Код: Код:
:: Определение EDR по запущенным процессамКод: Код:
# Проверка Tamper Protection для DefenderСценарийРекомендуемая техникаСложностьНужно запустить payload, агент с user-mode хукамиIndirect syscalls + ETW patchСредняяНужно полностью нейтрализовать агентBYOVD (при наличии привилегий)ВысокаяНужно снизить облачную аналитикуБлокировка через WFPСредняяНужно обойти AMSI для PowerShellHardware breakpoint на AmsiScanBufferСредняя Шаг 4 - Подготовка загрузчика. Собираем shellcode loader, который комбинирует несколько техник: C: Код:
// ПСЕВДОКОД - не компилируемый пример, демонстрирующий логику комбинированного подхода.Рынок EDR-килеров: что продают в даркнете По данным мониторинга хакерских форумов (XSS, Exploit.in, RAMP) компанией ExtraHop, рынок инструментов для обхода EDR живёт и здравствует. Согласно заявлениям продавцов (которые не были независимо верифицированы - верить на слово тут не стоит), цены варьируются от $300 за единоразовый bypass до $10 000 за полный пакет с исходным кодом. Продавец KernelMode на форуме XSS (листинг от января 2024) предлагает инструмент, который не завершает процессы EDR, а незаметно отключает функции сканирования файлов и памяти - «внешне security-решение продолжает работать, но фактически сканирование не выполняется». Поддержка каждого EDR-вендора - $1 500 в месяц, минимальный заказ - $7 500. Заявлена совместимость с CrowdStrike, SentinelOne, Kaspersky, Windows Defender и другими. Продавец Bug предлагает исходный код криптора за $10 000, в который «встроен bypass AV и EDR через syscalls и удаление хуков на системных DLL, реализован ETW и AMSI bypass». Эти данные показывают: bypass EDR - не академическое упражнение, а реальная угроза. Доступность инструментов снижает порог входа для атакующих, и это нужно учитывать при проектировании защиты. Техники уклонения от обнаружения: сторона защиты Если вы security-инженер - вот конкретные телеметрические события, которые генерируют описанные выше техники, и как их ловить: Техника атакиТелеметрия для обнаруженияИнструментAPI UnhookingЧтение ntdll.dll с диска, изменение .text секцииMinifilter-событие чтения ntdll.dll; периодическая проверка целостности хуков агентом EDR; Sysmon Event ID 7 при загрузке копии через LoadLibrary (но не при MapViewOfFile)Direct SyscallsReturn address не из ntdll.dll в call stackCrowdStrike thread stack analysis, ETW syscall tracingETW PatchingИзменение защиты памяти EtwEventWrite (VirtualProtect)Kernel callback на PAGE_EXECUTE_READWRITEBYOVDЗагрузка известного уязвимого драйвераMicrosoft WDAC, список заблокированных драйверов, Sysmon Event ID 6AMSI BypassПатчинг AmsiScanBufferAMSI провайдер с integrity checkWFP-блокировкаСоздание BFE-фильтровАудит WFP через Код:
netsh wfp show state
SentinelOne evasion: особенности обхода SentinelOne заслуживает отдельного разговора, потому что его архитектура обнаружения отличается от CrowdStrike и Defender. Агент SentinelOne активно использует поведенческий AI-движок, который анализирует последовательности операций, а не отдельные вызовы. Одиночный подозрительный syscall может пройти незамеченным, но цепочка Код:
VirtualAllocКод:
WriteProcessMemoryКод:
CreateRemoteThreadПо данным ExtraHop, продавец mkdele на форуме XSS заявлял о возможности отключения SentinelOne наряду с другими EDR-решениями. Данные MITRE ATT&CK подтверждают, что группировка Aquatic Panda пыталась остановить EDR-инструменты на скомпрометированных системах, а APT38 использовала unhooking DLL для нейтрализации EDR. Практический вывод: при обходе SentinelOne критически важно разделять этапы атаки по времени и процессам. Выделение памяти - в одном процессе, запись payload - через другой механизм (Section mapping вместо Код:
WriteProcessMemoryКод:
CreateTimerQueueTimerКод:
EnumWindowsКод:
CreateThreadВыводы Обход EDR Windows - гонка вооружений, в которой ни одна техника не остаётся рабочей навечно. User-mode хуки обходятся через direct/indirect syscalls, но EDR уходит в ядро. Kernel callbacks обходятся через BYOVD, но Microsoft закрывает дыру через WDAC и HVCI. Облачная аналитика обходится через WFP-блокировку, но Tamper Protection не даёт перенастроить агент. Каждый уровень защиты порождает свой уровень обхода - и наоборот. Для пентестера: комбинируйте техники. Ни один отдельный bypass не даёт гарантии. Indirect syscalls плюс ETW patch плюс AMSI bypass плюс кастомный shellcode loader - работает. Одна техника в изоляции - детектируется. Проверено. Для защитника: мониторьте все уровни. User-mode хуки необходимы, но недостаточны. Kernel callbacks, ETW, облачная корреляция и HVCI вместе создают эшелонированную защиту, в которой обход одного уровня не компрометирует всю систему. Начните с Код:
netsh wfp show stateВсе техники, описанные в этой статье, предназначены исключительно для авторизованного тестирования на проникновение и исследований в области безопасности. Несанкционированное применение преследуется по закону. |
| Время: 22:23 |