Обходим антивирус при помощи десяти строк кода

Специалист по информационной безопасности под ником evasiv3 опубликовал на прошлой неделе запись в своем блоге, в которой рассказывается о том, как можно обойти любой антивирус при помощи десяти строк кода.

Изначально Evasiv3 планировал написать огромный пост о способах обхода антивирусной защиты, однако, протестировав первый шаг своего «руководства» он был очень удивлен: ни один из 56 протестированных продуктов, призванных обеспечить безопасность пользователя в сети, не обнаружил его вредоносный бинарник.

image

После получения подобного результата я решил отказаться от своей идеи долгого и изматывающего обхода антивирусной защиты и действовать быстро, «грязно», но при этом невероятно просто.


В своей работе evasiv3 использовал Veil-Evasion, часть Veil-Framework’a. Автор отмечает его как «превосходный инструмент, который почти никогда его не подводил».

Код, представленный ниже, написан на С++ и ориентирован на атаку, в первую очередь, windows-платформы:

#include 
#include 
int main(int argc, char **argv) {
 char b[] = {/* your XORd with key of 'x' shellcode goes here i.e. 0x4C,0x4F, 0x4C */};
 char c[sizeof b];
 for (int i = 0; i < sizeof b; i++) {c[i] = b[i] ^ 'x';}
 void *exec = VirtualAlloc(0, sizeof c, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 memcpy(exec, c, sizeof c);
 ((void(*)())exec)();
}


Приведенный выше код создает массив символов с шелл-кодом, выполняет операцию XOR с невероятно сложным ключом «х» в нижнем регистре, выделяет немного памяти, копирует массив в нее и после выполняет.

Если вы сейчас подумали «да ладно!», то у вас та же реакция, что и у Evasiv’a. Масла в огонь подливает тот факт, что бинарник был обнаружен 0 антивирусов из 56 после проверки через VirusTotal. Продемонстрированный выше АВ-обход показывает, что простейший и основной метод проникновения до сих пор является рабочим.

Конечно, большинство антивирусов сосредоточены на пресечении эксплуатации уязвимостей, а не на них выявление, так что «хоронить» их пока рано.

На скриншоте в начале статьи указана дата за 2015 год, однако, автор кода перепроверил бинарник VirusTotal перед публикацией в своем блоге. Результат тот же: 0 из 56.

© Habrahabr.ru