В январе 2025 года мир информационной безопасности столкнулся с изощренной шпионской кампанией SparkCat, нацеленной на кражу криптовалютных кошельков через модифицированные приложения. Зловред использовал технологию оптического распознавания символов для выявления и хищения сид-фраз из фотогалерей пользователей, распространяясь в том числе через официальные магазины Google Play и App Store.
Описание
Теперь исследователи обнаружили новую угрозу - SparkKitty, которую считают логическим продолжением предыдущей атаки. Этот троянский шпион демонстрирует повышенную изощренность, успешно преодолевая защитные барьеры мобильных экосистем и ставя под удар цифровые активы миллионов пользователей. Ключевая особенность SparkKitty - способность маскироваться под легитимные библиотеки и фреймворки, что позволяет ему избегать детектирования системами безопасности.
На iOS вредоносная нагрузка внедряется через поддельные версии популярных сетевых библиотек AFNetworking.framework или Alamofire.framework, либо через обфусцированные компоненты, замаскированные под системную библиотеку libswiftDarwin.dylib. В некоторых случаях зловредный код интегрируется непосредственно в тело приложения. Для Android угроза существует в двух вариантах: классическая Java-реализация и более современная Kotlin-версия, функционирующая как вредоносный модуль Xposed Framework. Технический анализ показывает, что большинство вариантов троянца без разбора похищают все доступные изображения, однако обнаружен специализированный кластер, использующий OCR-технологии для выборочного захвата снимков, содержащих критически важную информацию. Исторические данные указывают на активность кампании как минимум с февраля 2024 года, что свидетельствует о ее устойчивости и тщательной подготовке.
Первые признаки новой угрозы появились при мониторинге подозрительных онлайн-магазинов, распространяющих модифицированные версии TikTok для Android. В этих взломанных приложениях исследователи обнаружили скрытую функциональность: при запуске основных активностей исполнялся дополнительный код, запрашивающий конфигурационный файл в формате Base64 с домена moabc[.]vip. Расшифрованная конфигурация содержала ссылки на криптовалютный маркетплейс TikToki Mall, интегрированный прямо в интерфейс приложения. Хотя прямых доказательств мошеннической деятельности магазина получить не удалось, дальнейший анализ кода распространяющих страниц выявил признаки целевой доставки вредоносных iOS-приложений. При посещении таких сайтов с iPhone пользователь перенаправляется на фальшивую страницу загрузки, стилизованную под App Store.
Механизм обхода iOS-защит демонстрирует изощренность атакующих. Поскольку Apple запрещает установку приложений из непроверенных источников, злоумышленники используют корпоративные provisioning-профили Enterprise-типа, предназначенные для внутреннего распространения бизнес-приложений. Эти профили содержат цифровые сертификаты разработчика, которые после установки на устройство жертвы позволяют запускать неподписанные Apple приложения. В случае с вредоносным TikTok-модом установка профиля сопровождалась аномальным запросом доступа к фотогалерее - поведением, несвойственным оригинальному приложению. Именно это наблюдение стало отправной точкой для детального анализа.
Расследование выявило, что поддельная библиотека AFNetworking.framework содержит модифицированный класс AFImageDownloader и добавленный AFImageDownloaderTool. Вредоносная нагрузка активируется через механизм селектора load в Objective-C, который автоматически исполняется при загрузке библиотеки. Алгоритм включает несколько этапов: проверка наличия специфического ключа в Info.plist приложения, расшифровка конфигурации с C2-серверами с использованием AES-256, получение разрешения на экспфильтрацию данных через запрос к /api/getImageStatus, постоянный мониторинг галереи изображений и выгрузка новых фото на серверы злоумышленников. Данные передаются через PUT-запросы к /api/putImages, включая само изображение, метаинформацию о приложении и уникальные идентификаторы устройства.
На Android платформе схема работы имеет технические различия при сохранении концепции. Вредоносный код внедрен в приложения криптовалютных бирж и казино, причем Kotlin-версия реализована как модуль LSPosed Framework. Особенностью этой реализации является интеллектуальный выбор C2-сервера: троянец последовательно опрашивает доступные адреса, измеряет время отклика и выбирает наиболее быстрый вариант. Для проверки разрешения на выгрузку данных используется запрос к /api/anheartbeat, а сами изображения передаются на /api/putDataInfo. Любопытной деталью является наличие отладочного механизма: при определенном содержимом файла .DEVICES троянец выгружает только третье изображение из конца алфавитного списка, что характерно для этапа тестирования зловреда.
Тревожным открытием стало обнаружение зараженных приложений в официальных магазинах. В Google Play исследователи выявили мессенджер с функциями криптообмена, установленный более 10 000 раз, в то время как в App Store присутствовало приложение "币coin", позиционирующееся как трекер криптовалют. В обоих случаях вредоносный код был интегрирован непосредственно в тело приложений, а не поставлялся через сторонние библиотеки. В iOS-версии "币coin" критическая функциональность реализована в классе AppDelegate, который обрабатывает ответы от управляющего сервера i.bicoin[.]com[.]cn и инициирует выгрузку фотографий при получении соответствующего разрешения. Технический анализ подтвердил использование аналогичных методов шифрования C2-адресов и схожих протоколов взаимодействия.
Особого внимания заслуживает обнаружение модифицированной версии криптографической библиотеки libcrypto.dylib (компонента OpenSSL), распространяемой под именами wc.dylib и libswiftDarwin.dylib. Библиотека подверглась интенсивной обфускации с использованием LLVM, но анализ с инструментом Frida подтвердил ее участие в шпионской деятельности: она загружает и расшифровывает конфигурацию C2-серверов, отправляет информацию об устройстве и ожидает команды на экспфильтрацию изображений. Знаковым доказательством связи SparkKitty с более ранней кампанией SparkCat стали отладочные символы в вредоносных iOS-фреймворках, содержащие пути к файлам на системах злоумышленников, которые полностью соответствуют путям из предыдущего расследования.
Исследователи также выявили параллельный кластер активности, связанный с прогрессивными веб-приложениями (PWA), распространяемыми через рекламу финансовых пирамид на платформах вроде YouTube. Скачанные Android-приложения, помимо открытия мошеннических сайтов в WebView, запрашивали доступ к хранилищу, использовали библиотеку Google ML Kit для OCR-анализа изображений и выгружали фотографии, содержащие три и более текстовых строки. Сходство тактик (использование облачных хранилищ для C2, акцент на криптовалютную тематику, дизайн распространяющих страниц) позволяет связать этот кластер с основной кампанией SparkKitty. Главной целью злоумышленников остаются криптоактивы жертв, о чем свидетельствует интеграция криптовалютного магазина в модифицированный TikTok, тематика зараженных приложений и источники трафика. Географически атаки сфокусированы на пользователях Юго-Восточной Азии и Китая. Обнаружение SparkKitty в официальных магазинах приложений подчеркивает необходимость постоянного совершенствования защитных механизмов и повышения осведомленности пользователей о рисках установки непроверенного ПО.
Индикаторы компрометации
IPv4
- 120.79.8.107
- 23.249.28.200
- 23.249.28.88
- 47.119.171.161
Domains
- api.fxsdk.com
URLs
- http://120.78.239.17:10011/req.txt
- http://39.108.186.119:10011/req.txt
- https://1111333.cn-bj.ufileos.com/file/SGTMnH951121
- https://accgngrid.com
- https://afwfiwjef-mgsdl-2023.oss-cn-shanghai.aliyuncs.com/path/02WBUfZTUvxrTMGjh7Uh
- https://byteepic.vip
- https://c1mon-oss.oss-cn-hongkong.aliyuncs.com/J2A3SWc2YASfQ2
- https://data-sdk.oss-accelerate.aliyuncs.com/file/SGTMnH951121
- https://data-sdk2.oss-accelerate.aliyuncs.com/file/SGTMnH951121
- https://dhoss-2023.oss-cn-beijing.aliyuncs.com/path/02WBUfZTUvxrTMGjh7Uh
- https://dxifjew2.oss-cn-beijing.aliyuncs.com/path/02WBUfZTUvxrTMGjh7Uh
- https://file-ht-2023.oss-cn-shenzhen.aliyuncs.com/path/02WBUfZTUvxrTMGjh7Uh
- https://gitee.com/bbffipa/data-group/raw/master/02WBUfZTUvxrTMGjh7Uh
- https://lt.laoqianf14.top/KJnn
- https://lt.laoqianf15.top/KJnn
- https://lt.laoqianf51.top/KJnn
- https://ok2025-oss.oss-cn-shenzhen.aliyuncs.com/ip/FM4J7aWKeF8yK
- https://photo-php-all.s3.ap-southeast-1.amazonaws.com/app/domain.json
- https://sdk-data-re.oss-accelerate.aliyuncs.com/JMUCe7txrHnxBr5nj.txt
- https://tbetter-oss.oss-accelerate.aliyuncs.com/ip/CF4J7aWKeF8yKVKu
- https://tbetter-oss.oss-cn-guangzhou.aliyuncs.com/ip/JZ24J7aYCeNGyKVF2
- https://xt.xinqianf38.top/RnZr
- https://yjhjymfjnj.wyxbmh.cn/2kzos8?a45dd02ac=d4f42319a78b6605cabb5696bacb4677
- https://zx-afjweiofwe.oss-cn-beijing.aliyuncs.com/path/02WBUfZTUvxrTMGjh7Uh
MD5
- 0752edcf5fd61b0e4a1e01371ba605fd
- 0993bae47c6fb3e885f34cb9316717a3
- 0aa1f8f36980f3dfe8884f1c6f5d6ddc
- 0b7891114d3b322ee863e4eef94d8523
- 0d09c4f956bb734586cee85887ed5407
- 0d7ed6df0e0cd9b5b38712d17857c824
- 1346f987f6aa1db5e6deb59af8e5744a
- 149785056bf16a9c6964c0ea4217b42b
- 1b85522b964b38de67c5d2b670bb30b1
- 21a257e3b51561e5ff20005ca8f0da65
- 21ef7a14fee3f64576f5780a637c57d1
- 2accfc13aaf4fa389149c0a03ce0ee4b
- 2b43b8c757c872a19a30dcdcff45e4d8
- 2d2b25279ef9365420acec120b98b3b4
- 2dc565c067e60a1a9656b9a5765db11d
- 307a64e335065c00c19e94c1f0a896f2
- 3388b5ea9997328eb48977ab351ca8de
- 3734e845657c37ee849618e2b4476bf4
- 44bc648d1c10bc88f9b6ad78d3e3f967
- 489217cca81823af56d141c985bb9b2c
- 530a5aa62fdcca7a8b4f60048450da70
- 5b2e4ea7ab929c766c9c7359995cdde0
- 5e15b25f07020a5314f0068b474fff3d
- 5e47604058722dae03f329a2e6693485
- 66434dd4402dfe7dda81f834c4b70a82
- 6d39cd8421591fbb0cc2a0bce4d0357d
- 6fe6885b8f6606b25178822d7894ac35
- 7e6324efc3acdb423f8e3b50edd5c5e5
- 8c9a93e829cba8c4607a7265e6988646
- 8cfc8081559008585b4e4a23cd4e1a7f
- 931085b04c0b6e23185025b69563d2ce
- 931399987a261df91b21856940479634
- 9aeaf9a485a60dc3de0b26b060bc8218
- a44cbed18dc5d7fff11406cc403224b9
- a4cca2431aa35bb68581a4e848804598
- aa5ce6fed4f9d888cbf8d6d8d0cda07f
- b0976d46970314532bc118f522bb8a6f
- b0eda03d7e4265fe280360397c042494
- b3085cd623b57fd6561e964d6fd73413
- b4489cb4fac743246f29abf7f605dd15
- c6a7568134622007de026d22257502d5
- cc919d4bbd3fb2098d1aeb516f356cca
- ce49a90c0a098e8737e266471d323626
- d851b19b5b587f202795e10b72ced6e1
- e5186be781f870377b6542b3cecfb622
- e8b60bf5af2d5cc5c501b87d04b8a6c2
- e9f7d9bc988e7569f999f0028b359720
- ec068e0fc6ffda97685237d8ab8a0f56
- f0460bdca0f04d3bd4fc59d73b52233b
- f0815908bafd88d71db660723b65fba4
- f10a4fdffc884089ae93b0372ff9d5d1
- f9ab4769b63a571107f2709b5b14e2bc
- fa0e99bac48bc60aa0ae82bc0fd1698d
- fd4558a9b629b5abe65a649b57bef20c
- fe0868c4f40cbb42eb58af121570e64d