Почему стилеры проходят 0/72 на VirusTotal — evasion техники о которых молчат

REDBIT SUPPORT

Хайзенберг
Support
Сообщения
60
Реакции
70
Ты загружаешь файл на VirusTotal. 0 детектов из 72 движков. Зелёная галочка, всё чисто. Запускаешь — а через час все пароли из браузера, куки, крипто-кошельки и сессии Telegram уже на сервере у кого-то другого

Это не баг VirusTotal. Это не глупость антивирусов. Это целая индустрия, которая зарабатывает на том, чтобы малварь была невидимой. И техники там сильно сложнее чем "запаковать UPX-ом"

Разберём как это работает изнутри


Как устроена защита и почему она не работает

Антивирус проверяет файл двумя способами — сигнатурный анализ и поведенческий. Сигнатуры это по сути база "отпечатков" известных вредоносов. Поведенческий — запуск файла в песочнице (sandbox) и наблюдение за тем что он делает

Проблема в том что оба подхода предсказуемые. Сигнатуру можно поменять — перекомпилировал, добавил мусорный код, сменил пару байт. А песочницу можно определить и просто не запускать вредоносный код пока в ней сидишь

Вот тут начинается самое интересное


Определение виртуальной машины

Первое что делает нормальный стилер после запуска — проверяет, не сидит ли он в виртуалке. Потому что 99% песочниц это VMware, VirtualBox или Hyper-V. И каждая из них оставляет следы

Реестр Windows

VMware и VirtualBox прописывают себя в реестре. Малварь просто читает ключи:

Код:
HKLM\SOFTWARE\VMware, Inc.\VMware Tools
HKLM\HARDWARE\ACPI\DSDT\VBOX__
HKLM\SYSTEM\CurrentControlSet\Services\VBoxGuest

Если хотя бы один существует — выход. Код не исполняется

Процессы

Гостевые утилиты виртуалок запускают фоновые процессы. Малварь перебирает список:

Код:
vmtoolsd.exe    — VMware Tools
vmwaretray.exe  — VMware Tray
VBoxService.exe — VirtualBox Guest
VBoxTray.exe    — VirtualBox Tray
qemu-ga.exe     — QEMU Guest Agent

Нашёл хоть один — всё, прощай

MAC-адреса

У каждого гипервизора свой OUI-префикс сетевой карты:

Код:
00:50:56 — VMware
00:0C:29 — VMware
08:00:27 — VirtualBox
00:15:5D — Hyper-V

Проверяется за миллисекунды. Один WMI-запрос — и понятно где ты

Железо

Виртуалки экономят на деталях. Часто — 1-2 ядра CPU, 2 ГБ оперативки, диск на 60 ГБ, видеокарта "Microsoft Basic Display Adapter". Малварь проверяет железо и если оно слишком бедное — считает что это песочница. Обычный юзер не сидит на машине с 2 ГБ RAM в 2026

WMI-запросы

Один запрос к Win32_ComputerSystem и ты знаешь всё:

Код:
Model: "VMware Virtual Platform" или "VirtualBox"
Manufacturer: "VMware, Inc." или "innotek GmbH"
NumberOfProcessors: < 2 → подозрение

Win32_Bios выдаёт SerialNumber со строкой "VMware-". Win32_VideoController — "VMware SVGA" или "VirtualBox Graphics Adapter". Win32_DiskDrive — размер меньше 60 ГБ. Каждый из этих запросов занимает одну строчку кода

CPUID — гипервизор на уровне процессора

Инструкция CPUID с EAX=1 возвращает бит 31 в ECX — hypervisor present bit. Если выставлен — ты в виртуалке. Дальше CPUID с EAX=0x40000000 отдаёт строку вендора: "VMwareVMware", "Microsoft Hv", "KVMKVMKVM", "XenVMMXenVMM". Это аппаратный уровень — подделать сложнее чем реестр

Файлы и драйверы

VMware и VirtualBox ставят свои драйверы в System32:

Код:
VBoxMouse.sys, VBoxGuest.sys, VBoxSF.sys   — VirtualBox
vmhgfs.sys, vmmemctl.sys, vmci.sys, vm3dmp.sys — VMware

Плюс именованные устройства — CreateFile на \\.\VBoxGuest или \\.\HGFS. Если открылось — виртуалка

Малварь может проверять загруженные DLL в процессе. Lumma Stealer ищет sbiedll.dll (Sandboxie), api_log.dll (SunBelt Sandbox), vmcheck.dll (Virtual PC). Нашёл хоть одну — выход


Тайминг-атаки — когда время всё решает

Песочницы ограничены по времени. ANY.RUN даёт 60 секунд на бесплатном тарифе, Joe Sandbox — до 5 минут. Малварь это знает

Простой вариант — Sleep(300000). Пять минут сна и песочница уже выгрузила файл как "безопасный". Потом малварь просыпается и начинает работать

Но антивирусы научились ускорять Sleep. Поэтому малварь проверяет — действительно ли прошло столько времени, сколько она просила

Инструкция RDTSC (Read Time-Stamp Counter) считает тики процессора. Замеряешь до Sleep и после. Если реальное время не совпадает с запрошенным — значит кто-то ускорил таймер. Значит песочница

Код:
RDTSC → сохранить значение
Sleep(10000)
RDTSC → сравнить
Дельта слишком маленькая? → выход

Другой приём — GetTickCount до и после вычислительной нагрузки. Если разница неадекватная — среда подкручена


Проверка на живого пользователя

В песочнице никто не двигает мышку, не кликает, не печатает. Малварь это проверяет

LummaC2 v4.0 (один из самых активных стилеров 2024-2025) использует тригонометрию для определения реального пользователя. Не метафора — буквально вычисляет углы

Алгоритм: GetCursorPos() в цикле ждёт пока курсор сдвинется. Потом захватывает 5 позиций с интервалом 50 мс. Строит 4 вектора между точками. Через dot product считает углы между каждой парой соседних векторов. Конвертирует радианы в градусы. Если все углы меньше 45 градусов — движение плавное, человеческое, можно работать. Если больше — это рывки автоматизации, повтор цикла

Песочницы двигают курсор по прямым линиям или рандомно. Реальный человек водит мышью плавными дугами. Разница в геометрии — и малварь это эксплуатирует

Другие варианты проще но тоже работают:

- Количество кликов за 30 секунд — ноль значит песочница
- История браузера — пустая = свежая среда
- Файлы на рабочем столе — один файл test.exe это очевидный аналитик
- Количество установленных программ — меньше 20 подозрительно
- Размер %TEMP% — у реального юзера мегабайты мусора, у песочницы чисто
- Username — проверка на "sandbox", "malware", "virus", "test", "john" (Lumma проверяет это отдельно)
- Имя EXE-файла — "sample.exe" или "malware.exe" = очевидно лаборатория


Антидебаг

Отдельный класс проверок — на отладчик. Если кто-то подключил дебаггер (x64dbg, IDA, OllyDbg) — значит реверс-инженер разбирает малварь

Код:
IsDebuggerPresent()
NtQueryInformationProcess(ProcessDebugPort)
CheckRemoteDebuggerPresent()

Три WinAPI вызова. Если хоть один возвращает True — малварь либо завершается, либо уходит в бесконечный цикл, либо начинает делать что-то безобидное

Кроме API есть хардварные трюки. Например, чтение PEB-структуры напрямую через mov eax, fs:[30h] — поле BeingDebugged. Или проверка флага NtGlobalFlag (0x70 означает что процесс создан отладчиком)

Малварь также проверяет наличие процессов анализа:

Код:
x64dbg.exe, x32dbg.exe
ida.exe, ida64.exe
procmon.exe, procexp.exe
wireshark.exe
fiddler.exe
dnspy.exe


Криптеры и обфускация

Это коммерческая часть. На маркетплейсах продаются криптеры — сервисы которые перепаковывают малварь так, чтобы антивирусы не узнали

Как это работает — берётся исходный пейлоад (стилер, RAT, что угодно), шифруется, оборачивается в легитимно выглядящий лоадер. При запуске лоадер расшифровывает пейлоад в памяти и исполняет. На диске никогда не появляется "чистый" вредоносный файл — сигнатура не срабатывает

