Текстовое поле Windows оказалось неожиданным каналом для внедрения исполняемого кода в чужой процесс. Разработчик под псевдонимом Two Seven One Three 17 октября представил PhantomBuffer, экспериментальный инструмент обхода EDR, систем мониторинга угроз на компьютере. По словам автора, проверка на одном неназванном защитном продукте прошла без предупреждений.
Обычно внедрение кода требует выделить память в другом процессе, записать туда полезную нагрузку и запустить выполнение. За такими действиями следят EDR, в том числе по вызовам VirtualAllocEx и WriteProcessMemory. PhantomBuffer обходит оба вызова, используя штатный механизм Windows. Похожий способ скрывать внедрение кода ранее показали с помощью DLL.
Основой метода стала функция SendMessageW, через которую приложения передают сообщения окнам. Команда WM_SETTEXT обычно меняет текст в поле ввода или заголовке окна. PhantomBuffer отправляет таким способом подготовленные байты. Windows помещает данные в память принимающего процесса, а инструмент затем находит нужную область через ReadProcessMemory, не вызывая WriteProcessMemory.
Для работы нужен процесс с подходящим графическим элементом Edit. Вспомогательная программа FindTargetWindows ищет такие окна и при необходимости запускает новое приложение. Автор приводит Notepad для Windows 10 и Regedit для Windows 11. Затем PhantomBuffer обнаруживает область с переданными байтами и меняет права доступа к памяти, разрешая выполнение находящегося там кода.
Самой необычной частью стал запуск полезной нагрузки. Прямую смену состояния потока через SetThreadContext и NtSetContextThread защитные продукты могут распознать как признак атаки. Поэтому автор задействовал консольный отладчик Microsoft cdb.exe. Отладчик подключается к процессу, переводит указатель исполнения выбранного потока на нужный адрес и отключается, оставляя процесс работать.
У приёма есть технические ограничения. Через WM_SETTEXT нельзя без искажений передать полезную нагрузку, содержащую нулевые байты 0x00, поэтому автор предупреждает о недопустимом символе. Кроме того, подходят не любые процессы. Требуется доступный графический элемент, а Windows ограничивает отправку сообщений приложениям с более высоким уровнем целостности.
Разработчик опубликовал исходный код двух утилит и видеодемонстрацию. По утверждению автора, PhantomBuffer смог избежать обнаружения при проверке на EDR высокого класса, но название продукта, условия испытания и независимые результаты не приведены. Публикация описывает проверку концепции, а не подтверждённую кампанию заражения или универсальный обход всех защитных решений.
Для обнаружения подобных действий автор рекомендует отслеживать необычные вызовы SendMessageW с WM_SETTEXT и применение отладчика cdb.exe. Дополнительным сигналом может служить запуск отладчика из нестандартного каталога. PhantomBuffer показывает, что отсутствие привычной операции записи в чужую память ещё не исключает внедрение кода. Проверять приходится всю цепочку поведения процесса.
