Pull to refresh
3
Степанов Даниил@ihateyou

Pentest, Red Team, DevSecOps

Send message

все верно) я показал лишь использование одного 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 или любой инсталлятор вызывает на раз

Information

Rating
Does not participate
Location
Азов, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

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