Введение
В июле 2024 года благодаря данным нашей телеметрии мы обнаружили новый червь CMoon, способный выгружать с зараженного устройства пользователя конфиденциальные и платежные данные, а также загружать другие зловреды и запускать DDoS-атаки на интернет-ресурсы, указанные злоумышленником, который распространялся через легитимный сайт. В этой статье мы расскажем о механизме заражения червем и принципах его работы.
Обнаружение и доставка
В конце июля системы мониторинга угроз «Лаборатории Касперского» зафиксировали, что на сайте компании, обеспечивающей газификацию и газоснабжение одного из городов Российской Федерации, появилось вредоносное программное обеспечение. В ходе анализа выяснилось, что представленные в нескольких разделах сайта ссылки на скачивание нормативных документов в форматах .docx, .xlsx, .rtf и .pdf были заменены на другие, которые вели на вредоносные исполняемые файлы, расположенные в отдельной директории того же сайта. Названия зловредов и адреса ссылок на них повторяли названия оригинальных документов, но имели добавленное расширение .exe. Всего злоумышленники подменили около двух десятков ссылок, и по каждой из них скачивался самораспаковывающийся архив, содержащий в себе исходный документ, который открывался при запуске, а также один и тот же исполняемый файл — полезную нагрузку.
Эта полезная нагрузка — новое вредоносное ПО, которое мы назвали CMoon за соответствующие строки в файлах.
Мы проанализировали информацию об этом зловреде из телеметрии KSN (Kaspersky Security Network), которая представляет собой обезличенные данные пользователей продуктов «Лаборатории Касперского», давших свое согласие на передачу и обработку этой информации. По данным KSN, с угрозой столкнулись пользователи из России. Это объясняется тем фактом, что зараженный сайт принадлежал организации, предоставляющей услуги на территории РФ. Мы не видели других векторов распространения этого вредоносного ПО, поэтому полагаем, что атака нацелена только на посетителей конкретного сайта.
Обнаружив заражение, мы сообщили о нем владельцам ресурса, и к 25 июля вредоносные файлы по ссылкам были удалены.
Описание угрозы
CMoon — это червь, написанный на .NET, с широкой функциональностью для кражи данных и удаленного управления. Попав на машину пользователя, он первым делом пытается определить наличие установленного антивируса, чтобы затем скопировать себя в соответствующую папку: %LocalAppData%\<antivirus>\<selfname>.dat. Также он создает ярлык для автозагрузки %AppData%\Microsoft\Windows\Start Menu\Programs\Startup\<antivirus>.lnk. Если червю не удастся обнаружить антивирус, то вместо <antivirus> будет использоваться строка system. После этого зловред меняет дату создания и последнего изменения только что созданных им файлов и папок на заранее заданную: 2013.05.22, 10:32:16.
Сразу после установки исполняемый файл начинает мониторить подключенные USB-накопители. Это позволяет украсть потенциально интересные злоумышленникам файлы со съемных носителей, а также скопировать на них червь и заразить другие компьютеры, где будет использоваться накопитель. Для заражения флешки все файлы на ней, за исключением файлов с расширениями .lnk и .exe, а также файлов в папках с подстроками .intelligence и .usb, подменяются ярлыками, ведущими на вредоносное ПО. Папка с подстрокой .intelligence используется червем для временного хранения потенциально интересных файлов перед их отправкой на сервер, а с подстрокой .usb — для хранения копий оригинальных документов и самой вредоносной программы. Помимо функциональности самораспространения, червь также умеет получать команды с удаленного сервера, отвечающие, в частности, за следующие задачи:
- загрузить и выполнить другие вредоносные файлы, указанные атакующим;
- сделать скриншот экрана;
- инициировать DDoS-атаку на указанный атакующим интернет-ресурс;
- собрать информацию о доступных ресурсах в локальной сети (IP-адреса и открытые порты);
- отправить файлы с зараженной машины на удаленный сервер.
Для реализации последней функции в черве уже заложен неизменяемый ряд путей, масок и ключевых слов, интересующих злоумышленников. В частности, зловред собирает файлы из различных приложений. Например, из браузеров собираются файлы, содержащие сохраненные пароли, файлы cookie, закладки, историю посещений, а также данные для автозаполнения форм, включая данные о кредитных картах. Червь мониторит следующие приложения:
Браузеры | Firefox, Thunderbird, Waterfox, Microsoft Edge, Google Chrome, Opera, Opera GX, Yandex Browser |
Криптокошельки | Guarda, Coinomi, Bitcoin, Electrum, Electrum-LTC, Zcash, Exodus, Jaxx и Jaxx Liberty, Monero, Binance, Wasabi Wallet, Atomic, Ledger Live |
Мессенджеры | Pidgin, Telegram |
SSH-клиент | Snowflake (Muon) |
FTP-клиент | FileZilla |
ПО для записи видео и потокового вещания | OBS Studio |
Аутентификаторы | WinAuth, Authy |
ПО для удаленного доступа | MobaXterm |
VPN-клиенты | OpenVPN |
Помимо содержимого перечисленных приложений, зловред также ищет и отправляет на сервер следующие файлы:
- документы из пользовательских папок Desktop, Documents, Photos, Downloads и с внешних носителей, содержащие в тексте подстроки «секрет», «служебн», «парол» и другие ключевые слова, в форматах .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .txt, .rtf, .odt, .ods, .odp, .csv, .html, .htm, .epub, .md, .tex, .wpd, .wps, .pub, .xps, .odg, .ott, .ots, .otp, .msg, .eml;
- файлы, содержащие сведения о защите системы, действиях пользователя и его учетных данных, с расширениями .crt, .cer, .pem, .der, .p7b, .p7c, .pfx, .p12, .sst, .csr, .key, .private, .sig, .signature, .p7s, .asc, .gpg, .authenticode, .kdb, .kdbx, .agilekeychain, .opvault, .lastpass, .psafe3, .ovpn, .log, .cfg, .conf.
Если червь не может получить содержимое нужного файла, то он будет пытаться найти и завершить процесс, который в настоящий момент этот файл использует.
Перед началом общения с командным сервером червь пытается отправить запрос на сервер www.pornhub.com, чтобы проверить подключение к интернету. Если сервер не отвечает, червь инициирует подключение к сохраненным на компьютере сетям Wi-Fi. Вся коммуникация происходит через TCP-соединение.
1 2 3 4 5 6 7 8 9 |
struct Request { char magic[6]; u8 packet_type; char rc4_key[8]; be u64 data_size; char data[data_size]; char botid[32]; char md5[32]; }; |
Структура пакета
Исходящие пакеты всегда начинаются с шести байт CMOON$. Далее идет один байт — тип пакета. Нам удалось восстановить следующие типы пакетов:
- 0x00: запрос списка команд;
- 0x01: первый пакет с информацией о системе;
- 0x02: информация о профиле Wi-Fi;
- 0x03: файл;
- 0x04: сигнал о завершении сбора и отправки файлов;
- 0x05: скриншот;
- 0x06: информация о внутреннем ресурсе и открытых портах;
- 0x07: сигнал об отправке цепочки из нескольких пакетов типа 0x06.
Следующие 8 байт пакета генерируются случайным образом и используются как первая часть составного ключа для RC4-шифрования. Вторая часть ключа задана в коде червя: Z(Y?)5[PC,gxdtNsCk;lFrvx7bN+g. Идущие после ключа 8 байт указывают на размер отправленных данных, а за ними следуют сами данные, зашифрованные с помощью RC4. Затем указываются 32 байта строки .botid: это MD5-хэш данных о системе, зашифрованный с помощью RC4 с тем же ключом. Последние 32 байта пакета — это MD5-хэш блока, содержащего строку .botid вместе с собранными данными.
На сервере C2 полученные данные и хэш .botid расшифровываются, объединяются в одну строку, после чего для нее обсчитывается хэш. Полученное значение сравнивается с последними 32 байтами пакета.
Первый пакет содержит информацию о системе (модель ПК, версия системы и т. д.), и для него всегда используется тип 0x01.
Ответ от сервера зашифровывается тем же RC4-ключом.
Выводы
Описанная нами атака с использованием червя CMoon содержит признаки целевой: жертвами могли стать только посетители конкретного сайта конкретной организации, предоставляющей услуги на территории России, и для каждого из двух десятков подмененных документов злоумышленники создали отдельный самораспаковывающийся архив с червем, что свидетельствует о довольно тщательной подготовке. К признакам целевой атаки относится и тот факт, что червь собирает документы, в названиях которых содержатся такие ключи, как «секрет», «служебн», «служб», «парол». При этом стоит отметить, что распространение вредоносного ПО через зараженный сайт не самая распространенная техника для целевых атак. Гораздо чаще подобные атаки начинаются с фишинговых рассылок. Наши системы мониторинга позволили быстро нейтрализовать эту угрозу, но достоверно неизвестно, оказались ли заражены другие подобные сайты.
Индикаторы компрометации
CMoon С2С
93 [.] 185 [.] 167[.]95:9899
Новый червь CMoon распространяется через скомпрометированный сайт