Agent Tesla и DotRunpeX — опаснейшее комбо в деле: история и анализ. Часть 1

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Приветствую, друзья. Если бы меня кто-то сейчас спросил, какое сегодня самое популярное вредоносное ПО в мире, я бы без раздумий ответил — Agent Tesla. Почему я так считаю? На этот вопрос я отвечу, прикрепив единственный скрин:

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

В статье мы разберем инфраструктуру этой коллаборации и проанализируем оба вредоноса, чтобы вы, дорогие читатели, не стали очередной жертвой хитрых злоумышленников.

Agent Tesla, что же ты такое на самом деле

Agent Tesla — это не только шпионское ПО, которое способно похищать различные данные с устройства жертвы, но и троян удаленного доступа (RAT), с помощью которого злоумышленники могут взять под свой полный контроль целевую машину. Зловред также может собирать скриншоты, видео и захватывать данные из буфера обмена.

Впервые Агент Тесла появился в конце 2014 года и резко вырос в 2020-х годах, когда его использовали для фишинговых кампаний на тему COVID-19. 

Ранее агент распространялся исключительно посредством фишинговых рассылок, которые отличилась своей продуманностью. Злоумышленники для прикрытия использовали реально существующие компании, их реальные логотипы и легитимные подписи. Такие атаки в основном были нацелены на аудиторию Центральной Европы, США и России. Чтобы узнать подробнее, советую ознакомиться с отчетом от Лаборатории Касперского

Но с начала этого года методология атак с использованием вредоноса претерпела разительные изменения. Преступники отказались от спам-рассылок и начали совместную кампанию с новым дроппером-инжектором DotRunpeX. 

Инжекторы — это семейство троянских программ, внедряющих свой код в память других программ.

Дро́пперы — семейство вредоносных программ, предназначенных для несанкционированной и скрытой от пользователя установки на компьютер жертвы других вредоносных программ, содержащихся в самом теле дроппера или загружаемых по сети. Говоря простым языком, после установки на ваше устройство дроппера, единственная его задача — загрузить другие вирусные файлы.

Agent Tesla — краткий статистический анализ

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

Конкретно наш образец маскируется под скомпилированный HTML файл справки Windows с расширением .CHM.

Давайте рассмотрим его более подробно, но сперва представлю сетап утилит, используемых в этой статье: 

  1. DIE — Detect it Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием. 

  2. PE Bear — неплохой инструмент для просмотра и редактирования составляющих PE файла. 

  3. Tiny Tracer — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.

  4. IDA PRO — инструмент для реверс-инжиниринга. 

  5. Reko — декомпилятор, также знаком нам с прошлых статей.

  6. HollowHunter — утилита, распознает и сбрасывает множество потенциально вредоносных имплантов (замененные/имплантированные PE, шелл-коды, перехватчики, патчи в памяти).

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

  1. Этап первый: .CHM загрузчик инжектора второго этапа.

  2. Этап второй: внедрение и выполнение Agent Tesla в памяти устройства жертвы.

  3. Полноценное развертывание вредоноса.

Этап первый: загрузка инжектора второго этапа

Итак, все, что у нас имеется — это вредоносный .chm файл. Визуальный осмотр нам не даст ровным счетом ничего:

Далее, уже по классическому сценарию, мы выгружаем этот файл на Virustotal и получаем следующий результат:

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

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

Больше всего нас интересует строка, которая содержит в себе ссылку на некий .txt файл, который на самом деле является скриптом Windows PowerShell.

К слову, перейдя по этой ссылке, мы попадем на сайт какого-то сербского продуктового магазина. Забавно, что скачивание файла micro.txt, который содержит в себе полезную нагрузку Agent Tesla, таки произойдет. Администрация этого ресурса была уведомлена.

Этап второй: внедрение и выполнение Agent Tesla в памяти устройства жертвы

Как уже упоминалось ранее, полученный нами файл является сценарием PowerShell, замаскированным под обычный .txt файл. К сожалению, сразу к его анализу перейти не представляется возможным, так как он обфусцирован.

К счастью, мне удалось найти простой скрипт на Python, который с легкостью деобфусцирует это чудо. Сперва может показаться, что здесь совершенно ничего не понятно, но вот что происходит на самом деле: 

Начинается все с переменной $TsbW, которая деобфусцирует и вызывает функцию tMCffSD, та, в свою очередь, распаковывает массив байтов, в котором и содержится основное тело вредоноса. Далее будет задействован простой .NET Reflection, с помощью которого полученный массив внедряется в память и выполняется. 

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

Третий этап: полноценное развертывание вредоноса

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

В этом нам поможет утилита Hollows Hunter, которую мы уже неоднократно использовали ранее. Процесс не стоит того, чтобы его описывать, так как он сводится к запуску одного исполняемого файла. Но Хантер оправдал мои ожидания, и теперь мы можем провести полноценный анализ.

