Явку провалено: виводимо AgentTesla на чисту воду. Частина 1
Нещодавно до Group-IB звернулася європейська компанія-виробник електромонтажного обладнання - її співробітник отримав поштою підозрілий лист із шкідливим вкладенням. Ілля Помаранців, Фахівець з аналізу шкідливого коду CERT Group-IB, провів детальний аналіз цього файлу, виявив там шпигунську програму AgentTesla і розповів, чого чекати від такого ВПО і чим воно небезпечне.
Цим постом ми відкриваємо серію статей про те, як проводити аналіз подібних потенційно небезпечних файлів, а найцікавіших чекаємо 5 грудня на безкоштовний інтерактивний вебінар на тему «Аналіз шкідливого ПЗ: розбір реальних кейсів». Усі подробиці – під катом.
Механізм поширення
Нам відомо, що шкідливе програмне забезпечення потрапило на машину жертви через фішингові листи. Одержувач листа був, мабуть, поставлений у приховану копію.
Аналіз заголовків показує, що відправник листа було підроблено. Насправді лист пішов з vps56[.]oneworldhosting[.]com.
В атачі листа знаходиться архів WinRar qoute_jpeg56a.r15 зі шкідливим виконуваним файлом QOUTE_JPEG56A.exe всередині.
Екосистема ВПО
Тепер подивимося, як виглядає екосистема шкідливого ПЗ, що досліджується. На схемі нижче зображено його структуру та напрями взаємодії компонентів.
Тепер розглянемо кожен із компонентів ВПО докладніше.
Завантажувач
Початковий файл QOUTE_JPEG56A.exe являє собою відкомпільований AutoIt v3 скрипт.
Для обфускації вихідного скрипта використовувався обфускатор з аналогічними. PELock AutoIT-Obfuscator характеристиками.
Деобфускація проводиться у три етапи:
Зняття обфускації For-If
Насамперед необхідно відновити потік управління скрипта. Заплутування потоку управління (Control Flow Flattening) — один із найпоширеніших способів захисту бінарного коду програм від аналізу. Переплутування, що заплутують, різко збільшують трудомісткість виділення і розпізнавання алгоритмів і структур даних.
Відновлення рядків
Для шифрування рядків використовуються дві функції:
gdorizabegkvfca - виконує Base64-подібне декодування
xgacyukcyzxz - простий побайтовий XOR першого рядка з довжиною другого
Зняття обфускації BinaryToString и Виконати
Основне навантаження зберігається у розділеному вигляді в директорії Шрифти секції ресурсів файлу
Для дешифрування вилучених даних використовується функція WinAPI CryptDecrypt, а як ключ застосовується сесійний ключ, згенерований на основі значення fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.
Дешифрований виконуваний файл надходить на вхід функції RunPE, яка здійснює ProcessInject в RegAsm.exe за допомогою вбудованого ShellCode (також відомого як RunPE ShellCode). Авторство належить користувачеві іспанського форуму indetectables[.]net під ніком Wardow.
Варто також відзначити, що в одній із гілок цього форуму обговорювався обфускатор Автоінформація з аналогічними виявленими у процесі аналізу семпла властивостями.
Сам ShellCode Досить простий і привертає увагу лише запозиченої у хакерської групи AnunakCarbanak. функцією хешування API-дзвінків.
Нам також відомі випадки використання Frenchy Shellcode різних версій.
Крім описаного функціоналу, ми також виявили неактивні функції:
Блокування ручного завершення процесу у менеджері завдань
Перезапуск дочірнього процесу у разі його завершення
Обхід UAC
Збереження корисного навантаження у файл
Демонстрація модальних вікон
Очікування зміни позиції курсору миші
AntiVM та AntiSandbox
Самознищення
Викачування корисного навантаження з мережі
Нам відомо, що такий функціонал характерний для протектора CypherIT, яким, зважаючи на все, і є досліджуваний завантажувач.
Основний модуль ВПО
Далі коротко опишемо основний модуль ВПО, а детальніше розглянемо його у другій статті. У даному випадку він є додатком на . NET.
У ході аналізу ми виявили, що використовувався обфускатор. ConfuserEX.
IELibrary.dll
Бібліотека зберігається у вигляді ресурсу основного модуля і є відомим плагіном для Агент Тесла, який надає функціонал для отримання різної інформації з браузерів Internet Explorer і Edge.
Agent Tesla – це модульне програмне забезпечення для шпигунства, яке розповсюджується за моделлю malware-as-a-service під виглядом легального кейлоггер-продукту. Agent Tesla здатний отримувати та передавати на сервер зловмисникам облікові дані користувача з браузерів, поштових клієнтів та клієнтів FTP, реєструвати дані буфера обміну, захоплювати екран пристрою. На момент аналізу офіційний сайт розробників був недоступним.
Точкою входу служить функція GetSavedPasswords Клас InternetExplorer.
В цілому виконання коду лінійно і не містить засобів захисту від аналізу. На увагу заслуговує лише нереалізована функція GetSavedCookies. Мабуть, функціонал плагіна передбачалося розширити, але це не було зроблено.
Закріплення завантажувача у системі
Вивчимо, як завантажувач закріплюється у системі. Досліджуваний екземпляр не здійснює закріплення, проте в аналогічних подіях воно відбувається за такою схемою:
В папці З:UsersPublic створюється скрипт Візуальний Бейсік
Приклад скрипту:
Вміст завантажувача доповнюється нульовим символом і зберігається в папці %Temp%<Довільне ім'я папки><Ім'я файлу>
У реєстрі створюється ключ автозапуску для файлу скрипта HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Ім'я скрипта>
Отже, за результатами першої частини аналізу нам вдалося встановити назви сімейств усіх компонентів ВПО, що вивчається, розібрати схему зараження, а також отримати об'єкти для написання сигнатур. Ми продовжимо аналіз цього об'єкта в наступній статті, де детальніше розглянемо основний модуль Агент Тесла. НЕ пропустіть!
До речі, 5 грудня запрошуємо всіх читачів на безкоштовний інтерактивний вебінар на тему «Аналіз шкідливого ПЗ: розбір реальних кейсів», де автор цієї статті, спеціаліст CERT-GIB, в онлайн-режимі покаже перший етап аналізу ВПО — напівавтоматичне розпакування семплів на прикладі трьох реальних міні-кейсів із практики, а ви зможете взяти участь в аналізі. Вебінар підійде фахівцям, які мали досвід аналізу шкідливих файлів. Реєстрація суворо з корпоративної пошти: зареєструйтесь. Чекаємо Вас!