Т1218.011 Rundll32.exe

admincsonEdit Profile

Rundll32 дозволяє виконувати бібліотеки з динамічними посиланнями, більш відомі як DLL. Файли DLL призначені для надання додаткової спільної функціональності виконуваним файлам
(EXE-файлам). Оскільки файли DLL не можуть виконуватися самостійно, Microsoft надала Rundll32 як засіб для виклику специфічної функціональності у файлі DLL. Оскільки Rundll32 присутній у всіх основних версіях Windows версіях Windows, багато програмних рішень покладаються на цю утиліту.

Незважаючи на цифру 32 у назві, Rundll32 може виконувати як 32-розрядні, так і 64-розрядні файли DLL. Просте виконання Rundll32 може виглядати наступним чином:

rundll32 c:\path\to\file.dll,EntryPoint argument1 argument2

У першій частині команди вказується шлях до файлу DLL. Це може бути абсолютний шлях шлях, як показано у попередньому прикладі, але мережеві шляхи (\remote-server\path\ to\file.dll) і відносні шляхи (..\path\to\file.dll) також підтримуються. Файл, на який посилається на який посилається, повинен бути дійсним файлом DLL. Хоча розширення .dll зазвичай використовується для цього типу файлів типу, можна використовувати будь-яке розширення файлу, або навіть не використовувати жодного.
Після шляху ставиться кома (або пробіл), після якої вказується точка входу в бібліотеку DLL, яка має бути виконана. Це необхідно, оскільки файли DLL не мають початкової точки за замовчуванням. DLL може мати декілька функцій, тому користувач повинен вказати, яку частину DLL він хоче викликати. Це можна зробити, назвавши функцію, як показано у прикладі, EntryPoint, або вказавши порядковий номер, присвоєний функції (наприклад, #123).
Нарешті, хоча це і не є обов’язковим, користувач може передати один або декілька аргументів до функції DLL, що викликається.

ВИКОРИСТАННЯ ЗЛОВМИСНИКАМИ

Широка доступність, поширеність і довірений статус Rundll32 призвели до того, що зловмисники використовують цей до цього виконуваного файлу для досягнення своїх цілей. Здебільшого використовують три основні типи зловживань Rundll32:

  • Виконання згенерованих зловмисниками DLL-файлів
  • Виконання шкідливого корисного навантаження за допомогою легітимних DLL-файлів
  • Виконання легітимної функціональності DLL у зловмисних цілях
Рис. 1. Приклади використання техніки Rundll32

Виконання згенерованих зловмисниками DLL-файлів

Зловмисники використовують Rundll32 для виконання шкідливого навантаження, представленого у вигляді DLL-файлу. Для цього зловмисники повинні доставити власний скомпільований DLL-файл до системи організації-жертви.
Проксі-сервер для виконання таких програм через Rundll32 має ряд переваг. Якщо зловмисник
зловмисник виконує ту ж саму функціональність, що і окремий EXE-файл, поведінка зловмисника з більшою ймовірністю буде помітною. Якщо використовується програмне забезпечення зі списком дозволів для додатків, такі запуски можуть бути можуть бути заблоковані. Виконуючи той самий код через Rundll32, який є надійним, виконуваний файл, підписаний Microsoft, зловмисник може успішно обійти захист. І, оскільки багато програмних рішень покладаються на Rundll32, вони також можуть обходити політики дозволів.
Falcon OverWatch помітив, як WIZARD SPIDER використовує цю техніку. Під час одного вторгнення вони успішно обдурили несвідомого співробітника організації-жертви, змусивши його відкрити шкідливого VBScript, щоб скинути на диск шкідливі DLL-файли, які потім були викликані через Rundll32. Намагаючись обійти механізми виявлення, WIZARD SPIDER використовував різні, рандомізовані розширення замість .dll. Файл DLL містив корисне навантаження Cobalt Strike, яке після успішного виконання дозволило б противнику використати його як канал зв’язку та управління (C2) канал.

Виконання шкідливого програмного навантаження через легальні DLL-файли

Зловмисники можуть зловживати певною функціональністю легальних DLL для виконання зловмисних операцій. Часто це стосується легітимних DLL, які можна обманом змусити виконувати контрольовані зловмисниками команди.
Прикладом цього є advpack.dll – власний файл Windows, який знаходиться в папці System32. Було помічено, що зловмисники використовують Rundll32 для виклику точки входу LaunchINFSection цього файлу, яка може бути використана для інтерпретації файлів компонентів сценаріїв (SCT). Цей файл типу, записаний у вигляді звичайного тексту, можна обманом змусити виконувати довільні команди. Оскільки дії виконуються довіреним виконуваним файлом, який завантажує довірену DLL, зловмисник може обійти автоматизовані механізми захисту.

Використання легітимної функціональності DLL у зловмисних цілях

Зловмисники також часто використовують легітимну функціональність довірених DLL для досягнення своїх цілей. У цьому випадку зловмиснику зазвичай не потрібно створювати власні файли, що робить цей метод повністю автономним і (майже) безфайловим.
Прикладом такого типу зловживання Rundll32 є comsvcs.dll, яка знаходиться в папці System32 у папці System32 у сучасних інсталяціях Windows. Ця DLL містить точку входу під назвою MiniDump (порядковий номер 24), яка може бути використана для створення файлів дампа пам’яті від процесів, запущених у системи. Було помічено, що зловмисники зловживають цією функціональністю, щоб отримати дамп пам’яті дамп пам’яті lsass.exe (Local Security Authority Subsystem Service) – критично важливого для системи процесу, що містить конфіденційну інформацію, таку як паролі, хеші та токени безпеки. Створивши файл дампа, зловмисники можуть проникнути на підконтрольну їм інфраструктуру, щоб витягти життєво важливі дані, такі як дійсні облікові дані.
Успішні виклики можуть мати такий вигляд:

rundll32 comsvcs.dll,MiniDump 123 variant1.bin full
rundll32 comsvcs MiniDump 456 variant2.dmp full
rundll32 comsvcs #24 111 variant3.ext full
rundll32 comsvcs #00000024 999 variant4 full
rundll32 comsvcs #+24 101 variant5.txt full

WICKED PANDA – одна з багатьох зловмисників, які часто використовують цю технологію. Використовуючи замість того, щоб завантажувати та запускати інструменти для збору облікових даних таких як Mimikatz, зловмисник має більше шансів залишитися непоміченим. В цьому випадку, як файл DLL-файл і функціонал, що використовується, є легітимними.

HUNTING

Розглянувши кілька способів використання Rundll32 зловмисниками, стає зрозуміло, що командний рядок відіграє важливу роль у зловживанні Rundll32. Існує багато способів виявити потенційно зловмисне використання Rundll32. У цьому дослідженні ми розглянемо три з них:

  • Рідкісні файли DLL
  • Загальні підозрілі батьки
  • Заплановані завдання

Додаткові способи пошуку

Додаткові полювання, спрямовані на виконання Rundll32, які ви, можливо, захочете виконати, включають в себе наступні:

  • Виконання Rundll32, які не посилаються на конкретний файл DLL та/або пов’язані з виконанням незвичних імен або розширень файлів
  • Підозрілі батьківські або дочірні процеси Rundll32
  • Використання порядкових номерів замість іменованих значень точок входу
  • Незвичайні мережеві з’єднання, ініційовані процесами Rundll32
  • Елементи запуску або інші точки розширення автозапуску (ASEP), що посилаються на Rundll32