Пиратский софт и его последствия: анализ самого старого и простого вирусного плацдарма в интернете. Часть 1

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

Распространение вирусного софта в сети с каждым годом становится все изощреннее и изощреннее, чего только злоумышленники не придумают, чтобы "заразить" ваше устройство: используют уязвимости, фишинг, USB-jacking. Перечисленное мной — лишь крупица из всего того, чего вам стоит опасаться. Чего стоит только первая программа-вымогатель AIDS, которая распространялась через физическую почту и дискеты, а выкуп жертвы должны были отправлять на почтовый ящик в Панаме. Сущий кошмар, а?

Но речь не о том. Во всем этом динамичном развитии методологии заражений прослеживается одна лазейка, которая возникла с первыми программами, требующими покупку лицензии. Ведь появились сайты с “крякнутым” ПО, в 90% которых содержится какой-никакой зловред. Произведем анализ последних нашумевших вирусов, которые распространялись через такие веб-порталы и проведем небольшое исследование, в котором определим реальную вероятность заражения, устанавливая разнообразные "кряки" на своё устройство. 

Стиллер Raccoon: история и анализ

Недавно французская компания SEKOLA.IO, специализирующиеся на кибербезопасности, опубликовала отчет, в котором разоблачила огромную инфраструктуру из поддельных сайтов и хостингов для скачивания пиратского софта. Как утверждается в отчете, для распространения вредоносных программ было задействовано более 250 доменов с начала 2020 года. 

Атаки были направлены на пользователей, которые устанавливают крякнутые приложения, игры и так далее. Способ распространения был построен на SEO poisoning. 

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

Не используя терминологию, это можно описать следующей ситуацией. Некий ваш знакомый очень хочет себе антивирус с лицензией, но платить за неё он не собирается. Естественно, он открывает поисковик, где и вбивает что-то типа “скачать антивирус Касперский кряк”. (Крайне не советую так делать). И вот, благодаря SEO poisoning, он увидит первым-вторым именно ресурс злоумышленника, на котором размещена "зараженная" версия приложения. 

Неизвестные злоумышленники на протяжении двух лет пользовались таким методом и распространяли в основном два зловреда  — Raccoon и Vidar. Методология этих атак очень схожа с Rhadamanthys, о котором мы поговорим в следующих моих статьях.

Raccoon

Raccoon нацелен на различные криптокошельки, он извлекает файлы cookie и сохраняет все данные для авторизации из таких браузеров, как MS Edge, Firefox, Opera и Chrome.

Существует этот стиллер с середины 2019 года, ранее он продавался на закрытых форумах и уже тогда наделал немало шуму. Вскоре в 2021 году он был признан одним из самых популярных похитителей данных, его использовали несколько десятков печально известных киберпреступников. Благодаря широкому спектру возможностей, настраиваемости и простоте использования Raccoon Stealer пользовался большой популярностью. 

Но 25 марта 2022 года разработчики заявили о прекращении работы своего творения, и, казалось бы, на этом все. Специалисты Sekoia отмечают, что пристально следили за активностью данного вредоносного ПО. 

Примечательно также, что 10 июня 2022 года при поиске панелей администрирования стилеров в поисковой системе Shodan аналитики SEKOIA.IO наткнулись на активные серверы, на которых была размещена веб-страница с названием «Raccoon Stealer 2.0».

После первичного анализа найденного сервера с уверенностью можно утверждать, что этот хост действительно принадлежит второй версии вредоноса, на что указывают следующие данные: 

  • заголовок HTTP: Raccoon Stealer 2.0

  • несколько ссылок на профиль raccoonstealer в коде, который можно посмотреть через Shodan:   Javascript:contacts:[{title:"Jabber",content:"raccoonstealer[@]exploit[.]im"}, {title:"Telegram",content:"[@]raccoonstealer"}]

Из полученной информации мы можем с легкостью извлечь страницу стиллера на подпольном форуме Exploit и его Telegram-канал, подтверждающие, что первый релиз Raccoon Stealer v2 продается в Telegram с 17 мая 2022 года. 

Краткий статистический анализ вредоноса 

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

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

  2. Hidra — как и прошлая утилита, уже светилась в моей статье. Прекрасный и многофункциональный инструмент для реверс-инжиниринга. 

  3. IDA PRO — также инструмент для реверс-инжиниринга. Изначально рассматривался как дополнительный инструмент, но в этой статье его роль была почти что основной. 

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

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

