sha1:
- 94d25cebb6ba408c7c45bd12fd8aca5293d5df21
Описание
Бэкдор для устройств под управлением ОС Android, написанный на языке Kotlin. Выполняет множество вредоносных действий по команде злоумышленников и используется для похищения конфиденциальных данных и кибершпионажа. Вредоносная программа распространяется под видом антивирусов и ориентирована на российских пользователей.
Принцип действия
В процессе работы Android.Backdoor.916.origin имитирует антивирусное сканирование устройства. Вероятность «обнаружения» угроз в нем запрограммирована. Чем больше времени проходит с момента последнего «сканирования», тем она выше, но не более 30%. Используется следующий алгоритм:
long v = scanDataStore6.getLastScanTime();
if(new Random().nextDouble() >= Math.min(((double)(v <= 0L ? 24L : (System.currentTimeMillis() - v) / 3600000L)) / 100.0, 0.25) + 0.05) {
z = false;
}
Количество якобы выявленных угроз определяется случайным образом и составляет от 1 до 3.
Запуск
При первом запуске Android.Backdoor.916.origin запрашивает следующие системные разрешения:
- доступ к геолокации;
- доступ к записи аудио;
- доступ к СМС, контактам, списку звонков, медиафайлам, разрешение на выполнение звонков;
- доступ к камере (создание фотографий и запись видео);
- разрешение на работу в фоновом режиме;
- права администратора устройства;
- доступ к специальным возможностям (Accessibility Service).
Бэкдор запускает фоновую задачу, которая раз в минуту проверяет состояние сервисов и при необходимости перезапускает их:
- DataSecurity
- SoundSecurity
- CameraSecurity
- SecurityDisplay (в более новых версиях — например, 5059c6dc5a657722e3c13f720cbf77e9b58ef515)
Сервис DataSecurity
Подключается к C2-серверу через сокет и может выполнять следующие команды:
- ACTIVATE_APP_PROTECTION — отправить намерение ru.next.secure.ACTION_PROTECTION_CHANGED и присвоить параметруenabled значение true;
- DEACTIVATE_APP_PROTECTION — отправить намерение ru.next.secure.ACTION_PROTECTION_CHANGED и присвоить параметру enabled значение false;
- CHECK_APP_PROTECTION — проверить статус самозащиты бэкдора;
- REQUEST_LOGS — отправить содержимое лог-файла бэкдора на C2-сервер;
- CLEAR_LOGS — очистить лог-файл;
- LOGGING_ENABLE — включить логирование;
- LOGGING_DISABLE — выключить логирование;
- GET_CONTACTS — отправить список контактов на C2-сервер;
- GET_GALLERY — отправить на C2-сервер все изображения, которые хранятся на карте памяти;
- GET_GALLERY_RANGE — отправить на C2-сервер изображения заданного диапазона значений, которые хранятся на карте памяти;
- GET_GALLERY_IMAGE — отправить на C2-сервер определенное изображение с карты памяти;
- GET_BATTERY_INFO — отправить на C2-сервер техническую информацию о батарее (percentage, is_charging, plugged, charge_type, temperature, voltage, health);
- GET_DEVICE_INFO — отправить на C2-сервер техническую информацию об устройстве (manufacturer, version, product, model, brand, device, host, sdk, fingerprint, hardware, board, securityPatch);
- getSMS — отправить на C2-сервер входящие СМС (с типом inbox) и исходящие СМС (с типом sent);
- GET_CALL_LOGS — отправить на C2-сервер список телефонных вызовов;
-
GET_SIM_INFO — отправить на сервер информацию о SIM-карте. В зависимости от версии операционной системы бэкдор отправляет:
- displayName, carrierName, countryIso, number;
- operatorName, countryIso, simState, number, imei.
- GET_NETWORK_INFO — отправить на сервер информацию о сети и интерфейсах устройства (ipv4_address, name, mac_address, display_name);
- GET_LOCATION — отправить на сервер данные геолокации (latitude, longitude);
- RUN_SHELL — выполнить полученную shell-команду и отправить отчет о выполнении обратно в сокет.
Сервис SoundSecurity
Подключается к C2-серверу через сокет и может выполнять следующие команды:
- START_AUDIO — начать потоковую трансляцию звука с микрофона устройства;
- STOP_AUDIO — остановить трансляцию.
Сервис CameraSecurity
Подключается к C2-серверу через сокет и может выполнять следующие команды:
- START_VIDEO — начать потоковую трансляцию видео с камеры устройства;
- STOP_VIDEO — остановить трансляцию;
- SET_QUALITY — изменить качество транслируемого видео.
Сервис SecurityDisplay
Подключается к C2-серверу через сокет и может выполнять следующие команды:
- START_SCREEN — начать трансляцию экрана;
- STOP_SCREEN — завершить трянсляцию.
Кейлоггер и кража содержимого из приложений
Android.Backdoor.916.origin использует службу специальных возможностей (Accessibility Service) для реализации функциональности кейлоггера и перехвата содержимого из мессенджеров и браузеров. Троян отслеживает следующие программы:
- org.telegram.messenger — Telegram
- org.telegram.messenger.web — Telegram
- com.android.chrome — Google Chrome
- com.google.android.gm — Gmail
- ru.yandex.searchplugin — Яндекс Старт
- com.yandex.browser — Яндекс Браузер
- com.whatsapp — WhatsApp
Также отслеживается наличие определенного текста на экране — например, далее, submit, отправить, sign in, войти, log in.
Полученные данные бэкдор отправляет в сервис DataSecurity, который передает их на C2-сервер.
Самозащита
Android.Backdoor.916.origin отслеживает экран устройства через Accessibility Service и проверяет, не находится ли пользователь в окне с информацией о приложении или в одном из разделов меню управления программой. Если бэкдор фиксирует попытку своего удаления или изменения настроек, он сразу инициирует возврат на главный экран, тем самым блокируя действие.
Информация о таком событии также отправляется на C2-сервер с типом сообщения UNINSTALL_ATTEMPT и одной из причин:
- delete_confirmation_detected
- app_info_with_uninstall_buttons
- app_info_screen_detected
- app_management_with_our_app
- system_security_screen_with_our_app
Передача данных
Каждый сервис Android.Backdoor.916.origin использует свой порт для передачи данных на C2-сервер. В трояне предусмотрены следующие порты:
- port — 10000 — не используется;
- audioPort — 10001 — используется сервисом SoundSecurity;
- functionPort — 10002 — используется сервисом DataSecurity;
- screenPort — 10003 — используется сервисом SecurityDisplay;
- videoPort — 10004 — используется сервисом CameraSecurity.
При установлении соединения с сокетом данные отправляются в следующем формате:
Передаваемая строка конвертируется в байты.
Параметр serviceType — тип сервиса. Зависит от класса, который подключается к сокету, и может иметь следующие значения:
- sms
- video
- screen
- audio
- Передается строка-разделитель начала сообщения — BEGIN_MSG\n, кодируемая в байты;
- Отправляется содержащий данные JSON-объект, предварительно преобразованный в строку, кодируемую в байты.
- Передается строка-разделитель окончания сообщения — \nEND_MSG\n, также закодированная в байты.
Связь с C2-сервером
Android.Backdoor.916.origin имеет конфигурацию со списком управляющих серверов, состоящим из десятков позиций. При этом они хранятся в отдельных классах, имеющих следующие названия:
- DneprIPs
- KievIPs
- BerdikIPs
- SkovorodkaIps
- TeslaIP
- TwoFlorIPs
- OsnovaIPs
- OdessaIPs
- TwoFlorIPs
- GeneveIPs
- NikoIPs
- SixFlorIPs
- PoltavaIPs
- AlekseevIPs
- KabanovIPs
Для смены адреса C2-сервера в трояне реализована возможность переключения между хостингами (switchCity), однако эта функция в обнаруженных образцах не задействована.
Матрица MITRE
|
Этап |
Тактика |
|---|---|
|
Первоначальный доступ |
Фишинг (T1660) |
|
Выполнение |
Командная оболочка Unix (T1623.001) |
|
Закрепление |
Выполнение по событию (T1624) Широковещательные приемники (T1621.001) Постоянное закрепление (1541) |
|
Повышение привилегий |
Злоупотребление механизмом контроля повышения привилегий (T1626) Получение прав администратора устройства (T1626.001) |
|
Предотвращение обнаружения |
Постоянное закрепление (T1541) Ослабление защиты (T1629) Предотвращение удаления приложения (T1629.001) |
|
Получение учетных данных |
Кейлоггер (T1417.001) |
|
Обнаружение |
Обнаружение файлов и каталогов (T1420) Отслеживание местоположения (T1430) Получение информации о системе (T1426) Получение конфигурации сети системы (T1422) |
|
Сбор данных |
Архивирование полученных данных (T1532) Аудиозапись (T1429) Данные локальной системы (T1533) Кейлоггер (T1417.001) Отслеживание местоположения (T1430) Защищенные данные пользователя (T1636) Журнал телефонных звонков (T1636.002) Список контактов (T1636.003) СМС-сообщения (T1636.004) Запись с экрана (T1513) Видеозапись (T1512) |
|
Организация управления |
Нестандартный порт (T1509) |
|
Эксфильтрация данных |
Извлечение на C2-сервер (T1646) |