MITRE ATT&CK T1055.015 Инъекция процесса: ListPlanting

MITRE ATT&CK

ListPlanting - это техника внедрения в процессы, которую злоумышленники используют для выполнения вредоносного кода путем манипулирования внутренними структурами данных в операционной системе. Эта техника включает в себя модификацию связанных списков или очередей выполнения, на которые опирается ОС или средства безопасности для отслеживания процессов и потоков. Внедряя вредоносный код в эти структуры, атакующие могут перехватить поток выполнения и выполнить свою полезную нагрузку таким образом, чтобы она оставалась скрытой от традиционных механизмов обнаружения.

Что такое элемент управления списком?

Элемент управления списком - это компонент графического интерфейса пользователя (GUI), который отображает коллекцию элементов в структурированном формате, позволяя пользователям эффективно просматривать данные и взаимодействовать с ними. Он часто встречается в приложениях Windows, является частью общей библиотеки элементов управления в Windows API и используется для представления списков элементов с дополнительными значками, флажками и подробной информацией.

Элементы управления списком широко используются в файловых проводниках, менеджерах задач и приложениях, управляемых данными, обеспечивая гибкий способ отображения больших наборов информации. Они поддерживают несколько режимов просмотра, включая вид значка, вид списка, подробный вид и вид плитки, что позволяет пользователям настраивать представление данных. Разработчики могут расширить функциональность списков с помощью таких функций, как сортировка, фильтрация, группировка, а также событий взаимодействия с пользователем, таких как выделение и перетаскивание.

Атакующие могут использовать элементы управления просмотром списка для внедрения вредоносного шелл-кода в перехваченные процессы, чтобы обойти защиту на основе процессов и потенциально получить привилегии в системе.

Использование злоумышленниками ListPlanting

ListPlanting - это форма инъекции кода, использующая поведение элементов управления list-view в элементах графического интерфейса Windows-приложений. Примером использования техники инъекции ListPlanting может служить следующий поток:

  1. Первоначальная разведка: Атакующий обнаруживает целевое приложение с элементом управления list-view (SysListView32), который хранит и отображает данные в структуре, похожей на список.
  2. Выделение памяти в целевом процессе: Используя методы инъекции процесса или вызовы API для получения хэндла к окну SysListView32, атакующий выделяет память в адресном пространстве целевого процесса. Атакующий стремится использовать легитимные системные вызовы, чтобы избежать обнаружения, и может избегать таких функций, как WriteProcessMemory, которые тщательно отслеживаются.
  3. Размещение полезной нагрузки через сообщения Windows: Вместо прямой записи в область памяти процесса атакующий может использовать оконные сообщения (PostMessage или SendMessage) для косвенного внедрения полезной нагрузки. Этими сообщениями могут быть сообщения списочного вида LVM_SETITEMPOSITION и LVM_GETITEMPOSITION для копирования полезной нагрузки в выделенную память целевого процесса по два байта за раз.
  4. Настройка триггера выполнения: Вредоносная полезная нагрузка служит в качестве пользовательского обратного вызова сортировки, который должен быть выполнен, когда элементы списка будут отсортированы. Чтобы организовать это выполнение, атакующий подготавливает условия, манипулируя настройками управления просмотром списка таким образом, чтобы вредоносный код выступал в качестве функции обратного вызова.
  5. Запуск выполнения полезной нагрузки: Выполнение инициируется отправкой сообщения LVM_SORTITEMS, которое дает указание SysListView32 отсортировать элементы, что, в свою очередь, приводит к выполнению вредоносного обратного вызова (ранее внедренной полезной нагрузки).
  6. Выполнение: Когда целевой процесс получает команду сортировки, он неосознанно выполняет полезную нагрузку в обратном вызове, тем самым запуская код злоумышленника внутри процесса. Встроенное в list-view поведение использования обратных вызовов для сортировки элементов способствует такому скрытному выполнению.
Комментарии: 0