SHA1:
- 3790284950a986bc28c76b5534bfe9cea1dd78b0
Вредоносная программа для ОС Linux, предназначенная для создания снимков экрана на инфицированном компьютере с периодичностью 30 секунд. Может загружать на управляющий сервер содержимое папки /tmp. Также с сервера могут поступать команды на загрузку произвольных файлов.
После запуска проверяет наличие следующих файлов:
- $HOME/$DATA/.mozilla/firefox/profiled
- $HOME/$DATA/.dropbox/DropboxCache
где $DATA = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)
Если указанные файлы не найдены, сохраняет свою копию в виде файла с одним из перечисленных выше имен, выбор осуществляется случайным образом. Затем сохраненная копия запускается из новой локации. В файле троянца содержится открытый ключ RSA, который используется при получении сессионного ключа для AES. После успешного запуска троянец соединяется с одним из управляющих серверов, адреса которых «зашиты» в его теле. Все данные, которыми Linux.Ekoms.1 обменивается с управляющим центром, шифруются: изначально троянец выполняет шифрование с использованием открытого ключа, а расшифровка осуществляется путем применения к полученным данным функции RSA_public_decrypt.
Обмен данными с управляющим сервером осуществляется путем пересылки сообщений AbNetworkMessage. Содержимое поля id определяет выполняемое действие:
id | Что делает |
---|---|
0xff9c | Установка ключа AES. |
0xff9b | Установка прокси для соединения с сервером. |
0xff93 | Создание объекта-загрузчика. В теле сообщения содержится transactionId. Создается файл со случайным именем. |
0xff92 | Запись файла. Передается transactionId и тело самого файла. После этого происходит запись файла и удаление объекта-загрузчика. |
0xff94 | Запуск обработчика onCommand, который в свою очередь создает объект SearchAndUploadFiles, но, вероятно, эта функция не реализована, так как метод run(), запускаемый в новом потоке, сразу возвращает управление. |
0xff98 | Приходит в ответ на отправляемый троянцем запрос UploadRequest. |
0xff97 | UploadStatus. |
0xff99 | OnBotServiceControl. Включить/выключить определенный сервис |
0xff9a | infoClassesRequest. Выслать статус сервисов. |
Запрос UploadRequest создает отдельный поток AbUploaderThread, в котором на сервер загружаются все файлы из папки /tmp, полный путь до которых занимает больше 31 байта.
Троянец запускает следующие сервисы:
EkomsAutorun:
сохраняет в файл $HOME/.config/autostart/%exename%.desktop следующие данные:
[Desktop Entry]
Type=Application
Name=%exename%
Exec=%pathtoexe%
Terminal=false
после чего в бесконечном цикле проверяет наличие данного файла, и, если не обнаруживает, то создает его снова.
EkomsUserActivity:
С периодичностью в 30 секунд делает на зараженном компьютере снимок экрана (скриншот) и сохраняет его во временную папку в формате JPEG в виде файла с именем в формате ss%d-%s.sst, где %s - временная отметка. Если поместить файл на диск по каким-либо причинам не удалось, Linux.Ekoms.1 пытается выполнить сохранение в формате BMP.
EkomsCcClient:
Создает фильтр для имен файлов вида "aa*.aat", "dd*ddt", "kk*kkt", "ss*sst", поиск по которым осуществляется во временной папке, и загружает подходящие под эти критерии файлы на управляющий сервер. Если в ответ поступает строка uninstall, Linux.Ekoms.1 загружает с сервера злоумышленников исполняемый файл /tmp/ccXXXXXX.exe, сохраняет его во временную папку и запускает оттуда.
Помимо функции создания снимков экрана в коде троянца присутствует специальный класс AbAudioCapture, позволяющий записывать звук и сохранять полученную запись в файл с именем aa-%d-%s.aat, в формате WAV, но практически эта возможность нигде не используется.