Приветствую, друзья. Не так давно злоумышленники начали размещать вредоносные пакеты в репозитории PyPi, маскируя различные зловреды под легальные составляющие. Эта кампания до сих пор не была остановлена, а количество пострадавших разработчиков на данный момент точно неизвестно. 

На этом все не закончилось, атака на PyPi породила новую мету среди злоумышленников, и на этот раз пострадал публичный репозиторий NPM.

NPM — это стандартный менеджер пакетов, автоматически устанавливающийся вместе с Node.js. Он используется для скачивания пакетов из облачного сервера npm, либо для загрузки пакетов на эти сервера.

Правда, методика этой кампании слегка отличается от той, что мы видели ранее, непосредственно в NPM никто не загружал вирусов, злоумышленники воспользовались высокой репутацией источников с открытым исходным кодом в поисковых системах и продвигали вредоносные сайты, а также утилиты с вредоносной начинкой через этот репозиторий.

Существует несколько векторов атак с использованием NPM: 

  1. Злоумышленник создает свой сайт, где размещает якобы крякнутые приложения на любой вкус, естественно, в них находятся разнообразные зловреды. Далее он выгружает в NPM несколько сотен пустых пакетов, содержащих исключительно файл Readme.md. Этот файлик состоит из ссылки на сайт злодея. Ранее я уже упоминал, что источники с открытым исходным кодом хорошо индексируются поисковыми системами, так вот эти пакеты с обычной ссылкой наследуют хорошую репутацию и продвигаются в поисковиках. Это так называемый SEO Poisoning. 

  1. Второй вариант немного проще и основан на том же методе с файлом Readme, но на этот раз злоумышленник оставляет ссылку на мошеннический телеграм-канал, где якобы предоставляет программы для настройки видеокарт для майнинга. Эта компания была в основном ориентирована на российских пользователей. 

  1. Естественные DoS-атаки. Да, вам не привиделось. Во-первых, из-за роста количества пакетов и, как следствие, увеличения трафика на сайт NPM, был вызван отказ в обслуживании. Также можно рассмотреть метод, когда злоумышленник создает тысячи пакетов с ссылкой на какой-то ресурс-жертву, и тут уже не трудно догадаться, что может произойти, но это лишь в теории и, скорее всего, очень малоэффективно (но сайт среднестатистической школы не выдержит).

SEO poisoning (отравление поисковой выдачи) — добавление на скомпрометированные сайты слов, способствующих подъему этих сайтов в поисковой выдаче Google. Благодаря этому вредоносные сайты могут увидеть больше потенциальных жертв.

DoS-атака — это хакерская атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых добросовестные пользователи системы не смогут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ будет затруднён.

Согласно отчету от Checkmarx, за этой кампанией может стоять несколько хакеров и их конечной целью является распространение таких вредоносов, как RedLine Stealer (80%), Glupteba (12%), Smoke Loader (5%) и XMRig (2%). 

Особую опасность представляет Редлайн из-за резкого роста количества заражений, поэтому сегодня мы займемся его разбором и анализом.

ReadLine Stealer: краткий обзор

Итак, ReadLine Stealer — это вредоносное ПО, которое на данный момент продается на закрытых форумах. Стиллер используется разными злоумышленниками для кражи данных и загрузки других вирусов на устройство жертвы. Точная дата его появления неизвестна, но впервые вредоносный сэмпл Редлайна появился на VirusTotal в марте 2020 года.

RedLine Stealer может воровать следующую информацию: логины, пароли, данные автозаполнения, файлы cookie и данные кредитных карт, из всех веб-браузеров. Киберпреступники могут неправомерно использовать эту информацию для доступа к различным учетным записям (например, к социальным сетям, электронной почте, банковским счетам, криптовалютным кошелькам).

Список электронных кошельков, на которые нацелен похититель RedLine, включает Armory, AtomicWallet, BitcoinCore, Bytecoin, DashCore, Electrum, Ethereum, LitecoinCore, Monero, Exodus, Zcash и Jaxx. Целевыми VPN-клиентами являются ProtonVPN, OpenVPN и NordVPN.

Для анализа мы будем использовать образец от 14 апреля 2023 года. На VirusTotal он выглядит следующим образом:

Как видите, с обнаружением здесь проблем нет, что не может не радовать. Внешний образец имеет иконку приложения IPTV и представлен в виде SFX-архива, любая другая информация отсутствует. Переходим к анализу.

ReadLine Stealer: краткий статистический анализ 

