Недавно мы писали про протектор, который скрывает вредоносную программу AgentTesla, заслуженного пенсионера на рынке вредоносного ПО. Однако AgentTesla и не думает уходить со сцены, своей популярностью он обязан в том числе постоянной поддержке продукта разработчиками — в этом году авторы AgentTesla снова обновили свой стилер. Илья Померанцев, руководитель группы исследований и разработки CERT-GIB, рассказывает о новых возможностях AgentTesla .

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

Обновление противодействия анализу


Ранее для защиты от реверс инжиниринга авторы использовали протектор ConfuserEx. В обновленной версии ему на замену пришел протектор Obfuscar 1.0.


В отличие от своего предшественника, Obfuscar не использует обфускацию потока исполнения (Control Flow Obfuscation), однако имеет более сложную обфускацию строк.


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



На помощь приходит инструмент DeObfuscar-Static, который отлично справляется с поставленной задачей.

Новый password stealer


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

Browser VNC / RDP Mail
Iridium Browser UltraVNC Mailbird
360 Browser RealVNC eM Client
Liebao Browser TightVNC Becky!
Citrio Windows RDP
Sleipnir 6 FTP
QIP Surf VPN
Coowon NordVPN FTPGetter
QQ Browser Private Internet Access
Messenger Database
Trillian MySQL Workbench

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


Сookie stealer


Помимо функционала кражи паролей AgentTesla теперь может отправлять файлы cookie браузеров.



Полный список приложений, откуда ВПО может извлекать Сookie
  • Firefox
  • IceCat
  • PaleMoon
  • SeaMonkey
  • Flock
  • K-Meleon
  • Postbox
  • Thunderbird
  • IceDragon
  • WaterFox
  • BlackHawk
  • CyberFox
  • Opera
  • Comodo Dragon
  • Chrome
  • 360 Browser
  • Yandex
  • SRWare Iron
  • Torch Browser
  • Brave Browser
  • Iridium Browser
  • CoolNovo
  • 7Star
  • Epic Privacy Browser
  • Amigo
  • CentBrowser
  • CocCoc
  • Chedot
  • Elements Browser
  • Kometa
  • Sleipnir 6
  • Citrio
  • Coowon
  • Liebao Browser
  • QIP Surf
  • QQ Browser
  • UC Browser
  • Orbitum
  • Sputnik
  • uCozMedia
  • Vivaldi

Обновленный протокол для WebPanel


Это тип сетевого взаимодействия с командным центром, использующий HTTP-протокол. В новой версии используется другой user agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0.

Алгоритм и формат шифрования сообщения не поменялись. Но само сообщение теперь имеет другой формат:

{Type}{Separator}{Hwid}{Separator}{Time}{Separator}{Pcname}{Separator}{Logdata}

В исследованном нами сэмпле значение разделителя было 71244700b0852d2ccbc891116a43dd2552dcaa7abccd7861.

Значение Type теперь кодируется числом:

0 Info
1 Hold connection
2 Uninstall
3 Keylog
4 Screenshots
5 Passwords
6 Cookie

TorProxy


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

  • Проверять, есть ли в списке процессов «tor». Если есть, то ВПО проверяет актуальность значения PID.
  • Если проверка не пройдена — ВПО завершает процесс по имени, устанавливает новую версию Tor и запускает сервис.
  • Через порт 9051 ВПО посылает клиенту Tor сигнал SIGNAL NEWNYM, который приводит к построению новой цепочки.

При установке проверяется, есть ли в папке %AppData%\Tor файл с именем tor.zip. Если его нет — ВПО парсит страницу по адресу www[.]theonionrouter[.]com/dist.torproject.org/torbrowser/ в поисках ссылки на скачивание последней версии клиента. Если возникла ошибка — используется ссылка www[.]theonionrouter[.]com/dist.torproject[.]org/torbrowser/9.5.3/tor-win32-0.4.3[.]6.zip.

Далее архив распаковывается и запускается сервис.

Для запуска Proxy-сервера используется TCP-порт 0, что позволяет каждый раз получать произвольный порт, выделяемый системой.

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

После этого производится подключение к Tor-сервису по локальному порту 9050. Для инициализации взаимодействия используется протокол SOCKS5. ВПО поддерживает аутентификацию типа «NO AUTHENTICATION REQUIRED» и «USERNAME/PASSWORD» согласно спецификации rfc1928.

ВПО ожидает наличие списка входных нод при инициализации Proxy-сервера, но в нашем экземпляре они отсутствуют.

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

Если флаг TLS не был установлен — полученный ранее контент HTTP-пакета будет передан Tor-сервису на порт 9050. В противном случае клиенту будет отправлено сообщение «200 Connection established\r\nProxy-Agent: HToS5x\r\n\r\n».

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

Новый способ взаимодействия с CnC


Теперь AgentTesla может использовать в качестве командного центра мессенджер Telegram.


Данные передаются в виде прикрепленного файла. Заголовок сообщения имеет следующий вид:

New {тип данных}  Recovered!

User Name:
OSFullName:
CPU:
RAM:

Заключение


Мир киберпреступности, как и мир киберзащиты, не стоит на месте. AgentTesla — настоящий старичок на рынке ВПО. Своей популярностью он обязан в том числе постоянной поддержке продукта разработчиками. Новый функционал, например, взаимодействие через Telegram, может стать проблемой для организаций, в которых используют этот мессенджер, а модуль TorProxy позволит скрывать настоящие командные центры.

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

Эффективное противодействие подобным вредоносным программам возможно только на уровне инновационных инженерных решений. Например, система нового класса Group-IB Threat Hunting Framework способна защищать сеть компании и рабочие места сотрудников, в том числе удаленные, за счет запатентованных технологий обнаружения кибератак и немедленного реагирования на инцидент. THF обладает самыми актуальными сведениями о ВПО благодаря интеграции с системой киберразведки Threat Intelligence & Attribution, возможности обнаружения аномалий, скрытых тоннелей, коммуникации с C&C-серверами, а также мощному инструменту поведенческого анализа файлов, извлекаемых из электронных писем, сетевого трафика, файловых хранилищ — модулю Polygon.