Используемый компилятор — Microsoft Visual C/C++(2008-2010), написан на C/C++ и ASM, x32 разрядность, а исходный вес составляет 54КБ, что достаточно мало. И ничего интересного более здесь мы не увидим. 

Теперь воспользуемся Гидрой, дабы проанализировать исходный код и определить специфику работы данного вредоноса. 

Вредоносное приложение выполняет следующие функции после инициации на устройстве: 

  • Импорт библиотек.

  • Деобфускация значений и проверка связи с командным сервером. 

  • Создание мьютекса.

  • Проверка привилегий собственного процесса.

  • Связь с C&C сервером. 

  • Установка дополнительных DLL библиотек и сбор информации об устройстве жертвы. 

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

Сразу же после открытия файла в глаза бросается одна очень занимательная вещь: создатели даже не попытались скрыть отложенные импорты множества библиотек, таких как Shell32.dll, WinInt.dll, Crypt32.dll и других, как можно заметить на скриншоте. 

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

Ghidra подвела, знакомьтесь с новым инструментом для реверс-инжиниринга

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

Не буду обучать вас основам, просто вкратце расскажу, как выглядит примитивная работа с IDA.  

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

Что же, нашему взору открывается прекрасная картина — секторы PE и их взаимодействие между собой, но сейчас нас это не особо интересует. Кликаем на хоткей F5, который запускает дизассемблирование, и немного подождем. 

В удобном меню слева у нас открывается список декомпилированных функций, по которым можно перемещаться, также появляется вкладка "Pseudocode". 

Как вы могли заметить, выглядит он ну совсем не очень. Какие-то непонятные “dword_40E0D8” и так далее. Декомпилятор не счел нужным превращать их в понятные элементы и просто пропустил мимо. Что же с этим делать? 

Ответ довольно прост. Нужно расшифровать. Происходит это очень просто, даблклик на нерасшифрованную переменную, далее нас перекидывает в основное меню, кликаем на “Data XREF” и получаем предположительный вариант расшифровки этого значения. В нашем случае фрагмент “dword_40E0D8” обозначал “RegOpenKeyExW”, и это вполне логично, ведь после этой фразы идет путь реестра Windows. Ещё бывают случаи с отсутствием необходимых структур для строчки или переменной, но это уже совсем другая история и здесь с таким мне не пришлось сталкиваться. 

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

1. Импорт библиотек

Первым делом хочется отметить, что разработчики стиллера никак не пытались скрыть потенциально вредоносные функции “LoadLibrary” и “GetProcAddress” в коде, более того — эти функции хранятся в открытом виде и доступны сразу же после декомпиляции образца. Это кардинально отличает Raccoon от других стиллеров того же семейства. 

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

2. Деобфускация значений и проверка связи с командным сервером

Затем вредонос запускает деобфускацию (расшифровку) строк, используемых для настройки связи с C&C хостом. На первый взгляд непонятные наборы символов представляют собой строки, зашифрованные с помощью потокового шифра RC4, которые хранятся в формате base64.

RC4 —  это потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях. Шифр разработан компанией RSA Security. Алгоритм RC4, как и любой потоковый шифр, строится на основе генератора псевдослучайных битов. Подробнее о тонкостях его работы и реализации можете узнать вот здесь.

Забавно, что строки после расшифровки представляют собой сплошные матерные выражения на русском языке, написанные транслитерацией. И именно они используются в качестве команд, которые получает вредонос из C&C сервера. По понятным причинам на скриншотах они замазаны. 

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

В принципе, мне также удалось найти IP-адрес хоста, с которым связывался вредонос, хранился он в виде обычного base64: 

3.  Создание мьютекса

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

Мью́текс — примитив синхронизации, обеспечивающий взаимное исключение выполнения критических участков кода.

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

 

Стоит отметить, что это единственная стоп-система в коде вируса, которая может прервать его выполнение. 

4. Проверка привилегий собственного процесса

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

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

Итак, вредонос проверяет привилегии своего процесса и возвращает значение ноль, если SID (Security IDentifier) означает NT Authority\System. Но аналогичным образом он вернет ноль, если не сможет считать идентификатор своего процесса. 