По классике представляю сетап утилит на эту статью:

  1. DIE — Detect it Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием. 

  2. PE Bear  — неплохой инструмент для просмотра и редактирования составляющих PE файла. 

  3. Tiny Tracer  — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.

  4. IDA PRO — инструмент для реверс-инжиниринга. 

  5. Reko — декомпилятор, также знаком нам с прошлых статей.

  6. HollowHunter —  утилита, распознает и сбрасывает множество потенциально вредоносных имплантов (замененные/имплантированные PE, шелл-коды, перехватчики, патчи в памяти).

Итак, вирус весит всего-то 532 КБ, после анализа MSI вымогателей это кажется чем-то совсем небольшим. Воспользуемся DIE для получения дополнительных сведений о файле.

И как уже упоминалось ранее, это у нас SFX-архив. Не сказал бы, что подобный метод упаковки вредоносов является чем-то новым и революционным. Подобным образом в свои школьные годы я упаковывал разнообразные BAT-файлики, чтобы они выглядели как исполняемые .exe.  

Самораспаковывающийся, или самоизвлекающийся архив (SFX) — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки, если исполняемый код можно выполнить в указанной операционной системе.

В принципе, если бы сейчас его запустили, то содержимое попало бы в папку AppData, где обычный пользователь вряд ли бы обнаружил его. Но мы поступим немного проще, просто открыв .sfx с помощью архиватора. Извлечем интересующий нас файл и приступим к его разбору.

IPTV.exe — именно такое название имеет извлеченный файл, но намного интересней, что даже при просмотре свойств мы можем получить некоторую полезную информацию, а именно:

Примерное время последнего изменения, которое вряд ли заменено, и изначальное название файла — implossions.exe. При попытке пробить это имя через поисковую систему сразу же видим, что оно принадлежит нашему стиллеру. Весит полученный образец  95 КБ. Снова перейдем в DIE для получения сведений об языке написания и компиляторе этого чуда.

Точная дата создания неизвестна, то, что мы видим — это «Timestomping», и он представляет собой антикриминалистический метод, используемый для того, чтобы ввести следствие и специалистов быстрого реагирования в заблуждение.

Также видим, что вредонос является библиотекой .NET, а в качестве компилятора использовался Microsoft Linker.

Библиотеки .NET —  по сути своей, являются конечным результатом компиляции кода на C#. К нашему счастью, мы с легкостью можем декомпилировать данный образец с помощью утилиты DNspy и провести анализ чистого исходного кода, или, по крайней мере, чего-то близкого к нему. Но на вашем месте я бы не был этому рад, так как такая доступность кода может спровоцировать появление модификаций от других злоумышленников, а это уже попахивает полноценной эпидемией. 

Но сперва давайте воспользуемся Tiny Tracer с расширенными настройками, чтобы наглядно увидеть какие функции стиллер использует. Также это отобразит схему действия вредоноса. 

Во-первых, стоит отметить, что вредонос создает пока что неизвестный дочерний процесс с помощью вызова rtlCreateUserProcessParametersEx, далее он декодирует что-то из Юникода и посредством вызова NtAllocateVirtualMemory выделяет участок памяти, куда что-то записывает. Процесс очень похож на тот, который мы уже могли наблюдать при анализе вымогателя Magniber. 

Но внезапно трассировка была остановлена, так как был создан процесс, за которым Tiny не смог проследить, а мне выдают следующую ошибку:

Я не знаю, можно ли это вставлять в статью, но вот вам пример живой аналитики. Все честно и без купюр. 

Что ж, раз мы определили, что вредонос внедряет какой-то шелл код и обрывает работу основного образца, предлагаю сперва разобраться с ним, а далее уже пойти по классическому статистическому анализу.

Шелл-код (англ. shellcode) — это часть кода, встроенного во вредоносную программу и позволяющего после инфицирования целевой системы жертвы получить код командной оболочки. Очень часто shellcode используется как полезная нагрузка эксплоита.

Открываем охоту на ShellCode: что же внутри?

Для его обнаружения и захвата мы воспользуемся утилитой Hollow Hunter с единственным параметром /shellc. 

Шеллкоды были обнаружены в трех процессах: explorer.exe, dwm.exe и в searchapp.exe. Даже одного взгляда через блокнот достаточно, чтобы понять, что все они одинаковы и явно оставлены нашим стиллером. 

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

Вскрываем ReadLine Stealer: начать погружение

Итак, упустим предыдущую тему и давайте сразу поведаю об алгоритме работы этого вредоноса:

  1. Расшифровка закодированных строк и связь с C&C сервером.

  2. Закрепление вредоноса  в системе.

  3. Непосредственно кража данных или выполнение команд преступника.

