Введение
Недавно мы обнаружили новое семейство кроссплатформенных бэкдоров для персональных компьютеров. Сначала мы получили вариант для Linux, а затем, благодаря информации, извлеченной из его исполняемого файла, нам удалось также найти вариант для компьютеров на ОС Windows. Более того, версия для Windows была подписана действительной цифровой подписью. Ниже мы рассмотрим оба вредоносных образца.
DropboxCache, он же Backdoor.Linux.Mokes.a
Этот бэкдор для операционных систем семейства Linux распространяется упакованным утилитой UPX. Он содержит обширный функционал, связанный с мониторингом активности жертвы, включая код, обеспечивающий захват аудио и создание снимков экрана.
После первого запуска бэкдор проверяет путь с собственному исполняемому файлу и при необходимости копирует его в одну из следующих папок:
- $HOME/$QT-GenericDataLocation/.mozilla/firefox/profiled
- $HOME/$QT-GenericDataLocation/.dropbox/DropboxCache
Например, путь к исполняемому файлу может быть таким: $HOME/.local/share/.dropbox/DropboxCache. Для закрепления в системе вредоносная программа применяет следующий метод, практически никак не препятствующий ее обнаружению: создает .desktop-файл $HOME/.config/autostart/$filename.desktop. Вот шаблон, по которому это делается:
Затем вредоносная программа соединяется с командным сервером, адрес которого в явном виде прописан в ее коде. С этого момента она каждую минуту отправляет на сервер HTTP-запрос:
В качестве ответа на этот «импульсный» (heartbeat) запрос приходят изображения размером 1 байт. Для загрузки данных на сервер и получения данных и команд вредоносная программа соединяется с TCP-портом 433 по нестандартному протоколу с применением шифрования AES. В теле исполняемого файла «зашиты» следующие открытые ключи:
Далее вредоносная программа копирует собранные клавиатурным шпионом данные, захваченные аудиопотоки и сделанные снимки экрана в папку /tmp/. Позднее собранные данные загружаются на командный сервер.
- /tmp/ss0-DDMMyy-HHmmss-nnn.sst (снимки экрана, JPEG, каждые 30 секунд)
- /tmp/aa0-DDMMyy-HHmmss-nnn.aat (захваченные аудиопотоки, WAV)
- /tmp/kk0-DDMMyy-HHmmss-nnn.kkt (перехваченные клавиатурные нажатия)
- /tmp/dd0-DDMMyy-HHmmss-nnn.ddt (произвольные данные)
DDMMyy = дата: 280116 = 2016-01-28
HHmmss = время: 154411 = 15:44:11
nnn = миллисекунды.
Эта часть кода способна захватывать аудио на компьютере жертвы
Следует отметить, что захват аудио, как и клавиатурный шпион, не активирован в таймере событий данного исполняемого файла. Поскольку авторы статически скомпоновали с исполняемым файлом libqt, xkbcommon (библиотеку, обрабатывающую раскладки клавиатуры) и OpenSSL (1.0.2c), размер исполняемого файла – около 13МБ. Киберпреступники не предприняли заметных усилий по обфускации исполняемого файла. Более того, исполняемый файл содержит почти все символы, что очень помогает в процессе анализа.
В исполняемом файле также имеется список файлов, которые содержат исходный код автора:
Очевидно, вредоносная программа написана на C++ с использованием Qt – кроссплатформенного фреймворка для разработки приложений. Если верить метаданным исполняемого файла, он скомпилирован с помощью «GCC 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)» на операционной системе Ubuntu 14.04 LTS «Trusty Tahr». Исходя из временного штампа qt_instdate, дата последней конфигурации источников в Qt – 2015-09-26 (qt/qtbase.git: deprecated). Это означает, что, по всей вероятности, программа была скомпилирована не раньше конца сентября 2015 года.
Мы детектируем данное вредоносное ПО как Backdoor.Linux.Mokes.a.
OLMyJuxM.exe aka Backdoor.Win32.Mokes.imv
Всего несколько дней назад мы обнаружили образец, который выглядел очень знакомо, хотя и был скомпилирован для машин под управлением Microsoft Windows. Очень скоро выяснилось, что это вариант Backdoor.Linux.Mokes.a для 32-битных операционных систем Windows.
После запуска на выполнение вредоносная программа случайным образом выбирает один из девяти различных вариантов размещения в папке %AppData% и копирует себя туда, чтобы закрепиться на зараженном компьютере. Исполняемый файл также создает файл «version» в той же папке, куда до этого поместила свою копию. Как можно заключить из имени, в этом файле хранится только информация о версии вредоносной программы вместе с полным путем, по которому лежит копия вредоносной программы:
Затем в HKCU\Software\Microsoft\Windows\CurrentVersion\Run создаются соответствующие ключи реестра, позволяющие обеспечить закрепление вредоносной программы в системе.
Запустив на выполнение собственную копию, размещенную в новом месте, вредоносная программа задействует SetWindowsHook API, чтобы внедрить функционал клавиатурного шпиона и отслеживать ввод, который осуществляется с помощью мыши, а также ввод внутренних сообщений, помещаемых в очередь сообщений.
Следующий этап функционирования вредоносной программы – установление соединения с командным сервером, явно прописанным в ее коде. Несмотря на то что версии вредоносной программы для различных платформ используют разные IP-адреса и ключи шифрования, они ведут себя почти одинаково.
Однако этот конкретный вариант имеет немного иную реализацию и пытается получить используемую в Windows по умолчанию строку user-agent.
Если эта попытка оказывается неудачной, образец использует вариант, прописанный в нем в явном виде:
Как и версия для Linux, этот вариант вредоносной программы устанавливает соединение со своим командным сервером и отправляет на него раз в минуту «импульсный» сигнал по HTTP (GET /v1). Для получения команд и загрузки на сервер или на зараженный компьютер дополнительных ресурсов используется TCP порт 433.
Этот вариант использует почти такие же шаблоны имен файлов для сохранения полученных снимков экрана, захваченных аудиопотоков, журналов клавиатурных нажатий и других произвольных данных. Но в отличие от варианта для Linux, в данном образце клавиатурный шпион активирован. Ниже показано содержимое журнала клавиатурных нажатий, созданного данным образцом и сохраненного в %TEMP%:
И здесь мы обнаружили код, который можно назвать неожиданным. На приведенном ниже снимке экрана упоминается код, предназначенный для захвата изображений с подключенной к компьютеру камеры, например встроенной веб-камеры.
Как и в версии для Linux, автор оставил в исполняемом файле немало подозрительных строк. Показанный ниже снимок экрана содержит строку с удивительно правдивой информацией.
Для киберпреступника важно, чтобы программа выглядела легитимной и система не запрашивала у пользователя подтверждения перед выполнением неизвестного ПО. На машинах под управлением Windows этого можно добиться, подписывая код доверенными сертификатами. В данном случае киберпреступнику удалось подписать исполняемый файл доверенным сертификатом, выданным центром сертификации «COMODO RSA Code Signing CA».
Мы детектируем данный тип вредоносного ПО как Backdoor.Win32.Mokes.imv.
Что дальше
Поскольку это ПО изначально создавалось как платформонезависимое, не исключено, что в будущем мы увидим соответствующие образцы для Mac OS X.
Дополнение от 01.02.2016
Мы только что получили Backdoor.Win32.Mokes.imw. Впервые мы видим вариант Mokes, в котором активирован модуль захвата аудио. Вредоносная программа создает новый аудиофайл каждые 5 минут.
Индикаторы заражения
Backdoor.Linux.Mokes.a
c9e0e5e2aeaecb232120e8573e97a6b8
$HOME/$QT-GenericDataLocation/.mozilla/firefox/profiled
$HOME/$QT-GenericDataLocation/.dropbox/DropboxCache
$HOME/.config/autostart/profiled.desktop
$HOME/.config/autostart/DropboxCache.desktop
/tmp/ss0-$date-$time-$ms.sst
Backdoor.Win32.Mokes.imv & .imw
f2407fd12ec0d4f3e82484c027c7d149 (imw)
91099aa413722d22aa50f85794ee386e (imv)
%AppData%\Skype\SkypeHelper.exe
%AppData%\Skype\version
%AppData%\Dropbox\bin\DropboxHelper.exe
%AppData%\Dropbox\bin\version
%AppData%\Google\Chrome\nacl32.exe
%AppData%\Google\Chrome\version
%AppData%\Google\Chrome\nacl64.exe
%AppData%\Google\Chrome\version
%AppData%\Mozilla\Firefox\mozillacache.exe
%AppData%\Mozilla\Firefox\version
%AppData%\Hewlett-Packard\hpqcore.exe
%AppData%\Hewlett-Packard\version
%AppData%\Hewlett-Packard\hpprint.exe
%AppData%\Hewlett-Packard\version
%AppData%\Hewlett-Packard\hpscan.exe
%AppData%\Hewlett-Packard\version
%AppData%\Adobe\Acrobat\AcroBroker.exe
%AppData%\Adobe\Acrobat\version
%TEMP%\aa$n-$date-$time-$ms.aat (imw)
где $n – десятичное представление хэша, рассчитанного на основе имени звуковой карты
%TEMP%\ss0-$date-$time-$ms.sst
%TEMP%\dd0-$date-$time-$ms.ddt
%TEMP%\kk$date.kkt
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run «%PERSISTENT-FILENAME%», «%PERSISTENT-FILEPATH%»
где %PERSISTENT-FILENAME% – одно из перечисленных выше имен файлов
и %PERSISTENT-FILEPATH% – соответствующий путь
От Linux к Windows: обнаружено новое семейство кроссплатформенных бэкдоров