Весит тело Агента всего-то 209 КБ, при просмотре свойств не удалось найти полезной информации. Что же, давайте воспользуемся DIE для получения дополнительной информации о языке и компиляторе нашего вредоноса. 

Факт попыток ухода от анализа и обнаружения явно стоит вашего внимания. Так как вредонос уже был запущен на машине, он прерывает выполнение любых утилит, которые могут угрожать его жизнедеятельности, поэтому DIE постоянно выдает ошибки, но некоторую информацию я все-таки смог извлечь:

По дате компиляции сложно что-либо сказать, возможно, в этом образце инжектора использовалась старая версия Агента.

Также видим, что вредонос является библиотекой .NET, а в качестве компилятора использовался VB.NET.

Библиотеки .NET — по сути своей, являются конечным результатом компиляции кода на C#. К нашему счастью, мы с легкостью можем декомпилировать данный образец с помощью утилиты DNspy и провести анализ чистого исходного кода или, по крайней мере, чего-то близкого к нему. 

Хотя в этом случае также видим, что был задействован какой-никакой обфускатор для защиты кода, обойти его достаточно просто. Для этого мы воспользуемся универсальной утилитой De4Dot. (Её сборку и компиляцию оставим за кадром, все это подробно описано на официальной странице на GitHub).

Вирустотал показал удовлетворительный коэффициент обнаружения, а это значит, что даже самый простенький антивирус поможет вам защититься от этой напасти:

Итак, теперь можем переходить к основному анализу в утилите DNSpy, но сперва позвольте очертить примерный алгоритм работы вредоноса: 

  1. Первичное исследование системы, связь с C&C сервером и отправка информации. 

  2. Загрузка дополнительного вредоносного файла и его запуск. 

  3. Закрепление в системе. 

  4. Непосредственно воровство данных и выполнение команд злоумышленника. 

Первичное исследование системы, связь с C&C сервером и отправка информации

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

Как видите, вирус собирает данные о железе устройства, на котором был запущен: тип процессора и объем оперативной памяти. Также Агент запрашивает имя пользователя, название операционной системы и геолокацию.  

Однако вредонос даже не проверяет доступность своего командного сервера, что является совсем нетипичным. Он просто создает POST запрос к ресурсу, передавая информацию. 

Загрузка дополнительного вредоносного файла и его запуск

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

Для вторичного вируса будет создана специальная директория по адресу: /AppData/LUU.

Закрепление в системе

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

Наш образец не устанавливает никакого постоянства, скорее всего, для ухода от анализа, так как добавление в автозагрузку вынуждает вредонос материализовать свою копию в папке AutoRun. 

Но эту его возможность мы все равно разберем, ведь это можно рассматривать как индикатор обнаружения в некоторых случаях.

Во-первых, как я уже упомянул выше, вредонос сохранит свою копию в папке Автозагрузки. 

Во-вторых, Агент создаст ключ в реестре Windows по следующему пути: 

HKLM\SYSTEM\DriverDatabase\DeviceIds\PCI\VEN_1000&DEV_00E5&SUBSYS_020F1137

Фрагменты кода, отвечающие за этот процесс, вы можете увидеть ниже.

Кража данных 

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

Агент Тесла как стиллер 

Основным арсеналом вредоноса являются следующие функции: 

  1. Кража всех типов данных из огромного списка браузеров: сохраненные авторизационные формы, данные о кредитных картах и прочее. 

  2. Кража данных из менеджеров паролей.

  3. Захват и отправка любого файла на командный сервер. 

Взаимодействие Теслы с браузерами очень простое, если сравнивать его с тем же Редлайном, то последний является венцом инженерной мысли, а наш исследуемый лишь где-то посредине. 

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

Здесь нет такой путаницы с определением целевых браузеров, как в RedLine, ведь их огромный список захардкоджен в этой же функции. Опять приведу в пример Редлайн, в котором определение списка «воруй это, а это не нужно» происходило с задействованием нескольких классов.

Под спойлером оставлю список браузеров, находящихся под прямой угрозой: 
  • «Firefox», «%APPDATA%\\Mozilla\\Firefox\\»

  • «IceCat», «%APPDATA%\\Mozilla\\icecat\\»

  • «PaleMoon», «%APPDATA%\\Moonchild Productions\\Pale Moon\\»

  • «SeaMonkey», «%APPDATA%\\Mozilla\\SeaMonkey\\»

  • «Flock», «%APPDATA%\\Flock\\Browser\\»

  • «K-Meleon», «%APPDATA%\\K-Meleon\\»

  • «Postbox», «%APPDATA%\\Postbox\\»

  • «Thunderbird», «%APPDATA%\\Thunderbird\\»

  • «IceDragon», «%APPDATA%\\Comodo\\IceDragon\\»

  • «WaterFox», «%APPDATA%\\Waterfox\\»

  • «BlackHawk», «%APPDATA%\\NETGATE Technologies\\BlackHawk\\»

  • «CyberFox», «%APPDATA%\\8pecxstudios\\Cyberfox\\»

  • «Opera Browser», «%APPDATA%\\Opera Software\\Opera Stable»

  • «Yandex Browser», «%APPDATA%\\Yandex\\YandexBrowser\\User Data»

  • «Iridium Browser», «%APPDATA%\\Iridium\\User Data»

  • «Chromium», «%APPDATA%\\Chromium\\User Data»

