Неубиваемый xHelper и «матрешка» из троянцев

Начало массовых атак троянца xHelper на Android-смартфоны мы заметили еще в середине прошлого года, но и сейчас активность зловреда не снижается. Главной особенностью xHelper является закрепление в системе: попав однажды на телефон, он каким-то образом восстанавливается после удаления пользователем и даже после сброса к заводским настройкам. Мы провели тщательное исследование и выяснили, каким образом создатели xHelper обеспечили ему выживаемость.

Доля пользователей защитных решений «Лаборатории Касперского», атакованных троянцем xHelper от общего количества атак, 2019–2020 гг. (скачать)

Как работает xHelper?

Разберем логику работы семейства на примере активного на данный момент образца Trojan-Dropper.AndroidOS.Helper.h. Зловред маскируется под популярное приложение для очистки и ускорения работы смартфона, однако на деле не несет никакой полезной функциональности: после установки «очиститель» просто исчезает, и найти его нельзя ни на главном экране, ни в меню программ. Увидеть его можно, только заглянув в список установленных приложений в настройках системы.

Полезная нагрузка троянца зашифрована в файле /assets/firehelper.jar (так как от версии к версии ее шифрование практически не меняется, расшифровать ее не составило труда). Ее главная функция заключается в отправке информации о телефоне жертвы (android_id, производитель, модель, версия прошивки и т. п.) на https://lp.cooktracking[.]com/v1/ls/get…

Расшифровка URL для отправки информации об устройстве

 

…и загрузке следующего вредоносного модуля — Trojan-Dropper.AndroidOS.Agent.of.

Этот зловред, в свою очередь, расшифровывает и запускает свою полезную нагрузку, используя для этого идущую в комплекте нативную библиотеку, — такой подход затрудняет анализ модуля. На этом этапе расшифровывается и запускается следующий дроппер — Trojan-Dropper.AndroidOS.Helper.b. Он, в свою очередь, запускает зловред Trojan-Downloader.AndroidOS.Leech.p, который и отвечает за дальнейшее инфицирование устройства.

Задачей Leech.p является скачивание нашего старого знакомого HEUR:Trojan.AndroidOS.Triada.dd с набором эксплойтов для получения прав root на устройстве жертвы.

Декодированные URL-адреса C&C Leech.p

Скачивание троянца Triada

Вредоносные файлы последовательно сохраняются в папку данных приложения, к которой другие программы не имеют доступа. Такая «матрешка» позволяет авторам запутывать следы и использовать известные защитным решениям вредоносные модули. Получить root зловреду удается в основном на устройствах под управлением Android версий 6 и 7 китайских производителей (в том числе ODM). После получения прав xHelper может устанавливать вредоносные файлы прямо в системный раздел.

Здесь стоит отметить, что системный раздел монтируется при старте системы в режиме «только для чтения». Благодаря root-правам троянец перемонтирует его в режим записи и приступает к основным действиям — запускает скрипт с говорящим названием forever.sh. В ход идут известные трюки Triada, в том числе и перемонтирование системного раздела для установки на него своих приложений. В нашем случае устанавливается пакет com.diag.patches.vm8u, который мы детектируем как Trojan-Dropper.AndroidOS.Tiny.d.

В папку /system/bin копируется несколько исполняемых файлов:

  • patches_mu8v_oemlogo — Trojan.AndroidOS.Triada.dd;
  • debuggerd_hulu — AndroidOS.Triada.dy;
  • kcol_ysy — HEUR:Trojan.AndroidOS.Triada.dx;
  • /.luser/bkdiag_vm8u_date — HEUR:Trojan.AndroidOS.Agent.rt.

Еще несколько файлов копируется в папку /system/xbin:

  • diag_vm8u_date;
  • patches_mu8v_oemlogo.

Вызов файлов из папки xbin добавляется в файл install-recovery.sh, что позволяет Triada запускаться при старте системы. На все файлы в целевых папках устанавливается атрибут неизменяемости (immutable), что затрудняет удаление зловреда: система не позволяет удалять файлы с данным атрибутом даже суперпользователю. Однако с этим методом самозащиты троянца можно бороться: нужно перед удалением файла снять данный атрибут командой chattr.

