LIMB
Вход Регистрация

тема

Лучший способ обхода EDR/SIEM/SOC .Совершаем атаки из тени: Искусство атак без алертов

P0licedog · · 2 ответов · 587 просмотров

Приветствую всех, в этой статье вы узнаете в о том как работает EDR(по верхам) и о том как обходить host-based СЗИ EDR/SIEM при наступательных кибероперациях

Содержание:

Вступление
Теоритический минимум о EDR и его возможности
Обход EDR
Заключение



Прежде чем начать расскажу что же меня подвигло на написание данной статьи(Кроме того что в открытом доступе отсуствуют статьи про этот (лучший)вариант обхода СЗИ/EDR), потому что я лично множества раз блокировал атаки и видел неудачи redteam в трудовые “будни” В SOC


Не удалось прогрузить медиа

Устройство EDR

Теоритический минимум о EDR и его возможности
Прежде чем переходить к практический части статьи и конкретным TTP`s расскажу немного про EDR, а также рассмотрим возможности а также конкретные правила под EDR.


EDR — Это решение для защиты конечных точек, обеспечивающее мониторинг, обнаружение и реагирование на инциденты в режиме реального времени, достигается это за счет установки драйвера и работы в kernel-space и user-space через .dll injection + сбор различной телемитрии

Функции EDR которые нам интересны:
Работа с терминалом
Сетевая изоляция хоста
Возможность автоматического/ручного реагирования на угрозы
Песочница

Правила корреляции на блок/детект

Модули для блокировки шифровальщиков/вайперов

Различная нелегитимная активность детектируется/блокируется за счет правил корреляции, которая возможна с помощью телеметрии которой может собрать агент с хоста.

Возможности:

Сеть
События который могут детектироваться и создавать алерты:
Входящее/Исходящее подключения. отправка прием трафика на порт от удаленного хоста, DNS, открытие портов, ICMP, индикаторы компрометации(Например полученные в рамках TI/TH)

Процессы
Старт/Завершение процесса, загрузка образа/драйвера, доступ к процессу, создание нити в процессе(inject)
Возможность просматривать дерево процессов и анализировать действие каждого процесса, его взаимодействие с файлами/сетью/реестром/загружаемые dll в него его распостранненость в инфраструктуре, и прочая системная информация о процессе(например цифровая подпись или sid-пользователя)

Реестр
Создание/Удаление/Запись в значение реестра/Доступ к определенной ветви реестра(SAM)

Файлы
Файл был создан/переименован/удалён/прочитан
Прямой доступ к диску(Активность которая вызывается при использовании программ на восстановление удаленных файлов в основном)
Создание именованного канала/подключение

Журналы windows/sysmon

Сессии(типы входа)
Например ЛЮБАЯ активность в нерабочее время на обычных хостах, логин на DC по NTLM, от админской УЗ,
WMI - различная wmi-активность разведка через неё, wmi-подписка

Я распишу вообщем и коротко, конкретные правила можно найти что и как детектируется найти в репозитории sigma правил (https://github.com/SigmaHQ/sigma/tree/master) и Atomic-redteam, то что в сигма и атомики это лишь % в любом MSSP SOC и их продукте EDR/SIEM.

Исходя из этого мы имеем следущие возможные правила
Сеть:
1. Связь с C2 через DNS txt
2. Различные домены которые используются для эксфильтрации
3. Различные LOLC2 пример такого правила any process !=browser имеют сетевую активность с c2 доменами
LOLC2 — Это C2 инструменты/сайты, которые используют легитимные домены для связи с C2, например через GitHub/google translate/gmail, готовые POC вы можете найти https://lolc2.github.io/, но обычно в RedtTeam операциях мы анализируем трафик в сети и стараемся использовать трафик который обычен для хоста/сети организации.

Процессы:
Запуск известных LOLBIN/программ которые могут использоваться атакующими детектирование их происходит Original File Name/PE и прочим артефактам, битовым флагам процесса, командной строке, аргументов процесса в командной строке
Например следущие правила:
command line = systeminfo/любая утилита из списка lolbin`s + всякие админские утилиты и инструменты которые используются атакующими(Читайте TI-Отчеты)
Обфускацая командных строк по паттерну например исполнение команд из cobalt strike хорошо детектируется регулярными выражениями
Использование vssadmin/diskshadow для удаления/создания копий


Журналы windows
Различные журналы windows используются в тандеме с другими для более точного детектирования,

Реестр:
В реестре тоже все детектируются различные техники закрепления либо включения выключенные возможностей windows firewall/RDP, доступа к критичным веткам реестра

Также EDR легко детектируют различные способа инжектов в процесс,
или же SIEM/EDR дампа lsass посредством маски доступа который запрашиваются к процессу например с VM_READ или PROCESS_QUERY_INFORMATION от недоверенного процесса.

Вообщем вы уже должны были понять что EDR/SIEM системы очень нас палят и что либо сделать и не сгенерировать алертов вражескому SOC или же если правила стоят на блок сдамить LSASS/NTDS/SAM или выполнить что то другое что нам надо - почти невозможно поэтому проще “Удалить EDR, чем его обходить”.