Аналогичным образом будет организована попытка кражи данных из различных VPN сервисов, FTP клиентов и менеджеров паролей. Опять же, здесь их огромный список, поэтому я выберу актуальные для нашего региона: 

  • OPEN VPN

  • NORDVPN

  • CYBERFOX

  • FTP GETTER

  • ManagerMULTI-VNC

  • MYSQL WORKBENCH

  • КЛИЕНТ FILEZILLA

  • FTP NAVI

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

Агент Тесла как троян удаленного доступа: кейллогер и захват экрана

А вот здесь уже все намного интереснее. Во-первых, у оператора вируса есть возможность задействовать кейлоггер, который реализован прямо в коде основного вредоноса.

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

Сегодняшний гость же использует системный вызов функции SetWindowsHookEx, которая способна захватывать лишь самые простые события ввода. Но этого уже достаточно, чтобы получить вводимые пароли.

Следом за этой функцией идет реализация захвата экрана устройства жертвы, реализована она с помощью функции System.Drawing.Imaging. Интересным является то, что эта возможность остается достаточно примитивной, ведь злоумышленник получит лишь несколько снимков экрана. 

У нас на анализе уже был вредонос, который создавал небольшой стрим для злоумышленника, показывая не только рабочий стол, но и веб-камеру. 

Экстрафильтрация данных

Простыми словами, злоумышленник-оператор вредоноса может просматривать файловые каталоги на вашем устройстве, копировать интересующий его материал и отправлять на командный сервер.

Аналогичным образом он может и загрузить на ваше устройство что угодно. 

Наиболее используемым способом экстрафильтрации, конкретно в этом образце, является HTTP-запрос через TOP прокси. Для его реализации вредоносу нужно сперва скачать и установить сам клиент ТОР’a. 

Реализовано все достаточно примитивно — через функцию DownloadString. Ссылка же, по которой будет производиться скачивание, просто захардкоджена в этом же классе. 

Затем вредонос задействует функцию mw_tor_http_request, прежде определив целевой файл, и с её помощью выгружает данные на С&C сервер.

Краткий динамический анализ вредоноса 

Для динамического анализа у нас уже имеется следующий сетап утилит (все они находятся в открытом доступе):

  1. ProcessHacker — простенько и со вкусом, понаблюдаем за тем, как вирус взаимодействует с другими .dll и системой. 

  2. TCPView — утилита, которая прослеживает исходящие TCP-соединения. 

  3. Regshot — очень простое приложение с открытым исходным кодом, которое позволит просмотреть изменения в реестре после запуска вредоноса. 

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

Но можно выделить общее правило для всех стиллеров — установка соединения. В случае, когда неизвестный процесс устанавливает связь с удаленным хостом, вам стоит воспользоваться хорошим антивирусом. 

Этот образец пытается замаскироваться под Windows Defender, это вы можете увидеть на скриншоте, и подключается к какому-то серверу.

К слову, он расположен где-то возле Вроцлава в Польше. Так как Агент Тесла этой версии никак не закрепляется в системе, никаких изменений в реестре нам обнаружить не удалось.

Выводы

Агент Тесла — вредонос, который кошмарит пользователей по всему миру уже больше восьми лет. Стиллер постоянно дорабатывается и совершенствуется как в методах доставки, так и в плане функциональности. 

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

А на этом у меня все, бывайте.

Автор статьи @DeathDay


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Источник: https://habr.com/ru/companies/first/articles/740588/


Интересные статьи

Интересные статьи

На портале AskaManager, где сотрудники делятся своими рассказами о работе, поделились забавной историей. Дальше прямая речь.«Эта ситуация прямо сейчас разворачивается в офисе моего мужа, так что я зде...
Данная статья, является продолжением, описания хода учебного исследовательского проекта по разработке рекомендательной системы.В первой части мы остановились на том, что модель, полученная с использов...
Все началось несколько лет назад со школьного проекта по Computer science. Моя идея была сделать компьютерную программу которая проанализирует историю рынка, определит комбинации из 4х свечей в класте...
До прочтения этой статьи рекомендую прочитать первую часть.План на сегодня:Сегодня мы создадим простеньких противников, который будут ходить туда-сюда. Научимся наносить им урон.
Уже многое было написано как про low-code подход (хороший пост от vas3k), так и про платформу Power Platform от Microsoft, поэтому постараюсь не стать очередным КЭПом и н...