Возникает вопрос: если вредоносное ПО может перемонтировать системный раздел на запись, чтобы скопировать себя в него, может ли пользователь пойти по тому же пути и удалить зловреда? Авторы Triada тоже задались этим вопросом и в результате применили еще один защитный прием — модификацию системной библиотеки /system/lib/libc.so. Эта библиотека содержит в себе общий код, который используется практически всеми исполняемыми файлами на устройстве. Triada подменяет своим кодом в libc функцию mount, использующуюся для монтирования файловых систем, и таким образом запрещает пользователю монтирование раздела /system в режиме записи.

В довершение всего троянец скачивает и устанавливает еще несколько вредоносных приложений (например, HEUR:Trojan-Dropper.AndroidOS.Necro.z), а также удаляет приложения для управления root-доступом, такие как Superuser.

Как избавиться от xHelper?

Как следует из вышесказанного, простым удалением xHelper не избавиться от всей заразы, засевшей в системе. Приложение com.diag.patches.vm8u, установленное в системный раздел, заново установит xHelper и другое вредоносное ПО при первом удобном случае.

Установка приложений без участия пользователя

Но если на вашем смартфоне установлена кастомная среда восстановления Android (так называемая «рекавери»), вы можете попытаться достать файл libc.so из оригинальной прошивки и заменить им зараженный, а затем удалить все вредоносное ПО из системного раздела. Однако проще и надежнее полностью перепрошить телефон.

При этом стоит учитывать, что иногда в прошивках атакуемых xHelper смартфонов встречается предустановленное вредоносное ПО, которое самостоятельно скачивает и устанавливает приложения (в том числе и xHelper). Тогда и перепрошивка будет бесполезна, и стоит посмотреть в сторону альтернативных прошивок для вашего устройства. В случае их использования следует иметь в виду: корректная работа всех компонентов устройства не гарантирована.

Так или иначе, использовать смартфон, зараженный xHelper, крайне опасно. В ходе его действий устанавливается бэкдор с возможностью исполнения команд от имени суперпользователя. Он предоставляет злоумышленникам полный доступ к данным всех приложений и может использоваться другими зловредами, например такими, как CookieThief.

C&C

lp.cooktracking[.]com/v1/ls/get
www.koapkmobi[.]com:8081
45.79.110.191
45.33.9.178
23.239.4.169
172.104.215.170
172.​104.​208.​241
172.​104.​212.​184
45.​33.​117.​188
172.​104.​216.​43
172.​104.​218.​166
104.​200.​16.​77
198.​58.​123.​253
172.​104.​211.​160
172.​104.​210.​184
162.​216.​18.​240
172.​104.​212.​4
172.​104.​214.​199
172.​104.​212.​202
172.​104.​209.​55
172.​104.​219.​210
172.​104.​218.​146
45.​79.​177.​230
45.​33.​0.​123
45.​79.​77.​161
45.​33.​120.​75
45.​79.​171.​160
172.​104.​210.​193
45.​33.​0.​176
45.​79.​146.​48
ddl.​okyesmobi[.​]com
45.​79.​151.​241
172.​104.​213.​65
172.​104.​211.​117
ddl.​okgoodmobi[.​]com

MD5

Trojan-Dropper.AndroidOS.Helper.h — 59acb21b05a16c08ade1ec50571ba5d4
Trojan-Dropper.AndroidOS.Agent.of — 57cb18969dfccfd3e22e33ed5c8c66ce
Trojan-Dropper.AndroidOS.Helper.b — b5ccbfd13078a341ee3d5f6e35a54b0a
Trojan-Downloader.AndroidOS.Leech.p — 5fdfb02b94055d035e38a994e1f420ae
Trojan.AndroidOS.Triada.dd — 617f5508dd3066de7ec647bdd1497118
Trojan-Dropper.AndroidOS.Tiny.d — 21ae93aa54156d0c6913243cb45700ec
Trojan.AndroidOS.Triada.dd —  105265b01bac8e224e34a700662ffc4c8
Trojan.AndroidOS.Agent.rt — 95e2817a37c317b17de42e565475f40f
Trojan.AndroidOS.Triada.dy — cfe7d8c9c1e43ca02a4b1852cb34d5a5
Trojan.AndroidOS.Triada.dx — e778d4cc1a7901689b59e9abebc925e1
Trojan-Dropper.AndroidOS.Necro.z — 2887ab410356ea06d99286327e2bc36b

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *