Обновить
3
Степанов Даниил@ihateyou

Pentest, Red Team, DevSecOps

Отправить сообщение

все верно) я показал лишь использование одного callback
в то время когда их очень много и если даже 1 не пройдет можно пробовать другие

Тесты проводились на двух свежих win10

Спасибо за вопрос!
VirtualProtect с PAGE_EXECUTE_READWRITE действительно детектится многими EDR, но не сигнатурно, а на поведенческом уровне.
Легитимные приложения - JIT-компиляторы (Chrome V8, .NET JIT, Java JIT, PowerShell JIT), установщики (NSIS, InnoSetup), драйверы, обфускаторы легитимного ПО и системные механизмы (например, ntdll!RtlMoveMemory с последующим исполнением). EDR не может заблокировать все вызовы VirtualProtect с EXECUTE, иначе сломается половина софта.

Спасибо за вопрос. Вы правы, что GetProcAddress может быть триггером в динамическом или эвристическом анализе, но в статическом анализе он легитимен на 100% по нескольким причинам.

Статические сигнатуры строятся на паттернах - уникальных байт-кодах, хэшах участков кода, специфичных последовательностях API. Одиночный вызов GetProcAddress встречается в миллионах легитимных приложений (от драйверов принтеров до игр Steam). Внедрение сигнатуры на него даст миллион ложных срабатываний - ни один вендор этого не сделает

GetProcAddress(“NtCreateThreadEx”) + вызов полученного адреса + отсутствие цифровой подписи + работа из временной директории - да, это повод для алерта. Но в нашем случае GetProcAddress используется для VirtualAlloc, LoadLibrary, GetProcAddress (рекурсивно для самой себя) функций, которые легитимный рантайм Rust или любой инсталлятор вызывает на раз

Информация

В рейтинге
Не участвует
Откуда
Азов, Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Пентестер
Ведущий
Тестирование на проникновение