SHA1 | fcf7197bbae81292dc9e444dd9ee1fb6f510cd05 (упакованный) |
a2b801df9bd8438adcf3c08d44bc42e34a83f7d8 (неупакованный) |
Многофункциональный бэкдор, способный заражать PОS-терминалы. Известны случаи его распространения через эксплуатацию уязвимости CVE-2012-0158.
При запуске бэкдор проверяет наличие в окружении виртуальных машин, для чего:
- проверяет наличие отладчика через вызов API IsDebuggerPresent;
- проверяет наличие отладчика через вызов API CheckRemoteDebuggerPresent;
- проверяет имя пользователя на совпадение с:
- MALTEST;
- TEQUILABOOMBOOM;
- SANDBOX;
- VIRUS;
- MALWARE;
- приводит имя файла в верхний регистр и проверяет на совпадение с:
- SAMPLE;
- VIRUS;
- SANDBOX;
- проверяет наличие экспорта "wine_get_unix_file_name" в kernel32.dll;
- проверяет наличие ветки реестра "HKLM\\SOFTWARE\\VMware, Inc.\\VMware Tools";
- проверяет значение ключа "HKLM\\HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port 0\\Scsi Bus 0\\Target Id 0\\Logical Unit Id 0\\Identifier" на совпадение со строками "VMWARE", "VBOX", "QEMU";
- проверяет значение ключа "HKLM\\HARDWARE\\Description\\System\\SystemBiosVersion" на совпадение со строками "VBOX", "QEMU", "BOCHS";
- проверяет наличие ветви реестра "HKLM\\SOFTWARE\\Oracle\\VirtualBox Guest Additions";
- проверяет значение ключа "HKLM\\HARDWARE\\Description\\System\\VideoBiosVersion" на совпадение со строкой "VIRTUALBOX".
В случае обнаружения виртуальной машины троянец выводит сообщение об ошибке "An unknown error occurred. Error - (0x[случайное число])", после чего BackDoor.Neutrino.50 удаляет себя из системы.
В процессе установки троянец создает каталог "%AppData%\\W2VTWFFiQQ" и копирует себя в него. Регистрирует собственную копию в автозагрузке путем модификации ключа системного реестра "Software\\Microsoft\\Windows\\CurrentVersion\\Run". Ветка (HKLM/HKCU) выбирается исходя из наличия административных прав.
В качестве имени параметра выбирает файл из директории %windir%, подходящий под маску:
install*.exe
setup*.exe
update*.exe
patch*.exe
При отсутствии такового выбирает имя "svchost.exe".
Копирует себе дату создания файла "explorer.exe" и устанавливает для файла атрибуты «скрытый» и «системный».
Запускает отдельный поток, который отслеживает наличие ключа для автозагрузки в системном реестре. Если ключ удален или модифицирован, то добавляет его заново.
После успешного запуска бэкдор собирает данные об инфицированной системе, в частности, значения GUID ("HKLM\\Software\\Microsoft\\Cryptography\\MachineGuid"), тип ОС и ее разрядность, тип и версию установленного антивируса.
Троянец обладает возможностью удалять на инфицированном компьютере другие вредоносные программы. Для этого он проверяет исполняемые файлы с расширением "*.exe" в папках %APPDATA%, %TEMP%, %ALLUSERSPROFILE% функцией WinVerifyTrust. Если верификация не завершилась успехом и найден соответствующий запущенный процесс, бэкдор удаляет его из автозагрузки, модифицируя ветвь реестра "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" (HKLM/HKCU выбирается в зависимости от наличия административных прав), после чего удаляет сам файл.
Попутно бэкдор считает количество удаленных вирусов и потом сообщает данное число управляющему серверу.
Помимо функций троянца для POS-терминалов, данный бэкдор обладает возможностью красть информацию из почтового клиента Microsoft, а также учетные данные для доступа к ресурсам по протоколу FTP с использованием ряда популярных FTP-клиентов:
filezilla.exe
ftprush.exe
winscp.exe
coreftp.exe
freeftp.exe
far.exe
ftpte.exe
smartftp.exe
flashfxp.exe
totalcmd.exe
Среди запущенных процессов ищет процессы браузеров:
firefox.exe
chrome.exe
iexplore.exe
opera.exe
и перехватывает в них функции отправки данных (PR_Write, send, WSASend, HttpSendRequestW, InternetWriteFile). На управляющий сервер отправляются данные POST-запросов, которые содержат подстроку "ocsp" или "application/ocsp-request", для браузера Microsoft Internet Explorer передаются данные всех POST-запросов.
В ветви системного реестра "HKCU\\Software\\N3NNetwork\\" в ключе "rate" указан интервал между обращениями к управляющему серверу. Бэкдор считывает это число и умножает на 60 секунд. Однако результирующий интервал не может превышать 1 часа.
Данные передаются на сервер в форме строки вида "cmd=1&uid=%s&os=%s&av=%s&version=%s&quality=%i", где uid - GUID зараженного компьютера, os - данные об ОС, av - установленный антивирус, version - версия бэкдора, quality - количество найденных вирусов.
Список управляющих серверов зашит в теле троянца. Он имеет вид UNICODE-строки, зашифрованной base64. Строка может содержать несколько управляющих серверов, разделителем является символ '*'. Во время инициализации бэкдор поочередно перебирает серверы, пока не найдет первый, который ответит на ping-запрос.
Пример ответа сервера на ping-запрос:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML>
<HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>Not Found</H1>
The requested URL /ionocube_/tasks.php was not found on this server.</BODY></HTML>
<!-- DEBUGcG9uZw==DEBUG -->
Из ответа сервера извлекаются полезные данные между строками "DEBUG" и "DEBUG", которые зашифрованы base64.
Для передачи информации на управляющий сервер его адрес извлекается из реестра, расшифровывается, после чего троянец формирует запрос вида:
"POST <!target> HTTP/1.0\r\n"
"Host: \r\n"
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101
Firefox/35.0\r\n"
"Content-type: application/x-www-form-urlencoded\r\n"
"Cookie: authkeys=21232f297a57a5a743894a0e4a801fc3\r\n"
"Content-length: <!len>\r\n"
"\r\n"
"<!payload>\n",
где target, host извлекаются из адреса сервера, куда следует отправлять краденные данные, len - длина полезной нагрузки, payload - это строка, зашифрованная base64.
Похищенные треки банковских карт троянец передает с помощью запроса:
d=1&type=%s&data=%s
где type - строка "Track1" или "Track2", data - извлеченные из памяти процесса данные.
Бэкдор умеет выполнять следующие команды:
cmd | Команда |
---|---|
botkiller | Удаление других вредоносных программ |
cmd | Передать поступившую команду интерпретатору cmd.exe |
dwflood | Флуд удаленного узла запросами на скачивание файла (файл выкачивается, удаляется и снова закачивается) |
findfile | Найти и загрузить на удаленный сервер указанный файл |
http | Отправить GET-/POST-запрос |
https | Начать атаку методом HTTPS-Flood |
infect | Попытаться заразить компьютеры в локальной сети и сменные носители |
keylogger | Запустить кейлоггер (фиксирует буфер обмена, нажатия клавиш, по нажатию левой кнопки мыши сохраняет снимок экрана) |
loader | Скачать .dll файл и запустить его с использованием утилиты regsvr32 |
rate | Установить период опроса управляющего сервера |
slow | Отправить POST-запрос с полезной нагрузкой "X-a: b\r\n" |
tcp | Начать атаку методом TCP Flood |
udp | Начать атаку методом UDP Flood |
update | Обновиться (обновление скачивается по указанной в команде ссылке) |
Индикаторы присутствия:
Мьютекс: "W2VTWFFiQQ"
Каталог: "%AppData%\\W2VTWFFiQQ"
Наличие ветви реестра: "HKCU\\Software\\N3NNetwork\\"