Да, алгоритм до одури прост, но это компенсируется тем, что из-за своего модульного строения Редлайн очень гибок и способен реализовывать достаточно много задач.

Расшифровка закодированных строк и связь с C&C сервером

Стоит отметить, что мгновенная установка связи с командным сервером является весьма нетипичным ходом для вредоносных приложений. В рамках анализов у нас уже было несколько стиллеров, так вот они сперва воруют данные, а только после этого связываются с сервером. Скорее всего, это обусловлено тем, что Редлайн не имеет в своем коде никаких инструкций, в отличие от других, «типа кради это, а вот это не нужно», поэтому для вируса важно получить указания от C&C и только после этого развернуть свою зловредную деятельность. 

Найти точку входа этого вируса нам поможет тот же DNSpy и его функция, отвечающая за этот процесс. Точкой входа является класс Program, перейдем к его просмотру. 

Сразу же бросается в глаза расширение Execute, указывающее на класс EntryPoint, с которого будет происходить расшифровка следующих четырех параметров через класс StringDecrypt.Decrypt: «Message», «Key», «IP» и «ID» . 

Удивительно, но, перейдя в этот класс, мы видим абсолютно незашифрованные данные и то самое сообщение, которому я удивился ранее. Мне показалось, что это может быть какой-то ошибкой злоумышленника именно в этой версии вредоноса, но скачав более старую, я увидел то же самое.  

Видимо, преступника не особо беспокоило, что айпи адрес его командного сервера кто-то обнаружит, если беспокоило вообще.

Также злоумышленники собирают информацию о том, запускалось ли ранее это вредоносное ПО на машине жертвы. Делается эта проверка достаточно просто, с помощью метода SeenBefore проверяется наличие папки по следующему пути: 

\AppData\Local\Yandex\YaAddon

В случае, если папка была обнаружена, метод возвращает ответ false, если же её нет, то она будет создана и ответом будет true. Эти два значения будут сохранены и отправлены на командный сервер. 

Злоумышленников это может интересовать по нескольким причинам, но самая вероятная следующая. Если Redline уже был запущен ранее на машине жертвы, то есть вероятность, что учетные данные к аккаунтам были изменены или самим пользователем или другим злоумышленником. Тогда продажа наворованного становится под огромный знак вопроса.

Закрепление в системе

После этих проверок и установления связи с сервером вирусу жизненно важно закрепиться на машине жертвы, чтобы в случае перезагрузки или прочего продолжить свою стиллерскую деятельность.

Для этого в реестре Windows будет создан новый ключ по пути  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\ApplicationViewManagement\W32:0000000000090250. Также вредонос будет добавлен в обычную автозагрузку Windows.

Непосредственно кража данных

Функциональность стиллера:

  1. Похищение таких данных, как: 

  • данные автозаполнения и печеньки из таких веб-браузеров, как: Opera, Firefox, Google Chrome, Microsoft Edge, Internet Explorer, 

  • токены Discord.

  • копия папки tdata из Telegram Desktop,

  • данные из FTP клиентов на базе Filezilla,

  • учетные данные Steam, Epic Games и Origin,

  • ключи от популярных VPN сервисов: NordVPN, OpenVPN, ProntonVPN, 

  • данные от криптовалютных кошельков. В списке их очень много, все они были перечислены ранее. 

  1. Сбор информации об устройстве жертвы: геолокация, конфигурация оборудования, установленные приложения, имя пользователя. 

  2. Может использоваться в качестве дроппера, доставляя другие вредоносы на зараженную машину. 

  3. Вывод окон с ошибками, текст которых задается злоумышленником. 

Набор функций действительно обширен. Если разбирать все возможности этого вредоноса подробно, то этой статьи явно будет недостаточно. Потому пройдемся лишь по самому интересному. 

Кратко о краже данных с браузера Chrome

После этих нехитрых и типичных для вредоносного ПО манипуляций, Редлайн приступает к своей основной функции — краже данных. Сперва вирус получает команды от оператора C&C сервера, которые задействуют класс ScanningArgs, где находится список подключаемых модулей. 

Например, злоумышленник целенаправленно хочет своровать все возможные данные с браузера Chrome. В таком случае будет задействован аргумент ScanChrome, который задействует класс C_H_R_O_M_E. 

Далее с помощью класса ScanningArgs определяется директория, в которой будет производиться поиск в случае с браузером Chrome она будет выглядеть вот так:

Достаточно своеобразно указаны директории и названия папок или файлов, которые нужно искать вредоносу, такое я вижу впервые и предполагаю, что это примитивный метод запутывания кода. 

