BackDoor.Yebot – многофункциональная троянская программа-бэкдор


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

Распространяется BackDoor.Yebot при помощи троянской программы Trojan.Siggen6.31836. После запуска на атакуемом компьютере, этот вредонос встраивает собственный код в процессы:

  • svchost.exe;
  • csrss.exe;
  • lsass.exe;
  • explorer.exe.


Затем, отправив на удаленный сервер соответствующий запрос, Trojan.Siggen6.31836 загружает и расшифровывает трояна BackDoor.Yebot, настраивает его в памяти компьютера и передает ему управление.

Стоит отметить, что у Trojan.Siggen6.31836 часть используемых им функций зашифрована. Расшифровываются они только в момент выполнения, для чего троянская программа резервирует память, которая автоматически освобождается после исполнения кода функции. Также этот зловред обладает механизмами проверки наличия в атакуемой системе виртуальной машины и обхода системы контроля учетных записей пользователя (User Accounts Control, UAC).

Сам BackDoor.Yebot обладает довольно обширным функционалом. В частности он способен:

  • запускать на инфицированном компьютере FTP-сервер;
  • запускать на инфицированном компьютере Socks5 прокси-сервер;
  • модифицировать протокол RDP для обеспечения удаленного доступа к инфицированному компьютеру;
  • фиксировать нажатия пользователем клавиш (кейлоггинг);
  • устанавливать обратную связь с инфицированным ПК для FTP, RDP и Socks5, если в сети используется NAT (бэкконнект);
  • перехватывать данные по шаблонам PCRE (Perl Compatible Regular Expressions) — библиотеки, реализующей работу регулярных выражений в среде Perl, для чего троян перехватывает все возможные функции, связанные с работой в Интернете;
  • перехватывать токены SCard;
  • встраивать в просматриваемые пользователем веб-страницы постороннее содержимое (веб-инжекты);
  • расстанавливать перехват различных системных функций в зависимости от принятого конфигурационного файла;
  • модифицировать код запущенного процесса в зависимости от принятого конфигурационного файла;
  • взаимодействовать с различными функциональными модулями (плагинами);
  • создавать снимки экрана;
  • осуществлять поиск в инфицированной системе приватных ключей.


Для обмена данными с управляющим сервером BackDoor.Yebot использует как HTTP-протокол, так и собственный бинарный протокол. Оба эти протокола используют для обмена данными порт 80.

Примеры HTTP-запросов:

http://46.***.***.94/d/i.html?b=88B22416&c=88B22416

По этому запросу загружается переупакованный троян-лоадер полезной нагрузки Trojan.Siggen6.31836.

http://46.***.***.94/t/i.html?b=88B22416&c=88B22416

Запрос зашифрованного алгоритмом RC4 файла конфигурации, который после расшифровки имеет следующую структуру:

<?xml version="1.0" encoding="utf-8"?>
<tasks>
<task taskid="49">
<startat>0</startat>
<stopat>0</stopat>
<daemonconf>46.***.***.94:80:some_magic_code1</daemonconf>
<plugin>internal</plugin>
<exec_type>3</exec_type>
<function>sndbtnfo</function>
<params />
</task>
<task taskid="525">
<startat>0</startat>
<stopat>0</stopat>
<daemonconf>46.***.***.94:80:some_magic_code1</daemonconf>
<plugin>internal</plugin>
<exec_type>0</exec_type>
<function>curls</function>
<params>
<param>46.***.***.24</param>
<param>46.***.***.94</param>
</params>
</task>
</tasks>


Запрос загрузки дополнительных модулей (плагинов):

http://46.***.***.94/tp/i.html?m=<имя плагина>&b=98B22416&s=0&c=98B22416

Запрос списка управляющих серверов:

http://46.***.***.94/dc/i.html?b=88B22416

Отчет троянской программы о выполнении задачи:

http://46.***.***.94/t/r.html?b=88B22426&tid=525

Отчет троянской программы со сведениями о версии бота:

http://46.***.***.94/u/i.html?b=88B22416&p=1&v=20&c=88B22426

Используемый бэкдором бинарный протокол имеет заголовок:

struct thead
{
  BYTE magic[16]; //some_magic_code1
  DWORD d1; //0
  DWORD Bid;
  DWORD d3; //0
};

Далее следует информация о типе передаваемого сообщения:

#pragma pack(push, 1)
struct tbody1
{
  DWORD Size; //размер сообщения SizeData+2
  WORD Op; //номер команды
};
struct tbody2
{
  DWORD Flag;
  WORD Op; //номер команды
  DWORD Size; //размер сообщения SizeData
};
#pragma pack(pop)


Далее передаются данные, размер сообщения соответствует параметру, заданному переменной SizeData. Поддерживаются следующие команды:

  • 450 — создать в системе нового пользователя с заданным именем;
  • 351, 352 — изменить правила PCRE для перехвата данных;
  • 108 — скачать и запустить плагин в памяти компьютера;
  • 102,105 — задать конфигурацию для модификации протокола RDP;
  • 400 — задать конфигурацию для веб-инжектов;
  • 777 — подготовить указанные отчеты;
  • 200 — отправить на командный сервер информацию об инфицированной машине;
  • 350 — отправить на командный сервер похищенные ключи и данные.


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

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