Спящий зомби под маской майнера? [VBS.BtcMine.6]

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,814
Реакции
6,593
Впервые стал известен: по данным VT - 2014-03-24
Защита кода: двойная обфускация + шифрование с помощью Microsoft Script Encoder
Качество исполнения кода: высокое.
Детекты лабораторий (состоянием на 24.07.14):

Avast VBS:Agent-BCX [Trj]
DrWeb VBS.BtcMine.6
Kaspersky HEUR:Trojan-Downloader.Script.Generic
Qihoo-360 virus.vbs.crypt.c

Примеры тем с лечением: Ted BtcMine.258

Автозагрузка? Да. Через планировщик задач. Задание с именем Origin и правами SYSTEM при входе пользователя.
Нужны ли права администратора? Частично: для создания автозагрузки.
Использует ли дополнительные компоненты для своей работы? Да.
1) перед запуском ? - предположительно Да. Файл %TEMP%\svchost.exe
2) в процессе работы? - Да (на текущий момент - нет). Использует 2 сервера для докачивания компонентов (сейчас стоит перенаправление на LocalHost). В случае неудачи - сервер № 3, адрес которого получает через сервер статистики BitCoin (графа Balance). Сервер еще не задействован.
3) системные компоненты? возможно. Файл %WINDIR%\system32\OpenCL.dll (пока что не используется).

Вредоносное действие: точная цель неизвестна. Ожидает пассивной команды сервера.

Это зашифрованный скрипт (VBE - Visual Basic Encoded), который может напрямую выполняться сервером сценариев без необходимости расшифровки.

1. При первом запуске проверяет наличие в системе файла %WINDIR%\system32\OpenCL.dll
Если его нет, скрипт завершает работу. Иначе:
2. Копирует себя в %APPDATA%\Origin\update.vbe
Папку %APPDATA%\Origin делает нескрытой, если она таковой была.
3. Добавляется в автозагрузку через планировщик.
4. Циклично пингует адрес Google 8.8.8.8
5. Если интернет есть, пытается подгрузить "компоненты" с серверов, которые в данный момент "недоступны" (или временно заморожены):
№1:
hxxp://55900f6043109d0c94f1287fab1ef610.com
если неудачно:
№2
hxxp://b3bd5f983fb3f0f3bfdccaab7bf68644.com

GET-запрос для №№ 1,2 формируется в виде строки:
hxxp://m.55900f6043109d0c94f1287fab1ef610.com/?id=55900f6043109d0c94f1287fab1ef610.com&key=update.vbe

если неудачно:
№3
берет имя сервера из страницы на сервере статистики BitCoin (обновляемая графа Balance, к которой дописывается hxxp://m.15NWxLvhtzqSDkQv7JLAyPvFh64U9HA7qW<BALANCE>.com/?id=15NWxLvhtzqSDkQv7JLAyPvFh64U9HA7qW<BALANCE>.com&key=update.vbe)
(предположительно здесь есть невидимая ошибка в коде, которая сломает логику получения списка файлов с сервера № 3 - еще не разобрался что это и почему оно так работает).

Статус сервера статистики говорит, что учетка ни разу не использовалась для зачисления BitCoin.
А вот пример заполненной страницы статистики.

Сервера содержат зашифрованную мод. Цезарем строку со списком файлов,
находящимися на том же сервере.
6. Список расшифровуется.
7. Завершается процесс %TEMP%\svchost.exe
8. Докачиваются компоненты по списку.
9. Запускается последний файл из этого списка.

Специфика серверов:
При попытке пинга на адреса серверов, адрес перенаправляется на 127.0.0.1

Код:
C:\Users\Alex>ping b3bd5f983fb3f0f3bfdccaab7bf68644.com

Обмен пакетами с b3bd5f983fb3f0f3bfdccaab7bf68644.com [127.0.0.1] с 32 байтами данных:
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Статистика Ping для 127.0.0.1:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Объясняется очень просто: человек купил доменное имя, а затем в
настройках прописал для него 127.0.0.1. Это технически вполне
возможно, есть куча других сайтов, которые тоже перенаправляются
на localhost еще на уровне DNS. Посмотри в Wireshark, например,
при выполнении пинга на данные адреса. Мне показал примерно
следующее:
Код:
[Domain Name System (response)]

Flags: 0x8180 Standard query response, No error

...

Answers

Name: b3bd5f983fb3f0f3bfdccaab7bf68644.com
Type: A (Host address)
Class: IN (0x0001)
Time to live: 5 minutes
Data length: 4
Addr: 127.0.0.1 (127.0.0.1)
Ну то есть, самый обычный DNS.[/quote]

Адреса серверов № 1 и № 2 не являются случайным набором символом.
Это MD5-хеш, взятый от слов:
1) r18
2) r18a

Дальнейшее исследование
Теоретически, можно проверить соседние имена серверов.
Детальнее сервера и геолокацию не смотрел.

Заключение
С вердиктом лаборатории Dr.Web не согласен.
Не буду 100% утверждать что это майнер. Прямых доказательств нет.
Есть 2 варианта:
скрипт проверяет наличие библиотеки OpenCL, которая используется компонентами майнера
и прекращает работу, если ее нет потому что:
1) он не сможет запустить майнер на такой системе (но что мешает ее докачать и зарегить?)
2) автор сделал проверку файла первой строкой скрипта на видном месте, чтобы запутать следы выдав этот скрипт за майнер биткоинов.
 
Последнее редактирование:
Назад
Сверху Снизу