Также стоит заметить что многие EDR например от microsoft вообще могут блочить любые .exe если они не имеют подпись/не встречаются на n% хостах

Что ж приступим к названию статьи.

EDR/SIEM имеют клиент-серверную архитектуру и именно это и будем использовать, все что нам нужно сделать что бы обойти внимание SOC это прекратить отправку логов на сервер, для этого мы:
Находим процесс который отправляет логи на сервак > смотрим на какой IP/domain он отправляет логи и прекращаем отправку логов(никто нечекает что пару агентов отваляются в инфре отвалился если это только не DC и то обычно нет, если ваша цель использует SOC MSSP формата то уж темболее, если агентов активных больше 10-15% алерт не будет генерироваться)
Также против некоторых EDR можно использовать еще лучше технику, посмотрев трафик определить когда он отстукивает статистику а когда алерты по размеру, и просто блочить отправку агентом алертов и агент жив и алертов нет, либо можно обходить сломав сбор определенной телеметрии с хоста, посредством вывода из строя Sysmon/WindowsEventLogs, анхукинга , но этого мы не будем рассматривать в статье(На эту тему есть много материалов от экспертов, но по моему мнению так требуется делать лишь в очень защищеных системах при опредленных условиях и когда ты точно знаешь и почему делаешь потому что можно в процессе сгенерировать сработок в том числе при side-активности при этом потратив кучу сил и времени)


Для того что бы не спалиться на данных моментах рекомендую использовать AdaptixC2(там уже есть все что нам нужно для атак в виде BOF)
Сначало нам надо получить права LA(например для этого в памяти процесса нашего C2 исполняем данный BOF, делаем релай атаки, cve, список внизу.)

Затем листим список процессов(tasklist) находим по названию нужный процесс и его ID(Например winglobeat/filebeat/cyserver)


Не удалось прогрузить медиа

Рис. Пример поиска PID`a процесса
Когда нашли процесс который отвественный за передачу логов смотрим айпишник куда он стучится через netstat –ano
Не удалось прогрузить медиа


Теперь стопаем отправку логов на него например через netsh/New-NetFirewallRule,

netsh advfirewall firewall add rule name="LIMB.cc" dir=OUT action=BLOCK remoteip=192.168.10.59 protocol=any enable=yes


 

До

Не удалось прогрузить медиа


 

После 


Не удалось прогрузить медиа


Правило применяется сразу а перед отправкой есть задержка поэтому в SOC это не палится, также смотире порты какие используются при разведке и так в 99% сможете определить в какое СЗИ отправляются данные, google gpt для поиска в помощь

Важно! Если компания не развернула у себя локально, а например в облаке у компании MSSP-провайдера могут быть запасные сервера, в связи с этим по портам СЗИ вносите блок, тут стоит заметить что в ELK как и в других SIEM в случае не возможности отправки на этот порт есть запасной куда и придет ошибка + возможно не распаршенный лог, поэтому в случае при блокировке портов учитывайте это, обычно порты не меняют.

https://ips.cld.elstc.co/ - диапозон адресов elastic cloud

Также иногда можно просто прочитать в конфиге на хосте локально куда отправляются логи


Кстати tasklist и netstat –ano под правилами в СОКАХ, как хорошо что в AdaptixC2, есть для этого BOF

Также есть похожие способы в виде этих POC, но они ОЧЕНЬ шумные и их использовать в реальных "симуляциях" атак плохая идея(EDR засекают активность когда их дескрипторы запрашивают), но если хотите делайте через execute-assembly(0 смысла здесь писать что и как работает есть полноценный ресерч на десятки страниц), но используя этот метод вы улетите с хоста и инфры думать о своей ошибке через 5-10 минут.


Затем если у нас не получается выполнить что-то или же мы просто хотим убрать EDR с нашего хоста используем BYOVD
Bring Your Own Vulnerable Driver - метод атаки, для проведения которой используют уязвимый драйвер, который при этом содержит известные уязвимости. Поскольку такие драйверы имеют подпись, ОС позволяет их установить. После установки драйвера мы можем использовать его для того что бы убить EDR на уровне драйвера.



Рассмотрим использование рабочего инструмента для этого (https://github.com/ZeroMemoryEx/Terminator), обойдите AV,  и грузите, теперь можете он будет останавливать процессы(дополните в случае необходимости) + теперь можете использовать kernel space малварь

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

Работа защитных процессов
Не удалось прогрузить медиа

Утилита сработала 
Не удалось прогрузить медиа

После запуска утилиты
Не удалось прогрузить медиа


Собственно на этом можно и заканчивать, мы рассмотрели возможности EDR и лучший способ борьбы с EDR/SIEM/SOC/AV создали свой маленький shadow-it и теперь можем совершать атаки из тени, без алертов и блокировок. Пишите что хотите узнать о SOC или после чего вас выкидывали из сети при работе в сетях, помогу с обходами .
👍54 🔥6 😁9 😮2 👏3 😢14
Отлично, теория есть, добавьте практику. Если нужно время - сообщите мне в ЛС, я выдам права на редактирования.
👍1
Ответadmin

Отлично, теория есть, добавьте практику. Если нужно время - сообщите мне в ЛС, я выдам права на редактирования.

POC и чуть практики имеется
👍3

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.