В 2018 году исследователи CiscoTalos опубликовали разбор шпиона GravityRAT, использовавшегося в целевых атаках на вооруженные силы Индии. Индийский центр реагирования на инциденты информационной безопасности (CERT-IN) впервые обнаружил этого троянца в 2017 году. Авторство семейства приписывают пакистанским хакерским группировкам. По нашим данным, кампания идет по крайней мере с 2015 года и ранее была нацелена на компьютеры на базе ОС Windows. Однако с 2018 года она претерпела изменения и в списке ее жертв появились устройства на Android.
Вредоносный гид
В 2019 году на VirusTotal мы наткнулись на любопытного Android-шпиона и, разобрав его, нашли связь между ним и GravityRAT. Злоумышленники добавили шпионский модуль в Android-приложение для путешественников по Индии Travel Mate, исходный код которого выложен на Github.
Чистое приложение Travel Mate на Google Play
Злоумышленники взяли версию приложения, опубликованную на Github в октябре 2018 года, добавили в нее вредоносный код и поменяли название на Travel Mate Pro.
Вредоносное приложение запрашивает разрешения при запуске
В манифесте троянца зарегистрированы службы (Services) и приемник (Receiver), которых нет в приложении на Github
Список классов троянца
Функции шпиона вполне стандартны: он отправляет на командный сервер данные об устройстве, список контактов, адрес электронной почты, логи звонков и SMS. Кроме этого, в памяти устройства и на подключаемых носителях троянец ищет файлы с расширениями .jpg, .jpeg, .log, .png, .txt, .pdf, .xml, .doc, .xls, .xlsx, .ppt, .pptx, .docx, .opus и также отправляет их на C&C.
Зловред не был похож на типичного Android-шпиона — в качестве приманки выбрано довольно специфичное приложение, а вредоносный код не основан на коде известных шпионских приложений, как это часто бывает. Поэтому мы решили поискать связи с уже известными APT-семействами.
Адреса C&C, зашитые в код троянца
Самое простое — проверить адреса C&C, которые использовал троянец:
- nortonupdates[.]online:64443
- nortonupdates[.]online:64443
Оказалось, что n3.nortonupdates[.]online:64443 использовался другим зловредом для загрузки данных о найденных на компьютере файлах (.doc, .ppt, .pdf, .xls, .docx, .pptx, .xlsx) вместе со сведениями о зараженной машине. Благодаря нашему Threat Intelligence мы нашли его — это оказался вредоносный PowerShell-скрипт Enigma.ps1, выполняющий код на C#.
PowerShell-скрипт запускался VBS-скриптом:
Далее мы обнаружили очень похожий шаблон VBS-скрипта без прописанных путей под именем iV.dll:
Он находился внутри PyInstaller-контейнера enigma.exe, подписанного E-CreaLimited 05.09.2019. Инсталлятор загружался с сайта enigma.net[.]in под видом приложения для безопасного обмена файлами, которое поможет защититься от троянцев-шифровальщиков:
Помимо VBS-шаблона, в контейнере находились шаблоны XML для планировщика заданий Windows под именами aeS.dll, rsA.dll, eA.dll, eS.dll:
А в основной программе в шаблоны прописывались необходимые пути и имена, а также добавлялось задание по расписанию:
Программа общалась с сервером по адресу download.enigma.net[.]in/90954349.php (обратите внимание, что 90954349A — это начало MD5-хэша слова «enigma»). Простой графический интерфейс, а также логика по шифрованию и обмену файлами в ней действительно были:
Версия для macOS обладает схожим набором функций и добавляет задание в cron:
Аналогичной enigma.exe функциональностью обладает приложение Titanium (titaniumx.co[.]in), подписанное 14.04.2019 PlanoLogicLtd (сертификат отозван 08.09.2019).
Среди полезной нагрузки Enigma и Titanium нашлись следующие троянцы-шпионы:
- Wpd.exe, подписан 17.09.2018 PlanoLogicLtd, сертификат отозван
- Taskhostex.exe, подписан 18.02.2020 TheravadaSolutionsLtd
- WCNsvc.exe, подписан 17.09.2018 PlanoLogicLtd, сертификат отозван
- SMTPHost.exe, подписан 21.12.2018 PlanoLogicLtd, сертификат отозван
- CSRP.exe
Их C&C:
- windowsupdates[.]eu:46769
- windowsupdates[.]eu:46769
- mozillaupdates[.]com:46769
- mozillaupdates[.]com:46769
- mozillaupdates[.]us
Мы обратили внимание на порт 46769, с которым работают перечисленные троянцы. Такой же порт использовало семейство GravityRAT. Дальнейший поиск по nortonupdates[.]online привел нас к PE-файлу Xray.exe:
Эта версия собирала данные и отправляла их на n1.nortonupdates[.]online и n2.nortonupdates[.]online.
Домены n*.nortonupdates[.]online резолвились в IP-адрес 213.152.161[.]219. Мы проверили в нашей базе PassiveDNS, какие домены можно было найти по этому адресу ранее, и обнаружили подозрительно выглядящий u01.msoftserver[.]eu. Поиск по нему привел нас к приложению ZW.exe, написанному на Python и упакованному с помощью того же PyInstaller (подписано 10.04.2019 PlanoLogicLtd, сертификат отозван 08.09.2019).
Адреса C&C, к которым обращался ZW.exe, расшифровываются алгоритмом AES из файла Extras\SystemEventBrokerSettings.dat:
- msoftserver[.]eu:64443
- msoftserver[.]eu:64443
- msoftserver[.]eu:64443
- msoftserver[.]eu:64443
Общение с сервером происходит по относительному адресу «/ZULU_SERVER.php».
Шпион получает от сервера команды, среди которых:
- получение информации о системе,
- поиск и загрузка на сервер файлов с расширениями .doc, .docx, .ppt, .pptx, .xls, .xlsx, .pdf, .odt, .odp, .ods на компьютере и съемных дисках,
- получение списка запущенных процессов,
- перехват ввода с клавиатуры,
- получение снимков экрана,
- выполнение произвольных shell-команд,
- запись аудио (в данной версии не реализована),
- скан портов.
Код предусматривает работу на нескольких платформах:
А характерный путь также подтверждает, что перед нами новая версия GravityRAT:
С помощью Threat Intelligence мы обнаружили обновленные варианты зловреда с похожей функциональностью —RW.exe и TW.exe. Они были подписаны TheravadaSolutionsLtd 01.10.2019 и 20.02.2020 соответственно, сертификаты действительны на момент публикации.
Программа RW.exe обращалась к C&C по относительному адресу «/ROMEO/5d907853.php», а TW.exe — «/TANGO/e252a516.php», так что можно предположить, что первая буква в названии исполняемого файла обозначает версию командного сервера.
С&C этого экземпляра:
- hxxps://sake.mozillaupdates[.]us
- hxxps://gyzu.mozillaupdates[.]us
- hxxps://chuki.mozillaupdates[.]us
- hxxps://zen.mozillaupdates[.]us
- hxxps://ud01.microsoftupdate[.]in
- hxxps://ud02.microsoftupdate[.]in
- hxxps://ud03.microsoftupdate[.]in
- hxxps://ud04.microsoftupdate[.]in
Прочие версии GravityRAT
lolomycin&Co
В одном из старых вариантов GravityRAT — Whisper — помимо строки lolomycin2017, чье байтовое представление использовалось в качестве соли в AES-шифровании в компоненте lsass.exe, в компоненте whisper.exe также встретилась строка lolomycin&Co в качестве пароля для распаковки загруженных ZIP-архивов с полезной нагрузкой:
По этой строке мы нашли обновленные версии GravityRAT на .NET в приложениях:
- WeShare
- TrustX
- Click2Chat
- Bollywood
Новые версии GravityRAT
Все сайты, с которых скачивается вредоносное ПО, рассматриваемое ниже, скрыты за Cloudflare, чтобы затруднить вычисление реального IP-адреса.
Версии на .NET
- Sharify
- MelodyMate (подписан «E-Crea Limited» 05.11.2019)
Версия на Python
GoZap
Еще один PyInstaller-контейнер. Примечателен тем, что в коде явно указаны уже знакомые нам имена возможной полезной нагрузки:
В зависимости от конкретной нагрузки выбирается директория, в которую она сохраняется, а также имя задания для планировщика заданий Windows:
Payload Name | Path | Task Name |
ZW | %APPDATA%\Programs | WinUpdate |
SMTPHost | %APPDATA%\WinUpdates | Disksynchronization |
WCNsvc | %APPDATA%\System | Windows_startup_update |
CSRP | %APPDATA%\Applications | Antivirus_Update |
Windows-Portable-Devices | %APPDATA%\SystemUpdates | System_Update |
Версии на фреймворке Electron
Следующие версии — мультиплатформенные для Windows и macOS на фреймворке Electron. Логика прежняя: троянец проверяет, не запущен ли он на виртуальной машине, собирает информацию о компьютере, загружает с сервера полезную нагрузку и добавляет задание по расписанию.
- StrongBox (подписан E-Crea Limited 20.11.2019)
- TeraSpace (подписан E-Crea Limited 20.11.2019)
- OrangeVault
- CvStyler (подписан E-Crea Limited 20.02.2020)
Версии на Android
Версия SavitaBhabi существует для Windows и Android.
Версия для Windows написана на .NET. Функции стандартные: троянец проверяет, не запущен ли он на виртуальной машине и установлено ли на компьютере защитное ПО, передает на сервер информацию о компьютере и получает в ответ команды. Для запуска полезной нагрузки использует планировщик заданий Windows. Общение с сервером происходит POST-запросами на hxxps://download.savitabhabi.co[.]in/A5739ED5.php.
Второй файл, скачивающийся с того же сайта, — Android-приложение Savitabhabi.apk, представляющее собой комиксы для взрослых с внедренным шпионским модулем. На этот раз, в отличие от версии Travel Mate Pro, злоумышленники подошли к задаче более основательно и, похоже, написали приложение самостоятельно.
Вредоносное приложение запрашивает подозрительные разрешения при запуске
Вредоносные функции этого Android-приложения идентичны Travel Mate Pro, адреса C&C и код (за исключением незначительных деталей) также совпадают:
Список классов троянца
Заключение
В 2019 году The Times of India опубликовала статью о методах, используемых злоумышленниками для распространения GravityRAT в 2015–2018 годах. С жертвами связывались с поддельного аккаунта в Facebook и просили установить вредоносное приложение под видом защищенного мессенджера для продолжения беседы. Около 100 заражений пришлись на лиц из оборонных ведомств, полиции и других организаций.
С достаточной уверенностью можно предположить, что текущая кампания GravityRAT использует схожие методы — ссылки на вредоносные приложения злоумышленники отправляют конкретным жертвам.
Главное изменение в новой кампании GravityRAT — мультиплатформенность: наряду с Windows, появились версии под Android и macOS. Злоумышленники также стали использовать цифровые подписи, чтобы повысить легитимность приложений.
IoCs
MD5
Travel Mate Pro — df6e86d804af7084c569aa809b2e2134
iV.dll — c92a03ba864ff10b8e1ff7f97dc49f68
enigma.exe — b6af1494766fd8d808753c931381a945
Titanium — 7bd970995a1689b0c0333b54dffb49b6
Wpd.exe — 0c26eb2a6672ec9cd5eb76772542eb72
Taskhostex.exe — 0c103e5d536fbd945d9eddeae4d46c94
WCNsvc.exe — cceca8bca9874569e398d5dc8716123c
SMTPHost.exe— 7bbf0e96c8893805c32aeffaa998ede4
CSRP.exe — e73b4b2138a67008836cb986ba5cee2f
Chat2Hire.exe — 9d48e9bff90ddcae6952b6539724a8a3
AppUpdater.exe — 285e6ae12e1c13df3c5d33be2721f5cd
Xray.exe — 1f484cdf77ac662f982287fba6ed050d
ZW.exe —c39ed8c194ccf63aab1db28a4f4a38b9
RW.exe — 78506a097d96c630b505bd3d8fa92363
TW.exe — 86c865a0f04b1570d8417187c9e23b74
Whisper — 31f64aa248e7be0be97a34587ec50f67
WeShare—e202b3bbb88b1d32dd034e6c307ceb99
TrustX — 9f6c832fd8ee8d8a78b4c8a75dcbf257
Click2Chat —defcd751054227bc2dd3070e368b697d
Bollywood — c0df894f72fd560c94089f17d45c0d88
Sharify— 2b6e5eefc7c14905c5e8371e82648830
MelodyMate — ee06cfa7dfb6d986eef8e07fb1e95015
GoZap — 6689ecf015e036ccf142415dd5e42385
StrongBox — 3033a1206fcabd439b0d93499d0b57da (Windows), f1e79d4c264238ab9ccd4091d1a248c4 (Mac)
TeraSpace — ee3f0db517f0bb30080a042d3482ceee (Windows), 30026aff23b83a69ebfe5b06c3e5e3fd (Mac)
OrangeVault — f8da7aaefce3134970d542b0e4e34f7b (Windows), 574bd60ab492828fada43e88498e8bd2 (Mac)
CvStyler — df1bf7d30a502e6388e2566ada4fe9c8
SavitaBhabi — 092e4e29e784341785c8ed95023fb5ac (Windows), c7b8e65e5d04d5ffbc43ed7639a42a5f (Android)
URLs
daily.windowsupdates[.]eu
nightly.windowsupdates[.]eu
dailybuild.mozillaupdates[.]com
nightlybuild.mozillaupdates[.]com
u01.msoftserver[.]eu
u02.msoftserver[.]eu
u03.msoftserver[.]eu
u04.msoftserver[.]eu
n1.nortonupdates[.]online
n2.nortonupdates[.]online
n3.nortonupdates[.]online
n4.nortonupdates[.]online
sake.mozillaupdates[.]us
gyzu.mozillaupdates[.]us
chuki.mozillaupdates[.]us
zen.mozillaupdates[.]us
ud01.microsoftupdate[.]in
ud02.microsoftupdate[.]in
ud03.microsoftupdate[.]in
ud04.microsoftupdate[.]in
chat2hire[.]net
wesharex[.]net
click2chat[.]org
x-trust[.]net
bollywoods[.]co[.]in
enigma[.]net[.]in
titaniumx[.]co[.]in
sharify[.]co[.]in
strongbox[.]in
teraspace[.]co[.]in
gozap[.]co[.]in
orangevault[.]net
savitabhabi[.]co[.]in
melodymate[.]co[.]in
cvstyler[.]co[.]in
GravityRAT: возвращение шпиона