Менеджер завдань на Excel

На який рис може знадобитися таск-менеджер, реалізований стандартними засобами Excel? Гарне питання. Відомому фахівцю з інформаційної безпеки Дідьє Стівенсу довелося зробити подібну штуку, коли він зіштовхнувся із системою, в якій було заборонено буквально все. Взаємодія з ОС здійснювалася через спеціальну оболонку, що перешкоджає запуску більшості додатків, у тому числі стандартного таск-менеджера (через який її легко можна було б відрубати), та й локальні політики обмежували його використання. Побачивши, що Excel входить до дозволених для запуску програм, Дідьє подумав, чому б не задіяти вбудовані в Office VBA-макроси, щоб керувати запущеними процесами в системі? Подумав-подумав та зробив повноцінний таск-менеджер.

Як це виглядає?

PoC є звичайним Excel-файлом - TaskManager.xls. Ідея проста: якщо в системі обмежений запуск таск-менеджера, але при цьому є можливість відкривати Excel-таблиці з макросами, то керувати процесами можна через нескладний макрос, реалізований на VBA (Visual Basic для додатків). Відкривши файл, ти побачиш дві кнопки: List processes (Відобразити процеси) та Execute commands (Виконати команду). Власне, тиснемо першу і бачимо, як таблиця швидко заповнюється інформацією про процеси (назва файлу, що виконується, ID процесу, шлях до бінарника, користувача, під яким запущений процес, час створення процесу, а також розрядність -32 або 64 біта). Будь-який процес можна вивантажити, призупинити і, відповідно, відновити. Для цього в колонці Command напроти процесу треба поставити прапор потрібної команди (наприклад, термінейту процесу відповідає буква t) і натиснути кнопку Execute commands. Виходить справді корисна штука. Тут навіть не требафантазувати з приводу пентесту та обмежених оточень, щоб уявити, навіщо вона може знадобитися. Згадай хоча б winlocker'и — будь-яка подібна погань блокує запуск таск-менеджера.

Хакер #157. Гроші на багах у Chrome

Як це працює?

Всі макроси повністю написані на чистому VBA. Для маніпуляції з процесами викликаються функції WIN32 з відповідних системних бібліотек. Потрібні функції спочатку оголошуються шляхом завантаження з DLL, яке здійснюється приблизно таким чином:

Після цього їх можна використати без обмежень. Наприклад, наступна функція вивантажує процес із пам'яті:

Остання версія TaskManager.xls працює як у 32-, так і в 62-бітних системах, відмінно почувається в будь-яких Офісах (аж до 64-бітної версії Office 2010) і має цифровий підпис.

можна
TaskManager.xls у дії