После этого могут быть задействованы три следующих метода метода: ScanFills (ворует файлы автозаполнения), ScanCC (ворует данные о кредитных картах) и ScanCook (ворует файлы cookie). Важно отметить, что каждый из этих методов автономен, то есть злоумышленник может выполнять как конкретно один, так и все вместе, в зависимости от своих конечных целей. 

Более подробно разберем пример с использованием метода ScanCC, потому что считаю его наиболее актуальным. Так как Chrome использует SQLi таблицу для хранения всех данных о сохраненных банковских картах, логично, что вредонос формирует к этой таблице запрос с помощью функции ReadTable. После прочтения этой таблицы Redline расшифровывает данные, анализирует их и записывает в файл ScanResult, который после будет отправлен на командный сервер.

Кратко о воровстве учетных записей Telegram Desktop

Думаю, для многих уже не секрет, что приложение Telegram Desktop имеет одну такую интересную уязвимость, которую таковой и назвать сложно. Но тем не менее она очень популярна в кругах злоумышленников.

Все дело в том, что скопировав папку tdata из одного устройства и просто переместив её на другое, где установлена та же версия мессенджера, вы без проблем попадете в аккаунт из первого устройства и Телеграм не потребует никаких дополнительных проверок. 

Похищение этой папки является дочерней функцией кражи файлов wallet.dat, где хранятся seed-фразы криптокошельков, за этот процесс отвечает класс Cryptos.

Сперва с помощью того же метода GetScanArgs устанавливается директория, в которой будет производиться поиск необходимых файлов. В случае их обнаружения Редлайн задействует класс FileCopier, а именно один его метод CopyFile, который просто копирует содержимое и переносит его в файл ScanResult. 

В том случае, если оператор командного сервера хочет получить ещё и учетные записи Телеграм, то далее будет вызван класс DesktopMassengerRule, который проделает те же манипуляции, что и класс Cryptos.

Сбор информации об устройстве жертвы

Для сбора большинства информации об устройстве жертвы используются классы SystemInfoHelper и SystemHardware.

Их методы GetProcessors и GetGraphicCard отвечают за получение информации о железе устройства жертвы.

Но более интересным является метод GetFireWalls, который использует системный вызов ManagementObjectSearcher и собирает информацию об антивирусных и антишпионских программах, брандмауэрах, а также о параметрах безопасности ОС Windows.

Вся эта информация также будет сохранена в файл ScanResult и передана на командный сервер. 

Поведенческий фактор вредоноса

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

Дело все в том, что создателям этого стиллера совсем не обязательно полностью переписывать код, а достаточно лишь изменить одну переменную или переименовать какой-то метод и после компилирования этот образец будет с совершенно другим хэшем, которого, увы, уже не будет в антивирусных базах. Мной была проделана эта нехитрая манипуляция  —  и вот результат:

Итак, как же понять, что ваша машина заражена Redline Stealer, а персональные данные давным-давно продаются на каком-то подпольном форуме: 

  1. Во-первых, как бы тривиально не звучали мои слова, обратите внимание на загруженность вашей системы. Редлайн кушает очень много оперативной памяти. Испытуемый образец каким-то образом занял целых 500 МБ. 

  2. Проверьте наличие вышеуказанного пути в реестре Windows. 

  3. Воспользуйтесь утилитой TCPView, чтобы посмотреть, какие процессы устанавливают связь с удаленными хостами без вашего ведома. 

  4. Проверьте папку AppData на наличие странных исполняемых файлов.

Выводы

Redline Stealer, безусловно, является очень мощным модульным шпионским ПО, которое используется многими злоумышленниками. Но на данный момент этот вирус распространяется в основном через Seo Poisoning и сайты с пиратским ПО с помощью публичного репозитория NPM. 

Стоит заметить, что с течением времени код вредоноса мало изменился и образец от 2020 года практически никак не отличается от образца 2023. Оба без особых проблем могут быть обнаружены современными антивирусами.

Так как Редлайн очень гибок неизвестно, что произойдет дальше. Поэтому будьте бдительны и смотрите в оба. 

Расстраивает только одно — халатность групп мониторинга, те же Microsoft с легкостью могли бы пресечь деятельность вредоноса. IP-адреса командных серверов стиллера очень легко отследить и заблокировать, тем самым постоянно ограничивая возможности киберпреступников. Но этого никто не делает, позволяя вредоносу распространяться и вредить обычным пользователям.  

А на этом у меня все, бывайте.

Автор статьи @DeathDay


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (0)