Olymp Loader (2025) рекламируется с показателем 1/72 на VirusTotal. Pure Crypter — аналогично, продаётся как FUD (Fully UnDetectable). Подписка от 50 до 300 баксов в месяц

Важный момент — разработчики криптеров постоянно тестируют свои сборки на сервисах вроде kleenscan или avcheck (не VirusTotal — он расшаривает семплы с антивирусными компаниями). Как только детект появляется — пересобирают. По сути подписка включает регулярные обновления обфускации


AMSI bypass и отключение защиты

Windows Antimalware Scan Interface — прослойка через которую антивирус проверяет скрипты и загружаемый код в памяти. Малварь патчит amsi.dll прямо в процессе — записывает ret-инструкцию в AmsiScanBuffer, и все последующие проверки возвращают "чисто"

Lumma Stealer использует открытый тулкит для AMSI bypass. Патч занимает 5-6 строк кода. После этого PowerShell-команды, .NET-сборки и любой скриптовый код проходят без проверки

ETW (Event Tracing for Windows) — то же самое. Малварь патчит NtTraceEvent чтобы EDR-решения не получали события. Слепая зона


Реальная картина в цифрах

Picus Security проанализировала 1,153,683 семплов малвари для Red Report 2026. Sandbox Evasion (MITRE T1497) — четвёртая по популярности техника, найдена в 20% всех образцов. Годом ранее её не было в десятке. При этом успешно блокируется только в 13% случаев — одна из самых сложных для защиты

ANY.RUN за 2024 год зафиксировал 134,260 детектов time-based evasion (T1497.003) в 4 миллионах задач. В 2025 эта цифра резко выросла

Kaspersky: детекты стилеров +59% за год, шпионского ПО +51%. Но FUD-семплов тоже больше — значит антивирусы ловят старое, а новое проходит

VirusTotal индексирует около 70 антивирусных движков для файлов (полный список — docs.virustotal.com). В октябре 2025 их ИИ-система Code Insight нашла macOS-стилер с 0 детектов от всех движков на момент загрузки. Не какой-то PoC, а рабочий многоэтапный AppleScript-инфостилер

Три самых активных стилера — Lumma, StealC, RedLine — ответственны за 75%+ заражений. Все три используют как минимум 3-4 техники из описанных выше. RedLine в октябре 2024 пережил Operation Magnus (совместная операция полиции нескольких стран), но семплы до сих пор в обороте


Что с этим делать

Антивирус не бесполезен — он ловит 95% мусора. Но против целевой или свежей малвари он бессилен

Если работаешь с чувствительными данными — не доверяй одному инструменту. Изоляция (отдельная машина или хотя бы VM для грязной работы), сегментация сетей, мониторинг исходящего трафика. Стилер может обойти антивирус, но не спрячет DNS-запросы к своему C2

Если пишешь или анализируешь малварь — знание evasion техник обязательно. Без этого ты либо напишешь что-то что поймают через час, либо не поймёшь как работает то что тебе прислали

Вопросы по теме кидайте в ветку, разберём
 
Есть уж чуткое подозрение после прочтения, что это нейростатья :fuck:
Сообщение обновлено:

Но содержание полностью соотвествует названию статьи, так что не важно, спасибо было интересно почитать.DRUUUG
 

Похожие темы

Стилеры в 2026 как крадут, сколько зарабатывают и кто покупает логи ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Стилеры — самый массовый тип малвари прямо сейчас. Не шифровальщики, не RAT-ы, а именно стилеры. Потому что порог входа низкий, риски размытые, а деньги конкретные Разберём как это работает, кто...
Ответы
5
Просмотры
306
В таких публикациях мы будем рассматривать под микроскопом исходные коды (открытые, утёкшие, декомпилированные, до каких дойдут руки) или же дизассемблерные листинги так или иначе известной в наших узких кругах малварки. Мы будем всматриваться в общую архитектуру проекта малварки, отдельные её...
Ответы
3
Просмотры
Назад
Сверху Снизу