Недавно мы писали про протектор, который скрывает вредоносную программу 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 | |
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.