T1574.013: KernelCallbackTable
Злоумышленники могут изменить таблицу KernelCallbackTable
процесса, чтобы перехватить поток его исполнения и запустить свою полезную нагрузку. Таблица KernelCallbackTable
располагается в блоке операционного окружения процесса (PEB) и инициализируется массивом графических функций, доступных процессу графического интерфейса после загрузки user32.dll
.
Злоумышленник может перехватить поток исполнения процесса, заменив функцию обратного вызова в таблице KernelCallbackTable
полезной нагрузкой. Для изменения функции обратного вызова могут применяться разные методы, включая элементы техник Отраженная загрузка кода и Внедрение кода в процессы.
Указатель на адрес KernelCallbackTable
в памяти можно получить, определив местоположение PEB (например, с помощью вызова функции NtQueryInformationProcess()
нативного API). После получения указателя можно дублировать KernelCallbackTable
и задать для функции в таблице (например, fnCOPYDATA
) адрес полезной нагрузки (например, через вызов WriteProcessMemory()
). Затем PEB обновляется и получает новый адрес таблицы. При вызове подмененной функции будет активирована полезная нагрузка.
Подмененная функция обычно вызывается с помощью сообщения Windows. После перехвата процесса и выполнения вредоносного кода злоумышленники могут восстановить KernelCallbackTable
в исходное состояние с помощью дальнейшего кода в полезной нагрузке. Перехват потока исполнения с помощью KernelCallbackTable
дает возможность избежать обнаружения защитными решениями, поскольку выполнение замаскировано под легитимный процесс.
Какие продукты Positive Technologies покрывают технику
Описание методов обнаружения техники пока недоступно
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Вызовы API ОС | Описание | Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances. for known bad sequence of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as |
---|
Меры противодействия
ID | M1040 | Название | Предотвращение некорректного поведения | Описание | Some endpoint security solutions can be configured to block some types of behaviors related to process injection/memory tampering based on common sequences of indicators (ex: execution of specific API functions). |
---|