Если разрешение процесса не равно NT Authority\System, вредоносная программа не выполняет следующую функцию и просто пропускает этот шаг. Так как зловред находится на стадии разработки, такие ошибки имеют место быть. Кодер просто не придумал, что делать, когда процесс не получил должных привилегий.

5. Связь с C&C сервером

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

Во-первых, вредонос обращается к реестру Windows по следующему пути, чтобы получить идентификатор системы: 

HKLM:\SOFTWARE\Microsoft\Cryptography\MachineGuid

Затем он обращается к библиотеке Adavapi32, чтобы получить из неё имя пользователя, выглядит это следующим образом: 

Эти данные объединяются в следующую структуру и отправляются на командный сервер в виде POST запроса, адрес которого, напоминаю, был зашифрован в формате base64 в коде стиллера:

machineId=<MachineGuid>|<UserName>&configId=<RC4 key>

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

  •  URL-адреса для скачивания дополнительных DLL;

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

    • Скриншот экрана 

    • Исследование кеша десктопного приложения Telegram 

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

  • Поиск криптографических кошельков

6. Установка дополнительных DLL библиотек и сбор информации об устройстве жертвы 

Как было сказано ранее, в ответе от сервера управления имеется список, в котором находятся ссылки на скачивание дополнительных DLL, они являются вполне безобидными и в них нет ничего вредоносного, просто именно их Raccoon будет использовать для сбора дополнительной информации об устройстве и для кражи данных ничего не подозревающего пользователя. 

Вот их список:

  • nss3.dll

  • nssdbm3.dll

  • msvcp140.dll

  • vcruntime140.dll

  • mozglue.dll

  • freebl3.dll

  • softokn3.dll

  • sqlite3.dll

Далее стиллер начинает процесс сбора информации о хосте, так как все подготовительные работы завершены, и наконец начинается самое интересное. 

Раккун собирает следующую информацию о хосте жертвы: 

  • имя пользователя,

  • версия операционной системы, 

  • часовой пояс и системное время 

  • техническую информацию: название процессора, видеокарты и количество оперативной памяти, 

  • установленные приложения и средства отображения (веб-камеры, мониторы и прочее). 

За это волшебство отвечает следующий фрагмент кода: 

Собранная информация сохраняется в файле «System Info.txt», который отправляется на командный сервер. 

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

Итак, пусть этот вирус в некоторых моментах примитивен и не доработан, но все ещё способен выполнять свои функции, и делает это достаточно хорошо. Процесс кражи данных имеет множество вариантов и может трансформироваться в зависимости от предпочтений преступника(самые интересные будут описаны ниже): 

  1. Используя DLL самого браузера mozglue3.dll вредонос может запросить файл logins.json, где содержатся cookie-файлы Firefox. К слову, в предыдущем шаге Енот собрал информацию об установленных приложениях. Теперь наглядно видно зачем. Злоумышленник наперед знает, какой браузер установлен на устройстве, и не тратит время почем зря. 

  2. Используя ещё один из  своих дополнительных DLL sqlite3.dll, вирус способен воровать "печеньки" и из других браузеров. 

  3. Поиск файла с именем wallet.dat. Этот файл содержит в себе сид-фразу и прочую информацию о криптокошельке. Актуально лишь для пользователей приложений от криптокомпаний. 

  4. Также Раккун может исследовать и похищать кэш из приложения Телеграм. 

  5. Наблюдение за рабочим столом посредством скриншотов. 

  6. Возможность загрузить на устройство другое вирусное приложение. То есть он способен выполнять функции дроппера. 

В случае с использованием DLL браузера Firefox все выглядит достаточно скучно: простой запрос к файлу logins.jscon. Описывать это подробно я не вижу смысла, давайте лучше обратим внимание на sqlite3.dll. Это динамическая библиотека  SQL сервера обычно используется для корректной работы базы. 

Разработчики стиллера нашли ему другое применение — кража печенек (cookies) с таких браузеров, как Google Chrome, Edge и Opera, а также для поиска файлов, в которых хранятся данные о сохраненных банковских картах. 

Реализовано это посредством SQL запросов и выглядит следующим образом в коде вредоноса: 

