• Приглашаем на KubanCTF

    Старт соревнований 14 сентября в 10:00 по москве

    Ссылка на регистрацию в соревнованиях Kuban CTF: kubanctf.ru

    Кодебай является технологическим партнером мероприятия

Статья Я крякнул Windows и вот что со мной случилось — Raccoon Stealer: история и анализ типичного стиллера. Часть 2

Я крякнул Windows и вот что со мной случилось — Raccoon Stealer: история и анализ типичного стиллера. Часть 2

1722410770279.png

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

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

  • Импорт библиотек.
  • Деобфускация значений и проверка связи с командным сервером.
  • Создание мьютекса.
  • Проверка привилегий собственного процесса.
  • Связь с C&C сервером.
  • Установка дополнительных DLL библиотек и сбор информации об устройстве жертвы.
  • Непосредственно кража данных.


Дисклеймер

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

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

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

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

Screenshot_9.png

Связь же с командным сервером представлена одним из самых банальных вариантов: GET и POST запросы. Примечательно, что сам канал связи никак не шифруется, как и передаваемое содержимое. Это ваш выбор, ребята, не смею осуждать. Айпишник просто захардкоджен в виде обычного BASE64, расшифровать его не составляет труда:

Код:
XVHmGYV5cH1pvDC0w/cmantl/o69aw== - https://51.195.167.184/

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

Для тех, кто любит играть в танки, предоставляю следующую информацию:

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

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

В коде выглядит все предельно просто:

Screenshot_10.png

Процесс уже существует - образец прерывает свое выполнение, процесса нет - работаем дальше. Забавно, что остановить выполнение Еноника больше не может ничто, в анализируемой версии даже командный сервер не может прекратить выполнение стиллера. Занимательно.

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

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

Screenshot_11.png


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

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

Связь с C&C сервером и сбор информации об устройстве жертвы

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

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

Во-первых, обычно вредоносы такого типа обычно генерируют уникальный идентификатор, зачастую они берут какой-то один системный параметр и используют его в качестве ID. Но здесь мы имеем целую цепочку сбора данных, которая после формируется в ID и только после этого происходит связь с командным сервером. Обычно создание уникального идентификатора - это разовая процедура, но здесь… Он будет генерироваться каждый раз.

Сперва наш зловред обращается к определённому пути в реестре операционной системы Windows для извлечения идентификатора системы:
Код:
HKLM:\SOFTWARE\Microsoft\Cryptography\MachineGuid

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

Screenshot_12.png

Эта информация собирается в определённую структуру и передаётся на командный сервер в форме POST-запроса, смотрится это вот так:
Код:
machineId=<MachineGuid>|<UserName>&configId=<RC4 key>

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

  1. Сбор дополнительной информации об устройстве;
  2. Скриншот экрана;
  3. Исследование кеша десктопного приложения Telegram;
  4. URL-адреса для скачивания дополнительных DLL;
  5. Скачивание расширения браузера для поиска необходимой стиллеру информации;
  6. Поиск криптографических кошельков.

Скачивание и установка дополнительных DLL библиотек

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

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

1.mozglue.dll
2. softokn3.dll
3. freebl3.dll
4. sqlite3.dll
5. nss3.dll
6. nssdbm3.dll
7. msvcp140.dll
8. vcruntime140.dll

После завершения подготовительных этапов стиллер начинает процесс сбора информации о хосте, переходя к самой ключевой фазе. В этот момент Раккун начинает собирать следующие данные о жертве: имя пользователя, версию операционной системы, часовой пояс и текущее системное время. Также он извлекает техническую информацию, включая название процессора, видеокарты и объем оперативной памяти, а также перечень установленных приложений и устройств отображения, таких как веб-камеры и мониторы. Фрагмент кода, выполняющий эти манипуляции:

Затем вся эта информация будет помещена в файл system info.txt и передана на командный сервер.


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

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

Во-первых, пользуясь собственной DLL браузера mozglue3.dll, вредоносное ПО может запросить файл logins.json, который содержит cookie-файлы Firefox. Интересно, что на предыдущем этапе Раккун собрал информацию о установленных приложениях. Теперь становится понятно: злоумышленник уже знает, какой браузер установлен на устройстве, что экономит время и усилия.

Screenshot_13.png


Во-вторых, с помощью другой дополнительной DLL, sqlite3.dll, вирус может украсть cookie-файлы из других браузеров. Да-да, те самые печеньки. Вы любите печеньки? А воровать печеньки? Знаю, любите.

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

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

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

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

При использовании DLL браузера Firefox все выглядит довольно обыденно: простой запрос к файлу logins.json. Нет смысла вдаваться в подробности этого процесса, поэтому давайте сконцентрируемся на sqlite3.dll. Эта динамическая библиотека обычно используется SQL-серверами для обеспечения корректной работы баз данных.

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

Примечательно то, что преступники добавили перенаправление "GetProcAddress" для каждой функции, использующей загруженные DLL. Зачем? Предположительно, для запутывания следов при анализе. Это создаёт дополнительное перенаправление при каждом вызове функции, использующей DLL, что может сбить с толку некоторых специалистов или просто усложнить им жизнь.

Продолжение следует…

Выводы ко второй части

В целом планировалось ещё написать о стиллере Vidar, который распространялся аналогичным образом в паре с Енотиком, так что здесь мы прервем эту статью и в следующей доанализируем Раккончика и займемся его собратом Ведром.

Там будут и окончательные выводы. Не прощаюсь.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!