Объясняя на пальцах — вредонос просто производит поиск файлов с соответствующим расширением, после анализирует и отправляет на командный сервер. В этом всем примечательно лишь то, что преступники добавили для каждой функции, использующей загруженные DLL, переназначение импортов “GetProcAddress”. Зачем? Я предполагаю, что это сделано для запутывания следов при попытке анализа вируса. Это создает дополнительное перенаправление каждый раз, когда функция задействует dll. 

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

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

Динамический анализ вредоноса: как это выглядит на самом деле

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

Для динамического анализа у нас уже имеется следующий сетап утилит (все они находятся в открытом доступе):

  1. ProcessHacker — простенько и со вкусом, понаблюдаем за тем, как вирус взаимодействует с другими .dll и системой. 

  2. TCPView — утилита, которая прослеживает исходящие TCP соединения. 

  3. Regshot — очень простое приложение с открытым исходным кодом, которое позволит просмотреть изменения в реестре после запуска вредоноса. 

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

Сразу же после запуска процесс устанавливает связь с удаленным сервером, IP-адрес которого мы расшифровали ещё в самом начале: 

Далее этот процесс завершает свою работу, и на некоторое время прекращаются любые попытки установки связи с удаленными серверами. Но, перейдя в Process Hacker, можно лицезреть следующую картину: 

Как вы можете заметить, загрузка процессора достигла отметки практически в 100%. Это продолжалось около минуты, после чего стали появляться процессы “System”, ожидающие подключения, а некоторые из них подключались к различным удаленным серверам. Это был этап загрузки дополнительных библиотек для кражи данных: 

И под конец давайте просмотрим изменения в реестре Windows: 

Насколько на самом деле опасны крякнутые приложения?

Итак, мне действительно стало интересно, насколько много вредоносов удастся заполучить на свое устройство, просто скачивая “взломанные” приложения. 

Естественно, моя задача как автора — вас предостеречь. Не повторяйте подобных действий на своих устройствах. 

Приступим. В начале я приводил пример, где кто-то захотел получить лицензионный антивирус бесплатно, скачав его кряк. Какова вероятность того, что в антивирусном ПО может быть вирус? 

Вбиваем “скачать антивирус кряк”, и первый вариант в строке поиска “ESET NOD32 Crack”, который мы и качаем. Естественно, VirusTotal показывает 56 из 56 обнаружений, но давайте убедимся в этом на собственном опыте.  

Установив наш антивирус на виртуальную машину, посмотрим, устанавливает ли связь потенциально опасный файл с каким-то источником извне. 

И да, он это делает: 

А затем устанавливаем соединение через Tor, после стартует какая-то вакханалия. На виртуальной машине появляются различные ярлыки, типа “VK”, “Амиго Браузера” и так далее. 

Закономерный исход — синий экран смерти. Кстати, было бы интересно провести полноценный анализ этого вредоноса. Вирус в антивирусе, звучит ведь занимательно. 

Дальнейшие тесты также были неутешительными, итоги следующие: 

9 из 10 кряков — вирусы. Пиратские антивирусы — поголовно.  

Выводы 

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

Подвержены атаке с помощью Raccoon Stealer абсолютно все версии Windows. Но на данный момент он с легкостью определяется большинством антивирусных приложений. Удаление этой угрозы с вашего ПК также не представляет особых проблем, тот же ESET справляется на ура. 

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

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

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


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

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Источник: https://habr.com/ru/company/first/blog/717942/


Интересные статьи

Интересные статьи

Обширное руководство из двух частей о создании привлекательного освещения в играх на Unreal Engine, представленное старшим художником по освещению Юрием Воробьевым.
Привет, друзья! В этой серии из 3 статей я расскажу вам о Nest (NestJS) — фреймворке для разработки эффективных и масштабируемых серверных приложений на Node.js. Данный фреймворк использует прогресси...
Когортный анализ — это способ отследить “плотность” метрики для определенных групп пользователей. В отличие от обычных графиков, когорты показывают именно stickiness поль...
Авторы Ларри Г. Арлиан, Марджори, С. Морган Перевод и адаптация: Ефимов С.Т.Этот перевод посвящается читателям, которые очень хотели узнать о данном заболевании.&nb...
Это — традиционная мегаподборка из нашего блога на Хабре и «Мира Hi-Fi» — тематического журнала по теме аудитехники. Предлагаем вашему вниманию избранные материалы: от ретроспективного анализа ра...